Adwords Scriptで日次レポートをメール送信するスクリプトを書いた

参考になればシェアしてもらえるとうれしいです

  • このエントリーをはてなブックマークに追加
  • 8

「書いた」と言っても、公式のサンプルソリューションにあるスクリプトを改変したものになるんですけどね。

スポンサーリンク

このAdwordsスクリプトを使って得られるもの

前日のAdwordsアカウント成果の概要をメールで自動送信することができます。
情報を見に行く手間が省けるため、

  1. チームで成果を共有出来る。
  2. 習慣化しやすい

というのが最も大きいメリットだと思います。

このAdwordsスクリプトを作った理由

公式のサンプルソリューションのスクリプトを改変して、しばらくの間運用していたのですが、少しずつ課題が出てきたためです。

また、先日Adwordsスクリプト使おうぜ!みたいな記事を書いた手前、実際のサンプル的なものも上げとかないといけない気分になったからですw

リスティング広告の運用をラクに。Adwords Scriptのススメ
日々、リスティング広告の運用をしていると、同じようなことを反復することがよくあると思います。 毎週x曜日に○○レポートをダウンロー...

公式のAdwords Scriptの機能

サンプルソリューションとして提供されているアドワーズスクリプトが提供する機能は下記のとおりです。

  • 日次で”アカウント”の下記要素をGoogleスプレッドシートに記録する
    • コスト
    • 平均クリック単価(CPC)
    • クリック率(CTR)
    • 平均掲載順位
    • 表示回数(Impression)
    • クリック数
  • htmlメールで「前日」「前々日」「7日前」のデータを送信する

このスクリプトを毎日朝8時などに自動で起動するようにしておけば、前日のおおよそのアカウント健全度がわかるようになっています。

予算が少なく、検索数も少ないようなアカウントなどで、最低限の予算管理をしたい場合、このスクリプトを使うだけで、管理画面に入る手間を減らせるメリットがあります。

アカウント単位という弊害

アカウント全体の予算感を把握するだけなら、サンプルスクリプトで何ら問題がありませんでした。
ですが、アカウントによっては「平均掲載順位」や「CTR」の数値を追っておきたいものも少なくありません。

しかし、平均掲載順位やCTR、Impressionなどは「検索連動広告」と「ディスプレイ広告」で全く違うデータになってしまいます。
つまり、1アカウント内で検索連動とディスプレイ両方に出稿しているアカウントにおいて、平均掲載順位やCTRのデータは”正しい”といえる平均値ではないものが返って来てしまうことが課題として噴出しました。

公式スクリプトからの改変点

公式で紹介されているアドワーズスクリプトから、下記の点を改変しております。

表示項目の追加

表示項目に

  • コンバージョンに至ったクリック
  • CPA

を追加。

ECなどの場合、コンバージョンの値を取得し、ROASを計算しても面白いと思います。

グラフの変更・追加

要素の追加に合わせて、スプレッドシートにグラフの追加。
また、小規模アカウントは日によってグラフの数値が変動しすぎるため、7日の移動平均でのグラフ描画に変更。

コンバージョンが0の場合、CPAが0円になるのも気持ち悪いので、正確ではないですが、CVが0の場合、Cost=CPAとなるようにしています。
CV=0が多発するアカウントの場合、調整したほうが良いかと思います。グラフ自体はスプレッドシートのただのグラフなので、編集は容易かと思います。

データをネットワークごとに分割

「アカウントすべてのデータ」を「ネットワークごと」に分割することで、検索のデータとディスプレイネットワークのデータを分けて表示するように変更。

メールにグラフデータを追加

メールで概要把握が出来るのは素晴らしかったのですが、細かい数字の変動を見てもよくわからないので、上記の移動平均グラフをメールに添付するように変更。

以上、4点の改変を加えております。

日次レポートスクリプトの使い方

1.Googleスプレッドシートをテンプレートから作成

下記URLからテンプレートであるスプレッドシートを開き「コピーを作成」を選択。

2.スプレッドシートの編集

「コピーを作成」で、自分のGoogleドライブに保存したスプレッドシートの編集を行います。

screenshot_01

ファイル名を変更。

screenshot_02

わかりやすいファイル名に変更しておいたほうが良いでしょう。
名前はなんでもかまいません。

