P-MAXキャンペーンや部分一致キャンペーンを運用している方なら、この苦労は既にご存知でしょう。Googleは実際の検索クエリを隠してしまうのですが、このスクリプトを使えば、それらを復元できます。MCCに直接接続し、コンバージョンに至ったクエリを取得し、CPAとコンバージョン率を計算したGoogleスプレッドシートに出力します。
私たちのスクリプト「Apps Script を使用して最も効果的な Google 広告の検索キーワードを Google スプレッドシートにエクスポートする方法」は、複数のクライアントを管理する代理店や推測を避けたいマーケティング担当者に最適です。
詳しく見ていきましょう。
スクリプト セクションでは、Google 広告 MCC 内のすべての一括自動化を設定します。
1. MCC(マネージャーアカウント)にログインし、[ツール] > [一括操作] > [スクリプト] に移動します。
2. 青いプラス(+)ボタンをクリックして新しいスクリプトを作成します
スクリプトエディタが開きます。ご安心ください。ゼロからコーディングする必要はありません。既に記述されているスクリプトを貼り付けるだけです。このボタンをクリックすると、自動化用の空のスクリプトコンテナが作成されます。
スクリプトに名前を付けることは、長期的な管理とスケジュール設定に不可欠です。
3. 後で分かりやすいようにスクリプトに名前を付ける
スクリプトエディタウィンドウの上部に、名前を入力するフィールドがあります。「パフォーマンスの高い検索語句レポート」のように、わかりやすい名前を付けてください。こうすることで、複数のスクリプトやアカウントを管理する際に、スクリプトを識別しやすくなります。
名前をつけられます 実際の検索キーワードで最もパフォーマンスが高い
そしてスクリプトを挿入します (この投稿の下部に含まれています)。
スクリプトに名前を付ける
4. スクリプト全体をエディタに貼り付けます
function main() {
// 移動先の Google スプレッドシート URL を設定します
var spreadsheetUrl = 'Google スプレッドシートの URL をここに貼り付けます';
// アカウント名を取得して、シート名を動的に設定します
var accountName = AdsApp.currentAccount().getName();
// アカウント名を使用して、スプレッドシート内のタブにラベルを付けます
var sheetName = accountName + ' - Top Performing Conditions PC 90 Days';
// URL でスプレッドシートを開きます
var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);
// 名前でシートを取得します。シートが存在しない場合は作成します
var sheet = spreadsheet.getSheetByName(sheetName) || spreadsheet.insertSheet(sheetName);
// シートから既存のデータをすべてクリアします
sheet.clear();
// スプレッドシートにヘッダー行を書き込みます
sheet.getRange('A1').setValue('Campaign Name');
sheet.getRange('B1').setValue('広告グループ名');
sheet.getRange('C1').setValue('検索語句');
sheet.getRange('D1').setValue('コンバージョン');
sheet.getRange('E1').setValue('コンバージョン値');
sheet.getRange('F1').setValue('コンバージョン単価(CPA)');
sheet.getRange('G1').setValue('コンバージョン率(%)');
// レポートのカスタム期間を設定します(形式:YYYYMMDD)
var startDate = '20230315';
var endDate = '20240915';
// 検索クエリ パフォーマンス レポートからクエリを作成します
var report = AdsApp.report(
"SELECT CampaignName, AdGroupName, Query, Conversions, ConversionValue, Cost, Clicks " +
"FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
"WHERE Conversions > 0 " +
"DURING " + startDate + "," + endDate
);
// レポートの行を取得し、データ挿入の開始行を設定します
var rows = report.rows();
var rowNumber = 2;
// レポートの各行を反復処理します
while (rows.hasNext()) {
var row = rows.next();
// ブランド フィルタリングの一貫性を保つため、検索語句を小文字にします
var searchTerm = row['Query'].toLowerCase();
var Conversions = parseFloat(row['Conversions']);
// コンバージョン数が 1 未満の行をスキップします
if (conversions < 1) continue;
// レポートの乱れを防ぐため、ブランド関連のキーワードを除外します。
if (searchTerm.includes('parker chase') || searchTerm.includes('parker-chase') || searchTerm.includes('endeavor schools')) {
continue;
}
// オプションの汎用フィルタ - ここでキーワードを追加または削除します。
if (
searchTerm.includes('creative') ||
searchTerm.includes('learning') ||
searchTerm.includes('content')
) {
continue;
}
// パフォーマンスを計算するために、コストとクリック値を抽出します。
var cost = parseFloat(row['Cost']);
var clicks = parseFloat(row['Clicks']);
// コンバージョン単価(CPA)を計算します。
var cpa = Conversions > 0 ? cost / Conversions : 0;
// コンバージョン率を計算
var ConversionRate = clicks > 0 ? (コンバージョン数 / クリック数) * 100 : 0;
// 値をフォーマット
cpa = cpa.toFixed(2);
conversionRate = ConversionRate.toFixed(2);
// スプレッドシートに行を書き込みます
sheet.getRange(rowNumber, 1).setValue(row['CampaignName']);
sheet.getRange(rowNumber, 2).setValue(row['AdGroupName']);
sheet.getRange(rowNumber, 3).setValue(row['Query']);
sheet.getRange(rowNumber, 4).setValue(conversions);
sheet.getRange(rowNumber, 5).setValue(row['ConversionValue']);
sheet.getRange(rowNumber, 6).setValue('$' + cpa); // CPA にドル記号を含める
sheet.getRange(rowNumber, 7).setValue(conversionRate + '%'); // パーセント記号を追加する
// シート内の次の行に移動する
rowNumber++;
}
// 処理された行数をログに記録する
Logger.log('エクスポートが完了しました。処理された行数の合計: ' + (rowNumber - 2));
}
このスクリプトには、実行前に調整できる設定がいくつか含まれています。これらはすべてスクリプトのコメントブロック内にあり、具体的な目標、レポート範囲、またはフォーマット設定に応じて変更してください。
変更できる内容とその理由を以下に説明します。
1. スプレッドシートのURL
var SpreadsheetUrl = 'https://docs.google.com/spreadsheets/d/xxxxx/edit';
機能:
スクリプトはここにデータを送信します。プレースホルダーURLをGoogleスプレッドシートへのリンクに置き換えてください。複数のメールアドレスを使用している場合は、スプレッドシートがMCCに紐付けられたGoogleアカウントと共有されていることを確認してください。
2. 日付範囲の設定
var startDate = '20230315';
var endDate = '20240915';
機能:
レポート期間を制御します。日付はYYYYMMDD形式で入力する必要があります。分析対象の期間(過去30日間、過去90日間、四半期ごとのカスタム範囲など)に合わせて調整できます。
3. シート名の動作
var sheetName = accountName + ' - 最もパフォーマンスの高い用語 PC 90 日間';
機能:
この行は、スクリプトを実行しているアカウントに基づいて、シートタブの名前を動的に変更します。レポートに異なるラベルを付けたい場合は、テキスト文字列部分(「—Top Performing Conditions PC 90 Days」)を変更できます。これは、複数のブランドやサブアカウントで実行する場合に役立ちます。
4. ブランド用語フィルタリング
if (searchTerm.includes('パーカー・チェイス') || searchTerm.includes('パーカー・チェイス') || searchTerm.includes('エンデバー・スクール')) {
continue;
}
機能:
このセクションでは、レポートからブランド関連のキーワードを除外します。.includes() 条件を追加または削除することで、このリストを更新できます。例えば、「MyBrand」を除外したい場合は、以下を追加します。
|| searchTerm.includes('mybrand')
スクリプトはすべてのクエリを小文字に変換するため、一貫して小文字を使用してください。
5. 一般的な用語のフィルタリング
if (
searchTerm.includes('creative') ||
searchTerm.includes('learning') ||
searchTerm.includes('content')
) {
continue;
}
機能:
このオプションのフィルターは、「学習」や「クリエイティブ」など、ブランドに特化していないものの、データを混乱させる可能性のある用語を除外します。ノイズと見なすものに基づいて、ここでフィルターを追加または削除できます。
6. パフォーマンスしきい値
(コンバージョン < 1)の場合は継続します。
機能:
この行は、コンバージョンが発生していないクエリを除外します。必要に応じて、パフォーマンスの高いキーワードにのみ、このしきい値を上げることができます。例えば、次のように変更します。
(コンバージョン数 < 3)の場合は継続します。
...日付範囲内で 3 件以上のコンバージョンがある検索語句のみを含めます。
7. シート出力の書式設定
sheet.getRange(rowNumber, 6).setValue('$' + cpa);
sheet.getRange(rowNumber, 7).setValue(conversionRate + '%');
機能:
シート上でのCPAとコンバージョン率の表記方法を指定します。文字列の追加部分を編集または削除することで、記号(例:$、%)を削除できます。
スクリプトが正常に実行されると、Googleスプレッドシートに構造化された表が作成されます。各行は、指定された期間内に少なくとも1回のコンバージョンをもたらした検索キーワードを表します。
Googleスプレッドシートの例
このスクリプトはGoogleスプレッドシートにパフォーマンスに関する一連の列を生成し、各検索語句がどのように貢献しているかを明確に把握できるようにします。これらの列には、検索語句がトリガーされた場所を追跡するためのキャンペーン名と広告グループ名、ユーザーが実際に入力した検索語句、その検索語句によって促進されたコンバージョン数、合計コンバージョン値、平均コンバージョン単価、全体的なコンバージョン率が含まれます。各フィールドは、何が効果的で何が無駄になっているかを把握する上で非常に重要です。
キャンペーン名
広告がトリガーされたキャンペーンの名前
広告グループ名
検索語句に一致する広告グループ
検索用語
ユーザーがGoogleに入力した正確なフレーズ
コンバージョン
そのキーワードから追跡されたコンバージョン数
コンバージョン値
アカウント設定に基づく、これらのコンバージョンの合計値
コンバージョン単価(CPA)
その検索語句から1回のコンバージョンを生み出すのにかかる平均コスト
コンバージョン率(%)
コンバージョンにつながったクリックの割合
このスクリプトは堅実な基盤となりますが、レポートの精度に応じてさらに高度な分析が可能です。1つのMCCで複数のブランドやアカウントを管理している場合は、キャンペーンラベルやフィルタを追加することで、ブランドや事業部門ごとにデータを分離できます。スクリプトを週次または月次で自動実行するようにスケジュール設定することで、時間を節約し、一貫性のあるレポートを作成できます。CPAやコンバージョン率などの主要指標が特定のしきい値を超えた場合にアラートを送信するロジックを構築することもできます。より詳細な分析を行うには、他のレポートと組み合わせることもできます。 キーワード_パフォーマンス_レポート
マッチタイプ別の内訳を確認できます。スプレッドシート内でピボットテーブルや条件付き書式を追加することで、より迅速にインサイトを抽出できます。さらに視覚的に分析したい場合は、データをLooker Studioに取り込み、クライアントが理解しやすいダッシュボードを作成することもできます。
キャンペーンラベルやアカウントレベルのフィルタを追加して、大規模なクライアント センター全体のデータをセグメント化します。
組み込みのスケジュールを使用して、毎週または毎月のレポートを自動化します。
CPA が特定の値を超えた場合、またはコンバージョン率がしきい値を下回った場合にメールアラートをトリガーします
KEYWORDS_PERFORMANCE_REPORT などの他のレポートのデータを結合して、マッチタイプを分類します。
基本的なピボット集計や条件付き書式をスプレッドシートに直接追加する
出力をLooker Studioに接続して、視覚的なパフォーマンスダッシュボードを作成します。
Bright Vesselでは、雑然とした広告環境から明確なパフォーマンスインサイトを必要とするクライアントのために、このようなカスタム自動化ツールを構築しています。使いにくいダッシュボードを何度も探したり、必要なデータを取得するために手動でエクスポートを何度も実行したりすることにうんざりしているなら、このスクリプトは私たちがプロセスを効率化する数多くの方法の一つに過ぎません。
大規模なトラッキングを自動化する別の方法については、「Google スプレッドシートと Apps Script を使用して、MCC アカウント全体で Google 広告の目標ステータスを監視する方法」の関連チュートリアルをご覧ください。
Slack と統合したり、Looker ダッシュボードを構築したり、複数の広告アカウントをマスターシートに接続したりするバージョンが必要ですか? 当社が作成します。 話しましょう .
"*「必須項目」は必須項目です
"*「必須項目」は必須項目です
"*「必須項目」は必須項目です