Google 広告、Yahoo!広告、Microsoft 広告では、検索結果ページに広告を掲載できる検索広告が提供されています。検索広告の配信で重要なのは、「誰に広告を届けるか」を決めるキーワードと、「どんな内容を伝えるか」を決める広告文です。登録したキーワードの条件(マッチタイプ)に基づき、ユーザーが実際に検索した語句に合わせて広告が表示されます。ここで注意すべきポイントは、配信すべきではない検索語句に広告を表示しないことです。不要な検索語句への配信を防ぐことで、無駄なコストを削減できます。この課題を解決するのが除外キーワードです。本記事では、除外キーワードの反映を自動化する方法を解説します。
除外キーワードの登録を自動化
検索広告を運用している皆さん、除外キーワードの設定で苦労した経験はありませんか? インテントマッチによるキーワード拡張を伴う配信をはじめ、近年では完全一致やフレーズ一致であっても類似パターンで広告が配信されるケースが増えています。つまり、設定したキーワードと「完全に(もしくは、フレーズで)一致する検索語句」だけに広告が表示されるとは限らないのです。
さらに、他社のブランドワードで広告が表示され、掲載除外の依頼を受けた経験がある方も多いでしょう。その度に作業が中断されたり、管理画面を開いて除外設定を行うのは手間がかかります。また、AIが進化した現在でも、配信効率を改善するために検索語句を目視で確認する価値は依然として高いと言えます。とはいえ、毎回の確認や除外作業に時間を取られるのは効率的ではありません。
そこで本連載では、Google スプレッドシートとGoogle 広告スクリプトを活用し、除外キーワードの登録を自動化する方法を紹介します。
少しでも除外対応の負担を減らし、本来注力すべき分析や改善業務に時間を割けるようになることを目指しましょう!
広告スクリプトによる除外キーワード反映自動化の全体像
今回紹介するGoogle広告スクリプトを活用することで、管理画面にログインすることなく、除外キーワードの設定を自動化できます。運用者が手作業で管理画面にアクセスして登録していた作業を、Google スプレッドシートに入力するだけで完結させます。
スプレッドシートに除外したいキーワードを入力すると、スクリプトが事前に設定されたスケジュールでその内容を読み込み、除外キーワードリストに反映します。
除外キーワードの反映を自動化するために用意するもの
まずは、Google スプレッドシートとGoogle 広告の除外キーワードリスト、Google 広告スクリプトのコードを準備します。今回はスクリプトを試しに使えるよう、テスト用のスプレッドシートを以下に準備しました。必ず自分のGoogle ドライブに複製してご利用ください。
- Google スプレッドシート(お試し用)
スプレッドシートのIDは「https://docs.google.com/spreadsheets/d/」から「/edit#gid=~」の間をコピーします。Google 広告のサンプルコードの()内の「スプレッドシートのID」を先ほどコピペしたものに書き換えてください。
- Google 広告の除外キーワードリスト
今回は除外キーワードリストに除外キーワードを反映します。実際に配信中のキャンペーンや広告グループに除外を反映したい場合は、リストをキャンペーンか広告グループに紐づけてください。
- Google 広告 スクリプトのサンプルコード
function main () {
// スプレッドシートを指定
var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID');
// シートを指定
var sheet_negativeKeywords = spreadsheet.getSheetByName('negativeKeywords');
// シートを指定
var sheet_add = spreadsheet.getSheetByName('add');
// 除外キーワードリストのキーワード一覧を取得
var report = AdsApp.report(
"SELECT shared_set.name, shared_criterion.keyword.text, shared_criterion.keyword.match_type FROM shared_criterion WHERE shared_criterion.type = 'KEYWORD'"
);
// レポートの結果をスプレッドシートに書き込む
report.exportToSheet(sheet_negativeKeywords);
Utilities.sleep(5000);
// バルクシートを読み込み
; const upload = AdsApp.bulkUploads().newFileUpload(sheet_add);
upload.forCampaignManagement();
// バルクシートをアップロード
upload.apply();
// 除外キーワードリストのキーワード一覧を取得
var report = AdsApp.report(
"SELECT shared_set.name, shared_criterion.keyword.text, shared_criterion.keyword.match_type FROM shared_criterion WHERE shared_criterion.type = 'KEYWORD'"
);
// レポートの結果をスプレッドシートに書き込む
report.exportToSheet(sheet_negativeKeywords);
}除外キーワードスクリプトの設定手順
Google 広告スクリプトの初期設定については、過去の連載の「Google 広告にログインする」「スクリプト編集ページを開く」をご確認ください。
今回は、下記の状態から設定を始めます。
スクリプトを設定
スクリプト名を「無名のスクリプト」から「除外キーワードリスト更新」など、任意のものに変更しましょう。
右上に表示されている「承認」ボタンをクリックします。
別のウィンドウが開かれるので、ガイダンスに沿って承認します。
先述のサンプルコードを記述し、右下の「プレビュー」をクリックします。先ほどと同様に「承認」ボタンが表示されますのでクリックし、ガイダンスに沿って承認します。
承認したらもう一度、右下の「プレビュー」を押下します。すると、スプレッドシートの「negativeKeywords」リストに、Google 広告側であらかじめ設定した既存の除外キーワードリストの除外キーワード一覧が反映されます。
ここから実際に除外キーワードを反映するための作業を行います。スプレッドシート「除外キーワード追加リスト」シートに除外したいキーワードを入力します。
「除外キーワード追加リスト」シートに記入することで「add」シートに今回除外したいキーワードが反映されました。これが管理画面に反映するためのシートになります。
スクリプト編集画面に戻り「実行」をクリックします。
実行が完了するとスクリプトの履歴ページに移動し、ステータスが終了になっていることを確認します。
対象の除外キーワードが除外キーワードリストに反映されていれば完了です。
実行スケジュールを設定
スクリプトが上手く動いたのを確認したら、次はスクリプトを実行するスケジュールを設定します。スクリプトの一覧ページを表示し、「除外キーワードリスト更新」行の頻度列の「-(ハイフン)」をクリックします。
実行頻度や時間を設定して「保存」をクリックします。今回は終業後に除外キーワードリストが更新されることを想定し、毎日22:00-23:00に実行されるよう設定しました。
スクリプトには何が書いてあったの? サンプルコードの解説
今回実行したサンプルコードに何が書いてあったかについて解説します。
下記の3工程についてはこれまでのスクリプトで実行した内容と大きく変わりません。
- ①スプレッドシートの情報を取得
- ②スクリプトと連携するシート情報を取得
- ③除外キーワードリストのキーワード一覧を取得
- ④関数処理用の休止時間
スプレッドシートの「除外キーワード追加リスト」シートではD列で既存除外キーワードリストと重複判定を行っています。除外キーワードリスト内のキーワードの数が多いと関数の処理に時間がかかることがあるため、休止時間を設けています。
- ⑤除外キーワードの反映
- ⑥次回の重複判定のために除外キーワードリストのキーワードを再取得
「除外キーワード追加リスト」で既存除外キーワードリストの重複判定に使用するため、除外キーワードリストを再取得しています。スクリプト実行以降に「add」シートに今回追加した除外キーワードが表示されていないのはそのためです。
除外キーワードスクリプトが特に活躍するシーン
除外依頼を受けるメンバーと運用メンバーが異なる場合
多くの場合、掲載除外の依頼は問い合わせフォーム経由で届きます。このとき、問い合わせ対応を行うメンバーと運用担当者が別であるケースも少なくありません。その場合、問い合わせ対応メンバーがスプレッドシートに直接キーワードを入力できる仕組みを整えておくと、運用担当者が管理画面を開いて作業する手間を省けます。結果として、運用担当者の負担を軽減し、スムーズな対応を実現します。
Google 広告の管理画面で指定できない条件で除外したい場合
マッチタイプ以外の特定の条件でキーワードを除外したい場合、Google 広告の標準機能では対応しきれないことがあります。例えば、アルファベットのみで構成された検索語句を除外したい場合、スクリプトを活用すれば、検索語句レポートを自動取得し、スプレッドシート上で関数を使って該当する語句を抽出・除外することが可能です(検索語句の取得や関数の更新は別途必要)。
また、サービス名がアルファベットで構成されている場合は、誤って除外されないよう除外対象外リストを参照する仕組みを組み込むのも一つの手です。このようにスプレッドシートと関数を組み合わせることで、自社の運用方針に合わせた柔軟な除外設定を実現できます。
複数アカウントで広告を配信している場合
事業部やサービス単位で複数のGoogle 広告アカウントを運用している場合も、このスクリプトは有効です。ただし、Google 広告ではMCCアカウントで除外キーワードリストを作成し、子アカウントへ一括適用することも可能です。そのため、全体最適の観点からは、MCCアカウントで除外キーワードリストを作成し、そのリストをスクリプトで更新することが効率的と言えるでしょう。
まとめ
Google 広告スクリプトとスプレッドシートを組み合わせることで、広告運用の痒いところに手が届く仕組みを構築できます。スクリプトの力で自動化できるのは「作業」ですが、これを業務フローに組み込むためには、既存のプロセスを整理し、課題を明確にすることが欠かせません。今回は「スプレッドシート×スクリプト」という形で除外キーワード反映の自動化を紹介しましたが、応用すれば除外内容をSlackに通知するといった拡張も可能です。ぜひ自社の運用フローや課題に合わせてカスタマイズしてみてください。
今回ご紹介したスクリプトが、日々の運用現場での課題解決に少しでも貢献できれば幸いです。