メール送信機能を利用する場合、メールの宛先を登録。

screenshot_03

メールの宛先をスプレッドシートに記入します。
CCも登録出来ますので、複数人に送る場合にご利用ください。

また、CCが複数人いる場合、カラム内にカンマで区切ってメールアドレスを入力ください。

例)example.a@test.com,example.b@test.com

3.Google Adwordsのスクリプト作成

[Adwords > アカウント > 一括処理 > スクリプト] のスクリプトの作成と管理をクリック。

screenshot_04

「+スクリプト」ボタンを押して、新規スクリプト作成画面へ。

screenshot_05

下記スクリプトをコピー&貼り付け。

screenshot_06

2016/06/10 更新
メールタイトルの日付が1週前の日付を返してしまっていたので修正。

4.スプレッドシートのURLを設定

1行目のスプレッドシートURLを、2でコピーしたスプレッドシートURLに修正する。

screenshot_07

5.グラフ関連の画像URLを取得

スプレッドシートで[ファイル > ウェブに公開]を選択。

screenshot_08

リンクタブで公開するドキュメントを指定できます。
公開ドキュメントにあたるグラフには、シート別にそれぞれ

  • Cost
  • CPC
  • CTR
  • Clicks
  • AverageCPC
  • Average Position
  • CV
  • CPA

と名前がついています。

今回、メールに掲載するグラフは

検索連動広告・ディスプレイ広告のグラフすべて。

なので、「Search Network」「Display Network」のシート内のグラフすべてを公開設定に変更します。

screenshot_11

この時、インタラクティブと画像の2種類が選択できますが、「画像」のURLをコピーしてください。

公開を押すと、公開URLが発布されます。screenshot_12
その公開URLをAdwords Scriptのsettings欄にそれぞれ記入していきます。

screenshot_16

6.スクリプトに名前をつける

ここまでできれば最低限の設定は完了です。
せっかくなので、スクリプトに名前をつけましょう。

名前自体は何でも構いません。
今回はわかりやすく「アカウント日次レポート」としました。

screenshot_17

7.プレビュー

続いて、実際に稼働するかプレビューを実行します。
プレビューを実行すると「承認が必要です」と実行許可を求められます。

screenshot_18

承認をしないとスクリプトは動かないので、「今すぐ許可」を押して承認をします。

screenshot_19

ここでの許可は、「スプレッドシートへのアクセス許可」や「メール送信許可」「自動でこのプログラムが動いて良いかの許可」などであり、私などの外部の人間がアクセス出来る許可ではないので、安心して承認してください。

問題がなければ30秒程度でプレビューが完了します。
「プレビュー」といっても、スクリプトは実際に稼働しているので、

  1. スプレッドシートにデータの追記
  2. メールの送信

が実行されています。

プレビュー機能とは、Adwordsアカウントに影響をもたらすような(入札単価の変更、広告の開始・停止など)スクリプトの場合、実際にアカウントに変更をもたらさない機能です。

スプレッドシート

screenshot_21

メール

screenshot_22

データは実際に動かしているアカウントなので、詳細はマスクします。
グラフ部分が表示されていないのは、7日の移動平均データのグラフを採用しているからです。

運用額が小さく、コンバージョンが無い日もあるようなアカウントを短日グラフで追ってしまうと、起伏が激しすぎて本来グラフとして読み取りたいデータが読み取れなかったためです。

実際に運用を続けると下記のようなグラフに変わっていくと思います。

screenshot_29

動かない場合は…。コメント欄に情報を添えて記入いただければわかるかもしれません。

8.実行予約

問題なくプレビューで動作した場合、Adwords Scriptの自動実行を登録します。
このスクリプトは昨日のデータ集計を行うものなので、日が変わった後に実行します。

screenshot_24

screenshot_27

0時や1時などを指定してしまうと、データの反映が終わっていない場合がありますので、5時以降に設定することをおすすめします。

これで設定は完了です。

番外編:過去データを取得する

当スクリプトの基本機能は

  1. 最終データ取得から、昨日のデータを取得し、スプレッドシートに転記する
  2. 昨日のデータと一昨日、1週間前のデータを比較し、メール通知する

というものです。

