レポート作成(2)
AWQLでSQLのようにクエリを書く
ここではレポート定義を簡便化するためのAWQL(AdWords Query Language)を使ったレポート作成の方法を見ていきます。
PATH = './tmp/report_download.csv' def main(client): # (1) report_downloader = client.GetReportDownloader(version='v201603') # (2) report_query = ('SELECT CampaignId, AdGroupId, Id, Criteria, CriteriaType, ' 'FinalUrls, Impressions, Clicks, Cost ' 'FROM CRITERIA_PERFORMANCE_REPORT ' 'WHERE Status IN [ENABLED, PAUSED] ' 'DURING LAST_7_DAYS') # (3) with open(PATH, 'w') as output_file: report_downloader.DownloadReportWithAwql( report_query, 'CSV', output_file, skip_report_header=False, skip_column_header=False, skip_report_summary=False) # (4)
実行結果は下記のように先ほどと全く同じ内容になります。コードで直接保存したためヘッダ情報がついています。
コードの全体の流れは他のAPIとほぼ同じです。
(3)クエリ作成ではおなじみのSELECT、WHEREといったSQLコマンドが並んでいます。
WHERE以下でステータスが有効か一時停止のものに限定しています。
DURINGで期間指定をします。AWQLの詳細はリファレンス「AdWords クエリ言語(AWQL)」で確認できます。
コードのカスタマイズ
ここでAWQLを用いて別のデータをレポートとして取得する方法をみてみます。
例として品質スコア(広告の掲載順位を決定する評価指標のひとつ)を取得してみましょう。品質スコアはキーワードごとに決定されますので、ReportTypeとしてKEYWORDS_PERFORMANCE_REPORTを指定します。
またfieldsとして品質スコアを示すQualityScoreを指定します。それぞれFROM句とSELECT句で指定します。
report_query = ('SELECT CampaignId, AdGroupId, Id, ' 'QualityScore, Impressions, Clicks, Cost ' 'FROM KEYWORDS_PERFORMANCE_REPORT ' 'WHERE Status IN [ENABLED, PAUSED] ' 'DURING LAST_7_DAYS')#(3)
実行結果は下記のようになります。品質スコアがQualityScore項目として取得出来ました。
このようにSELECT句でFieldsの項目を指定し、FROM句でReportTypeを指定すれば、さまざまなレポートを取得できます。
分析時によく使われるReportTypeは下記です。
- AD_PERFORMANCE_REPORT
- ADGROUP_PERFORMANCE_REPORT
- CAMPAIGN_PERFORMANCE_REPORT
- KEYWORDS_PERFORMANCE_REPORT
例えば下記の様に指定すると、広告グループ単位で「表示回数」「クリック数」「費用」を取得します。
'SELECT AdGroupId, Impressions, Clicks, Cost FROM ADGROUP_PERFORMANCE_REPORT '
キャンペーンの停止・開始
AdWordsキャンペーンこどの広告表示を、自社システムと連結して(例えば在庫情報にひもづいて)自動で停止・開始などができれば便利です。CampaignServiceのmutateメソッドを用いればそれが可能です。使い方を見ていきましょう。
campaign_id = 'CAMPAIGN_ID' operations = [{ 'operator': 'SET', 'operand': { 'id': campaign_id, 'status': 'PAUSED' } }] # (1) campaigns = campaign_service.mutate(operations) # (2) print(campaigns)
コードの流れはここまでに見てきたものと共通なので、ポイントとなる部分だけを抜粋しています。
(1)メソッド実行に必要なデータを作成
AdWordsサービスオブジェクトに渡すためのオペレーションを作成し、operatorとoperandを記述します。
オペレーションではこれから行いたい操作に関する情報を指定します。operatorには操作の種類を指定します。今回は更新を行うため`SET`を指定します。operandには行いたい操作の情報を指定します。今回はキャンペーンを一時停止するためにstatus: PAUSEDを指定します。
CAMPAIGN_IDの箇所には更新したいキャンペーンIDを入れてください。
(4)メソッド実行
オペレーションをAdWordsサービスオブジェクトのmutateメソッドに渡し、実行します。
ここまででAPIをプログラムから操作する方法を確認していきました。
AdWords APIでは各サービスのメソッドとしてgetとmutateの二つが共通で用意されます。getメソッドで取得を行います。mutateにはoperatorとして`ADD`,`REMOVE`を指定する事でそれぞれ作成・削除の操作が可能です。つまりデータベースでいう取得・作成・更新・削除の操作は、AdWords APIではそれぞれget、mutateの`ADD`,`SET`,`REMOVE`を指定して行う事になります。
まとめ
AdWords APIをを用いて、レポート作成とキャンペーンの停止・開始をプログラムから操作する手順を確認していきました。APIを活用することで、従来は人手でやっていた作業をプログラムに代替させることができます。APIを活用して作業の自動化に挑戦してみてください。