Dragon Arrow written by Tatsuya Nakaji, all rights reserved animated-dragon-image-0164

Rails5.2 ads.txt ファイルの作成

イメージ
Jul 28, 2019

ads.txt ファイルを作成して設置



環境


Amazon Linux 2
Rails 5.2.1
ruby 2.4.2
nginx 1.12.2
unicorn 5.5.1


経緯


GoogleAdsenseのコンソールから、「要注意 - 収益に重大な影響が出ないよう、ads.txt ファイルの問題を修正してください。」と警告が来ていたので、今回こちらを設置しました。


ads.txtの役割


広告枠の販売を許可する認定販売者を宣言することで詐欺広告を防止し、透明性を高めることができます。

自身のサイトで、広告枠の販売を許可されたことを掲示する役割を持っています。


作成と設置


手順1. ads.txt をgoogleAdesnse のコンソールからダウンロード

ちなみに、ダウンロードせずに.txtファイルを作成してもいいですが、ダウンロードした方が、サイト運営者IDとかも書いてくれているので早いです。


手順2. ads.txt を、ドメインのルートレベル(例: https://example.com/ads.txt)でホストする


アプリ/public内にads.txtファイルを置くだけでホストされます。以後、ドメイン/ads.textを叩くと該当ファイルが表示されます。

ローカルからEC2にコピーするときはscpコマンドを使いましょう。


$ scp -i [ec2の公開鍵のパス] ~/Downloads/ads.txt [ユーザー名]@[サーバのドメイン]:[アプリのパス]/public/ads.txt

これで、[アプリのパス]/publicに ads.txt がコピーされます。


手順2. nginxにて文字コードを指定

https://fe.datasign.co/adstxt/ こちらのサービスでads.txtをテストしてもらえるとわかると思いますが、

”ISO-8859-1″は誤った文字コードです。utf-8で作成してください。

と表示されると思います。理由は、nginxを経由してファイルにアクセスするときに、文字コードが変換されてしまうからです。

なので、nginx設定がいるから文字コードを指定する。


筆者の場合、アプリ名froala-blogのnginx設定ファイルは、froala-blog.conf なので

$ sudo vi /etc/nginx/conf.d/froala-blog.conf

...
server {
  charset utf-8; # こいつを追加
  server_name domain xx.xx.xx.xx;
  # nginx so increasing this is generally safe...
  keepalive_timeout 5;
  # path for static files
  root /var/www/rails/froala-blog/public;
  # page cache loading
  try_files $uri/index.html $uri.html $uri @app;
  location @app {
    # HTTP headers
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://app_server;
  }
...

最後にnginxとunicorn(ウェブサーバー、アプリケーションサーバー)を再起動すれば終了です。

https://fe.datasign.co/adstxt/  でもう一度テストすると文字コードエラーが消えていると思います!


ドメイン/ads.txtでアクセスして、ads.txtの表示を確認しましょう!


   


ちなみに...nginxではなくApatchを使っている方は手順2にて以下の通りにすると良いです

 .htaccess に以下の内容を追記

<Files ads.txt>
AddType "text/plain; charset=utf-8" .txt
</Files>

これで、UTF-8で txtファイルと接続できます。