基本的に毎日稼働し始めれば、キレイに回るのですが、過去データをスプレッドシートに転記したいと思うと、少し手を加える必要があります。

開始日・終了日の設定

通常の動作においては空欄にするべき項目ですが、過去データを日時指定してデータ取得する場合のみに利用するオプションです。

screenshot_28

画像の例では、2014年2月6日から運用開始しているアカウントでしたので、そこから現在までのデータを取得しようと試みています。
現在までなのに、なぜ2015年1月31日が終了日になっているかは次の実行時間制限があるからです。

Adwords Scriptの実行時間制限

Adwordsスクリプトには1スクリプト「30分」という実行時間の制限があります。

数年間のデータを取得にはどうしても時間がかかり、制限である30分を超える可能性が大いにあります。
30分を超えると、処理が打ち切られ、データの転記が出来ません。

そこで、約1年程度に期間を制限して取得しています。

これを複数回繰り返すことで、過去数年のデータもスプレッドシートに転記することが出来ます。

長期的なデータをあつめ、分析すると、いろいろと分かることも増えてきます。

1年で「平均掲載順位が横ばいなのに、CPCが1.8倍程度になっている」ようなアカウントも競合の参入が激しい分野では珍しくありません。

きちんとデータを日々追って、正しい施策を打てるようにしていきたいですね。

当スクリプトの補足事項

当スクリプトには、いろいろとオレオレ仕様があります。

  1. 小規模アカウントで凸凹グラフになり過ぎないよう、CVが0件時のCPAはCV=1と同義としてグラフを描く
  2. CVR関係はまったく指標に載せていない

などです。

CVRを載せない理由

リスティングを運用している人なら、誰しもがわかっていることだと思いますが、コンバージョンは「コンバージョンした日」ではなく「広告をクリックした日」につきます。

つまり、

  1. 5月1日に広告クリック
  2. サイトを訪問し、類似サイトと比較のためブックマークに入れてサイトを離脱
  3. 5月4日にブックマークからサイトに訪れコンバージョン

上記ケースの場合、コンバージョンデータは5月1日に付与されます。

つまり、前日のデータを取得し、スプレッドシートに転記する当スクリプトでは、正確なCV数とそれに関連するデータを把握することは難しいのです。

検討期間がほぼ0日しかないアカウントならば、ある程度正しい数値が取れるでしょうが、1日以上の検討が存在するアカウントにおいて、CV関連データはほぼ虚像データとなってしまいます。

CVRという重要なデータだからこそ、正しくないデータを見続けるのは、誤った認識を植え付ける原因になり、良くないと考えているから、トラッキングから外しています。

CPAのグラフ描画を適当に丸めているのも同様の理由となります。

自らが把握したい本当のデータをしっかりと見定めて、ツールに使われるのではなく、ただのツールとして使うことが大切です。

スクリプトの価値

今回はレポーティングのAdwords Scriptの紹介でした。
このスクリプトのコーディングにかかった時間は約2時間です。

この2時間をスクリプトの価値で取り戻せれば、効果の高いものと言えるでしょう。

しかし、今回は反省の多いハックでした。

コードを読める人ならばわかるでしょうが、かなりのクソコードです。
既存の機能を元に拡張していた結果、「あれも欲しいな」「こんなこともしたいな」「こんなのも想定したほうがいいな」とツギハギだらけのプログラムになりました。

特に後半のメールまわりは、メソッド化しようとすれば出来るのですが、面倒になって強行突破しましたw

きちんとやりたいことを明確にして、ゼロから作ったほうが速くてキレイなものが組めたような気がします。
まあとりあえず動くからいいだろう。

また、自分でコードを書かなくても、サンプルプログラムで有用なものも非常に多くありますし、便利なスクリプトを公開していただいている方も多いです。

今回は、アカウントの詳細を見るために、ある程度のサマリー+グラフを用いましたが、もっと「ざっくりと手間をかけずに、複数アカウントの概要だけ把握したい」という場合は、山田さんが公開されているMCCスクリプトが非常に便利で活用できると思います。

コードが書ける方は、是非よりよいスクリプトを作成・公開してスクリプトの輪を広げていきましょう。

スポンサーリンク

参考になればシェアしてもらえるとうれしいです

  • このエントリーをはてなブックマークに追加

フォローする

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です