\ お問い合わせはこちら! /

【Django】Google AdSense の ads.txt をルートパスで配信する方法

Google AdSense を導入すると、サイトのルート直下(https://example.com/ads.txt)に
ads.txt ファイルを配置するように求められます。

静的ファイルではなく Django を使っている場合、
通常の STATIC_ROOT ではルートパスにファイルを置けません。

そこで今回は、Django で ads.txt をルート配信する方法をまとめました。

【Django】Google AdSense の ads.txt をルートパスで配信する方法

手順 1:ads.txt ファイルを作成する

まずは、Google AdSense が提供する情報をそのまま保存します。

今回はローカルプロジェクト直下にファイルを置きました。

Bash
/Users/username/Project/ads.txt

ads.txtの内容は、AdSense が発行したコードです。

Bash
google.com, pub-XXXXXXXXXXXXXX, DIRECT, XXXXXXXXXXX

手順 2:ads.txt を返すビューを作成する

Django のビューで ads.txt を読み込み、text/plain として返すようにします。

core/views.py に以下を追加。

Python
from django.http import HttpResponse, Http404
from pathlib import Path

def ads_txt(request):
    file_path = Path(__file__).resolve().parent.parent / "ads.txt"

    if not file_path.exists():
        raise Http404("ads.txt not found")

    content = file_path.read_text(encoding="utf-8")
    return HttpResponse(content, content_type="text/plain; charset=utf-8")

ポイントは、以下の通り。

  • ファイルが存在しなければ 404 を返す
  • text/plain を明示して Google のチェックを通す
  • プロジェクト内の ads.txt をそのまま読み込む

手順 3:URL を設定する

core/urls.py にルートパスで ads.txt を返す URL を追加します。

Python
from django.urls import path
from . import views

urlpatterns = [
    path("ads.txt", views.ads_txt, name="ads_txt"),
]

これで、ブラウザで以下へアクセスすると内容が表示されます。

Python
https://example.com/ads.txt

これでGoogle のクローラーも正しく認識してくれます。

■ まとめ

Django で AdSense の ads.txt をルート提供するには、次の手順です。

  1. ads.txt をプロジェクト内に作成
  2. 読み込んで返すビューを書く
  3. ads.txt という URL を追加する

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

CFXLOGのアバター CFXLOG プログラマ

こんにちは。CFXLOG の中の人です。
プログラマ/エンジニアとして働きつつ、趣味や勉強で得たことをこのブログにまとめています。
保有資格には「基本情報技術者試験」「宅地建物取引士」などがあります。
メイン言語は Pythonです。たまにVBAを触ることも。Webアプリからインフラ構築、テスト、データ処理まで、幅広く記載していきます。
「実務で使える」「勉強になる」「ちょっとした気づきになる」──そんな情報を発信していきます。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)