【Django】Google AdSenseの警告(ads.txt)対策


投稿日 2019年10月20日 >> 更新日 2023年3月2日

今回はGoogle AdSenseでの収益に関わる警告の対策についてお話しします。

警告には数種類あるのですが、私の場合は上図のような「要注意:収益に重大な影響が出ないよう、ads.txtファイルの問題を修正してください。」となっていました。

問題のads.txtファイルを設定したら数日後に警告が消えたので、安心してシェアできることに至りました。

ads.txtの詳細についてはこちらへ

というのもDjangoフレームワークで「ads.txt」を設定している事例が非常に少なかったため、参考程度に見て頂ければ幸いです。

実行環境&使用ライブラリ

実行環境
Windows Subsystem for Linux
Python 3.6.8
pip 9.0.1
使用ライブラリ ライセンス
Django==2.2.6 BSD

ads.txtのダウンロード

まずは問題のads.txtファイルを取得するため、Google AdSenseのホーム画面に表示されている警告のアラート右端の「今すぐ修正」をクリックします。

すると「ダウンロード」と表示されると思うので、ads.txtファイルをダウンロードします。

ファイルがダウンロードされたらDjangoアプリの設定です。

DjangoのTemplateViewクラスを使ってページ生成

公式のガイドでも述べている通り、ads.txtの表示場所は「ルートレベル」のドメインです。

私のWebサイトでいうと「zerofromligh.com/ads.txt」となります。

「zerofromlight.com/blogs/ads.txt」これでは恐らくダメです。

表示させると

このようになることで、認識され数日後に警告が解除されるかと思います。

ではさっそく設定していきます。

設定場所はルートレベルのドメインで表示できればどちらでもいいのですが、Djangoではプロジェクトディレクトリの「urls.py」ファイルとアプリケーションディレクトリの「urls.py」ファイルがあります。

私はアプリケーションディレクトリの「urls.py」ファイルに設定しました。

そしてクラスビューのTemplateViewをインポートし、直接ファイルを介すようにします。

# project/app/urls.py

from django.urls import path
from . import views
from django.views.generic import TemplateView    \# 追加


app_name = 'app'

urlpatterns = [
    path('', views.index, name='index'),
    path('ads.txt', TemplateView.as_view(
                                template_name='app/ads.txt', content_type='text/plain'
                             )),  # 追加
    path(.......),
    path(.......),
]

この設定内容は、テンプレートディレクトリにアクセスするために、「app」ディレクトリ内の「templates」ディレクトリ内の「app」ディレクトリ内の「ads.txt」ファイルを見に行きます。

引数のtemplate_nameにads.txtまでのパスを入れるだけでそのファイルを表示してくれます。

なのでこの階層をイメージしてから、ads.txtファイルの所定位置を決めて反映させてください。

# project/app/

app
  |
  |--templates
  |       |
  |       |--app
  |            |
  |            |--index.html
  |            |--ads.txt    # ここ
  |
  |--urls.py
  |--views.py

ここではDjangoのTemplateViewクラスを使用してファイルを読み込みましたが、HttpResponseなどを使ったやり方も見受けられます。

余力のある方はぜひ勉強してみください。

それでは以上になります。

最後までご覧いただきありがとうございました。