*本コラムはブログQuantum Leapの記事を転載したものです。
オリジナルURL:
【AdWords script】3. AdWordsのキーワードレポートをGoogleスプレッドシートで作成する
久しぶりにAdWords script関連です。簡単なサンプルを公開していきます。
今回はキーワードレポートをGoogleスプレッドシートで作成します。
キーワードレポートを取得したいアカウントにAdWords管理画面から入り、一括処理→スクリプトに行き、新規スクリプトを作成し、以下のサンプルコードをコピペして保存してください。
サンプルコード
// グローバル変数 var email = '(メール通知を受信するメールアドレスをここにペースト。''の間に。)'; var spreadsheet_url = '(レポートを流し込みたいGoogleスプレッドシートのURLをペースト。''の間に。)'; var formattedDate = Utilities.formatDate(new Date(), "JST", "yyyy/MM/dd' 'HH:mm:ss"); var cid = AdWordsApp.currentAccount().getCustomerId(); var accountname = AdWordsApp.currentAccount().getName(); function main() { var spreadsheet = copySpreadsheet(spreadsheet_url); var rawsheet = spreadsheet.getSheetByName('rawdata'); var formatsheet = spreadsheet.getSheetByName('AW-kw'); formatsheet.getRange(1, 9, 1, 1).setValue(formattedDate); formatsheet.getRange(1, 2, 1, 1).setValue('CID:'); formatsheet.getRange(1, 3, 1, 1).setValue(cid); formatsheet.getRange(2, 2, 1, 1).setValue('アカウント名:'); formatsheet.getRange(2, 3, 1, 1).setValue(accountname); // レポート取得 var report = AdWordsApp.report( 'SELECT CampaignName, AdGroupName, KeywordText, KeywordMatchType, Impressions, Clicks, Ctr, Cost, ConversionsManyPerClick, CostPerConversionManyPerClick, ConversionRateManyPerClick, AveragePosition ' + 'FROM KEYWORDS_PERFORMANCE_REPORT ' + 'WHERE Status = ENABLED '+ // 'WHERE Impressions > 0 ' + 'DURING THIS_MONTH'); // 上記AWQLで指定したデータをエキスポート report.exportToSheet(rawsheet); // コスト列でソート rawsheet.sort(8, false); // ヘッダー設定 var header = [ 'キャンペーン名', '広告グループ名', 'キーワード', 'マッチタイプ', 'インプレッション数', 'クリック数', 'クリック率', 'コスト', 'コンバージョン数', 'コンバージョン単価', 'コンバージョン率', '平均掲載順位', ]; var headerrange = formatsheet.getRange(4, 2, 1, 12); headerrange.setValues([header]); headerrange.setHorizontalAlignment("center"); headerrange.setFontWeight("bold"); headerrange.setFontSize(8); // rawdataをフォーマットシートへ値コピー(フォーマットシートのクリック率列の書式を%にしておく) var lastRow = rawsheet.getLastRow(); var lastColumn = rawsheet.getLastColumn(); var copyValue = rawsheet.getRange(2, 1, lastRow, lastColumn).getValues(); formatsheet.getRange(5, 2, lastRow, lastColumn).setValues(copyValue); // 処理後、rawdataシートを削除する spreadsheet.deleteSheet(rawsheet); // ログ記録とメール通知設定 Logger.log('キーワードレポート(今月)の準備ができました\n' + spreadsheet.getUrl()); if (email) { MailApp.sendEmail(email, 'キーワードレポート(今月)の準備ができました' + ' ' + accountname + ' ' + formattedDate, spreadsheet.getUrl()); } } // スプレッドシートのコピー利用 function copySpreadsheet(spreadsheetUrl) { return SpreadsheetApp.openByUrl(spreadsheetUrl).copy( 'キーワードレポート(今月)' + " " + accountname + " " + formattedDate); }
処理手順
処理手順は以下の通りです:
- AdWordsスクリプトから、あらかじめGoogleスプレッドシートで作ったキーワードレポートをコピー複製します
- 生データ流し込み用のシートと本レポート用のシートに分かれています
- 本レポート用シートにCID、アカウント名、作成日時を自動的に書き込みます
- キーワードレポートから、指定した項目のデータをを生データ流し込み用シートに展開します
- データを本レポート用シートにコピペし、生データ流し込み用シートは削除します
- レポートが完成したら、指定したメールアドレスに通知します
注意点
- メール通知用のメールアドレスをコードの2行目に入力してください。
- ひな形のGoogleスプレッドシートはこちらをコピー作成して使ってください。(メニュー→ファイル→コピーを作成)
http://goo.gl/5oglji
コピー作成したスプレッドシートのURLを、コードの3行目に入力してください。
- データ項目を追加・変更したい場合は、SELECT部分に指定してください。データ項目の選び方は、以前のブログで取り上げたAWQL.meを使いながらやると楽に指定できます。
http://www.quantumleap.jp/2015/02/adwords-script1-google.html
- 本レポートは今月分データを取得する設定にしていますが、コード24行目のTHIS_MONTHの部分を、以下に変更することで違う期間のデータを取得できます(つまり、ニーズに応じて先週分とか本日分レポートも別途作成できる、という意味でもあります)。
TODAY | YESTERDAY | LAST_7_DAYS | THIS_WEEK_SUN_TODAY | THIS_WEEK_MON_TODAY | LAST_WEEK | LAST_14_DAYS | LAST_30_DAYS | LAST_BUSINESS_WEEK | LAST_WEEK_SUN_SAT | THIS_MONTH
期間指定を日付で行いたい場合は、DURING 20150301,20150308という表記をしてください。
完成イメージ
メール通知はこちらが届きます。
スプレッドシートに展開されたレポートは以下の通りです。
?
自動実行の設定(オプション)
コードを保存した後、管理画面上でスケジュール設定すれば、指定した頻度(毎時間でも)、指定した日時に自動実行できます。メールが届くので、いいモニタリングツールになります。
他のレポートタイプのサンプルも順次公開していきます。