基本的なコードの流れ
前項まででAPIを利用するための準備が整い、最初のAPIを操作するところまでできました。
本項では実際にAPIをコールするコードを詳しく見ていきます。例としてキャンペーンの情報を取得するコードをとりあげます。
from googleads import adwords
def main(client): # (1)
campaign_service = client.GetService('CampaignService',
version='v201603') # (2)
selector = {
'fields': ['Id', 'Name', 'Status']
} # (3)
page = campaign_service.get(selector) #(4)
print(page)
if __name__ == '__main__':
adwords_client = adwords.AdWordsClient.LoadFromStorage() # (1')
main(adwords_client)
コードは4つのパートで構成されています。それぞれパート別に確認していきましょう。
(1)オブジェクト(クライアント情報)の生成
クライアントオブジェクトを生成します。
実際には(1)クライアントオブジェクトを生成し、メイン関数に引数としてclientを渡しています。(1)ではgoogleads.yamlファイルからIDなど必要情報を読み込んでいます。ファイルパスとして引数無しの場合は(クライアントライブラリの)ホームディレクトリを参照します。
(2)オブジェクト(AdWordsサービス)の生成
AdWordsサービスのオブジェクトCampaignServiceをインスタンス化しています。
引数のversionにはAdWords APIのバージョンを定数で指定します。ここでは執筆時点(2016/05/15)での最新のv201603を指定しています。
(3)メソッド実行に必要なデータを作成
AdWordsサービスオブジェクトに渡すための必要なデータを作成します。今回はgetメソッドに引き渡すセレクタとしてデータを作成しています。
セレクタでは取得するデータに関する情報を指定します。fieldsではレポートの項目(スプレッドシートでいう列の項目)を指定します。ここでは(Id, Name, Status)を指定しています(それぞれキャンペーンID、キャンペーン名、キャンペーンのステータス)。
(4)メソッド実行
セレクタをCampaignServiceオブジェクトに渡し、getメソッドで情報取得を実行します。
レポート作成(1)
前項でAdWords APIのプログラムによる操作手順の大枠がつかめました。
次は、APIの中でも最も利用機会の多いレポート作成のAPIを見ていきます。
def main(client): # (1)
report_downloader = client.GetReportDownloader(version='v201603') # (2)
report = {
'reportName': 'Last 7 days CRITERIA_PERFORMANCE_REPORT',
'dateRangeType': 'LAST_7_DAYS',
'reportType': 'CRITERIA_PERFORMANCE_REPORT',
'downloadFormat': 'CSV',
'selector': {
'fields': ['CampaignId', 'AdGroupId', 'Id', 'CriteriaType',
'Criteria', 'FinalUrls', 'Impressions', 'Clicks', 'Cost']
}
} # (3)
report_downloader.DownloadReport(
report, sys.stdout, skip_report_header=False, skip_column_header=False,
skip_report_summary=False) #(4)
コードを実行し、取得したデータをExcelで開くとこのような形になっています。
レポートデータはCSVとして保存しておくのが便利です。Excelレポートとしてグラフなどで可視化するほか、ストレージにバックアップとして保存し、Amazon Redshiftなどデータウェアハウス経由で他のデータ(アクセス解析やCRM)と統合して高度な分析に用いる、などの方法を活用できます。
コードは他のAPIと同じく、4つのパートで構成され(1)(2)までは先ほどと同じです。ここではコード後半に注目して解説していきます。
(3)メソッド実行に必要なデータを作成
レポートダウンロードのメソッドDownloadReportメソッドを利用します。ここではメソッド実行に必要なレポート定義クエリを作成します。
いくつかの情報を指定しますが、とくに重要なのはReportType、fieldsです。
ここではReportTypeのどの種類のレポートをよびだすのかを指定します。キャンペーンクライテリアレポートの場合はCRITERIA_PERFORMANCE_REPORTです。
fieldsは取得したい項目を指定します(先ほどのcampaign_get.pyと同じ)。
レポート作成のAPIでは、ReportTypeとfieldsを指定することで掲載結果情報をレポートとして取得します。
(4)メソッド実行
レポート定義クエリreportをダウンローダオブジェクトに渡し、ダウンロード実行します。
