Np-Urのデータ分析教室

オーブンソースデータなどWeb上から入手できるデータを用いて、RとPython両方使って分析した結果を書いていきます

Google Adsenseの情報をSlackにポストするためのBot作成

本記事は、Apps Script Advent Calendar 2017の5日目の記事です。



皆さんの中には、運営されているWebサイトにてGoogle Adsenseによる広告収入を得ている人もいるでしょう。
私自身、はてなProという有料版のブログを使っているため、「元を取ろう!」と考えてGoogle Adsenseを使っています。

「昨日はクリックされたかな?」
「今月は報酬いくらになったのかな?」
と結構気になってしまい、定期的にGoogle Adsenseの管理ページにいっては、
「あ…まだ0円…ですか……。」

と落ち込んでいる私ですが、この作業が結構面倒!!
せっかくならSlackを使って自動化してしまいましょう。

最近至るところで導入が進むSlackですが、外部サービスとの連携が非常に楽です。
今回はGAS(Google Apps Script)とSlackを連携させ、「昨日」や「今月」というキーワードをトリガーにして、昨日・今月のGoogle Adsenseデータを流してくれるBotを作成してみました。

完成形としては、以下のようなイメージです。
f:id:Np-Ur:20171118134553p:plain

  • SlackからGASへ情報をポストする
  • GAS側でSlackから受け取った情報を元に、Google Adsenseからデータを取得する
  • GASからSlackへ情報をポストする

といった流れになります。

Slack側の設定

まずはSlash Commandsの設定を行います。この辺りは以前に紹介した記事と同様です。
www.randpy.tokyo

https://slack.com/apps/A0F82E8CA-slash-commands?page=1にアクセスしてください。
次に「Add Configuration」をクリックしましょう。
f:id:Np-Ur:20171114232110p:plain

その後、「/adsense」と入力して次へ。
そしたら、Tokenという箇所をコピーするなりして、後で使えるようにしておいてください。これはGAS側で用います。
f:id:Np-Ur:20171118134954p:plain
一旦設定はSlack側の設定はここまでにして、続いてGASのコードを書いていきましょう。(すぐ戻るのでSlack設定画面はそのままにしておいてください。)

GAS(Google Apps Script)の設定

Google スプレッドシートを開いて、スクリプトエディタを開いて早速編集していきましょう。
この辺り、よく分からない方は下の記事を参考にしてみてください。
www.randpy.tokyo

コードとしては、以下の通りです。

Githubにも置いてあります。
github.com

まず、1行目に先ほど作ったSlash CommandsのTokenを貼り付けてください。
続いて、Google Adsenes APIをGASから叩くための設定を行います。

『リソース』 >> 『Googleの拡張サービス』をクリックしましょう。
f:id:Np-Ur:20171118142050p:plain

AdSense Management APIを有効にするため、「On」にしたら、Google APIコンソールをクリックしましょう。
f:id:Np-Ur:20171118142204p:plain

Google のAPIを使えるようにするためのページに飛ぶので、上部の検索窓から「AdSense Management API」を検索し、「有効にする」を選択してください。
f:id:Np-Ur:20171118142446p:plain
そしたら元のGASページに戻り、「OK」をクリックしましょう。
これでGASからAdsense APIを自由に扱うことができるようになりました。

ここまでできたら保存して、公開作業に移りましょう。
www.randpy.tokyoと同様に、『公開』>>『ウェブアプリケーションとして導入』から公開作業を行い、公開用のURLを作成しましょう。

Slack設定作業に戻る

ここまで来たら、先ほど途中だったSlach Commandsの設定ページに戻りましょう。
先ほど作成したGASの公開用URLをコピペしてください。
f:id:Np-Ur:20171118143233p:plain

もし必要な場合は、Botの名前やアイコンを設定し、画面下部の「Save Integration」をクリックしてください。
これにて、設定はすべて完了です!お疲れ様でした!!

動作方法

今回、

  • 昨日のデータ
  • 今月のデータ

を2パターン取得する設定にしてみました。

「/adsense 昨日」と打つと、昨日のGoogle Adsenseのデータを表示してくれます。同様に「/adsense 今月」と打つと、今月のGoogle Adsenseのデータを表示してくれます。
f:id:Np-Ur:20171118134553p:plain
データ取得範囲は

この辺りで設定しています。

もし、1週間のデータや1年分のデータも欲しいという場合はコードを修正してみてください。

また表示するデータは

  • ページビュー数
  • 広告リクエスト回数
  • クリック数
  • CTR
  • CPC
  • RPM
  • 見積もり収益

となっています。
これは、

この辺りで設定しています。

もし他の指標も取りたいという場合は、この部分をいじればもっと多彩な情報を自動取得することができます。公式サイトの指標とディメンションを参考にしてみてください。

また例えば

  • 一週間ごとや曜日ごと、月ごとのデータが欲しい
  • 地域ごとのデータが欲しい
  • 複数広告運用しているから、広告ごとのデータが欲しい

という場合はAPIにリクエストを投げる際に、ディメンションというものを指定することで実現できます。
この辺りを説明し始めると、かなり長くなってしまうので省略させていただきます。
GASのサンプルコード
指標とディメンション
この辺りが参考になるかと思います。

まとめ

今回は、SlackにてGoogle Adsense からデータを取得するためのBotを作成しました。

いちいちAdsenseページにログインして該当部分のデータを見て…ということをしなくてもお使いのSlackから簡単に自動化できます。
Google Adsense APIに投げるリクエストの書き方を変えてみたり、トリガーとなるキーワード(今回は「昨日」と「今月」のみ)を増やしてみたりして、あなたに合ったBotを作り上げてみてください!