AdWords scriptでキーワードレポートを作る

gasaws

*本コラムはブログ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);
}

 

処理手順

処理手順は以下の通りです:

  1. AdWordsスクリプトから、あらかじめGoogleスプレッドシートで作ったキーワードレポートをコピー複製します
  2. 生データ流し込み用のシートと本レポート用のシートに分かれています
  3. 本レポート用シートにCID、アカウント名、作成日時を自動的に書き込みます
  4. キーワードレポートから、指定した項目のデータをを生データ流し込み用シートに展開します
  5. データを本レポート用シートにコピペし、生データ流し込み用シートは削除します
  6. レポートが完成したら、指定したメールアドレスに通知します

 

注意点

  • メール通知用のメールアドレスをコードの2行目に入力してください。

 

  • ひな形のGoogleスプレッドシートはこちらをコピー作成して使ってください。(メニュー→ファイル→コピーを作成)
    http://goo.gl/5oglji
    コピー作成したスプレッドシートのURLを、コードの3行目に入力してください。

 

 

  • 本レポートは今月分データを取得する設定にしていますが、コード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という表記をしてください。

 

完成イメージ

メール通知はこちらが届きます。

ss8

 

スプレッドシートに展開されたレポートは以下の通りです。

 ss9

 

自動実行の設定(オプション)

コードを保存した後、管理画面上でスケジュール設定すれば、指定した頻度(毎時間でも)、指定した日時に自動実行できます。メールが届くので、いいモニタリングツールになります。

 

ss7

 

他のレポートタイプのサンプルも順次公開していきます。

著者
Tags ,

Related posts

*

Top