ECサイトの広告運用で使われることが多いGoogle P-MAXキャンペーン。YouTube、ディスプレイ、検索、Discover、Gmail、マップのGoogle 広告を1つのキャンペーンから配信することができる上、機械学習を利用して効率的に、かつ効果的に配信できる便利なキャンペーンです。

しかし、実際に運用してみると、思ったように効果が出ないことがあったり、ブラックボックスな部分が多いため、運用に手を加えて広告効果を改善していくことがやりにくい側面もあります。

この記事では、通称“Zombie SKU”キャンペーンという、Google P-MAXキャンペーンに手を加え、フィードを活用して広告効果を改善するための施策を紹介します。

Google P-MAXキャンペーンのメリット・デメリット

冒頭でも記載した通り、P-MAXキャンペーンは、簡単な設定のみで自動的に広告効果を最大化してくれる、広告運用に欠かすことのできないメニューです。

そのメリットは、1つのキャンペーンから複数の広告面に配信することができ、かつ、機械学習によって自動的に最適な配信をしてくれることです。

しかし、P-MAXキャンペーンの機械学習も完璧ではありません。ただ単純にGoogle P-MAXキャンペーンを配信しているだけでは、広告効果の最大化に繋がらないことがあります。

問題となるのは、”特定の商品”が過小評価される可能性があることです。

Google P-MAXキャンペーンはCPAやROASを高くなるように配信する設計になっているため、パフォーマンスが良い(CPAが低い・ROASが高い)商品が見つかると、その商品へ露出が偏る傾向があります。

結果として、配信初期段階で表示機会が与えられなかった商品は、その後も表示機会を得られず、”Zombie SKU”となってしまうことがあるのです。

“Zombie SKU”キャンペーン施策とは

“Zombie SKU”キャンペーン施策は、広告表示の機会が得られていない”Zombie SKU”から、パフォーマンスの良い商品を見つける施策です。

広告配信で露出を増やせば売上に繋がる商品が、広告で表示されないことは機会損失に繋がります。

そんな機会損失を防ぐこと、また、売上に繋がる商品を露出することで、さらに売上を伸ばして広告効果を最大化させる施策が”Zombie SKU”キャンペーンです。

やり方・手順

では、どのようにすれば”Zombie SKU”キャンペーンを実行できるのでしょうか?

手順は大まかに4ステップです。

  • 手順1. 対象商品(Zombie SKU)の抽出
  • 手順2. 手順1で抽出した商品のフィードを作成
  • 手順3. カスタムラベルにラベル付け
  • 手順4. P-MAXキャンペーンに設定

それぞれ細かく見ていきましょう。

手順1. 対象商品(Zombie SKU)の抽出

まずは対象とする商品の条件を決定します。
※後ほど変更・調整することも可能なため、いったん仮で決めてください。

たとえば、「過去365日で表示回数が10件以下の商品」などです。

次に、先ほど決めた条件で商品を抽出するスクリプトを記述します。スクリプトはGoogle管理画面上の「一括操作」タブ内の「スクリプト」から作成できます。

スクリプトを記述する前の準備として、新規のスプレッドシートを作成し、次の対応をしてください。

  • A1セルに「id」と入力
  • シート名を「Custom_Label」に変更
  • スプレッドシートの共有権限を「リンクを知っている全員」が編集者に変更

※スプレッドシート名はなんでも構いませんが、ここでは「Zombie SKU」としています。

以下のスクリプトのURL部分(「●●」部分)を修正の上、スクリプトを作成してください。

// 作成したスプレッドシートのURLを記載
var SPREADSHEET_URL = "●●";

// 抽出条件を記載。デフォルトでは過去365日で表示回数が10件未満の条件
var FILTERS = "Impressions < 10";
var today = new Date();
var lastYear = new Date(today);
lastYear.setDate(today.getDate() - 365);
function formatDate(date) {
  var yyyy = date.getFullYear();
  var mm = date.getMonth() + 1;
  var dd = date.getDate();
  var mm = mm < 10 ? '0' + mm : mm;
  var dd = dd < 10 ? '0' + dd : dd;
  return '' + yyyy + mm + dd;
}
var TIME_DURATION = formatDate(lastYear) + "," + formatDate(today);
var COUNT_LIMIT = 999999;


function main(){

  var products = getFilteredShoppingProducts();
  products.sort(function(a,b){return a[0] > b[0];});
  products = products.slice(0, COUNT_LIMIT);
  pushToSpreadsheet(products);
  
}

function getFilteredShoppingProducts() {
  var query =
    "SELECT OfferId FROM SHOPPING_PERFORMANCE_REPORT WHERE " +
    FILTERS +
    " DURING " +
    TIME_DURATION;

  var products = [];
  var count = 0;
  var report = AdWordsApp.report(query);
  var rows = report.rows();
  while (rows.hasNext()) {
    var row = rows.next();
    var offer_id = row['OfferId'].toString().toUpperCase();

    if (offer_id !== '--') {
      products.push([offer_id]);
      count += 1;
    }    
    
  }
  Logger.log(count);
  return products;
}

function pushToSpreadsheet(data) {
  var spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  var sheet = spreadsheet.getSheetByName('Custom_Label');
  var lastRow = sheet.getMaxRows();
  sheet.getRange('A2:A' + lastRow).clearContent();
  var start_row = 2;
  var endRow = start_row + data.length - 1;
  var range = sheet.getRange('A' + start_row + ':' + 'A' + endRow);
  if (data.length > 0) {
    range.setValues(data);
  }
  return;
}

スクリプトを実行するとスプレッドシートに商品IDが出力されます。抽出された商品数を確認して、少なすぎるまたは多すぎる場合は、意図通りの商品数になるように条件を修正してみてください。

条件を変更する際は、スクリプト内の”抽出条件”部分を修正してください。
※プログラミングの知識がなくても、調べながら変更できる程度の修正かと思います。

スクリプトに問題がないことが確認できたら、スクリプトが毎日自動で更新されるように実行頻度の設定をしてください。

トラブルシューティング:

  • スプレッドシートに出力された商品IDが、マーチャントセンターの商品IDと完全一致しているか確認してください。小文字、大文字の違いがあるとこの後の手順でエラーが発生する可能性があります。
  • スクリプトを最初に実行した際に、権限を要求される場合があります。その場合は、許可してください。

手順2. Google マーチャントセンターに補足フィードを作成

手順1で作成した商品ID一覧をGoogle マーチャントセンターにアップします。

マーチャントセンターを開き、「Products」>「Feeds」>「Add supplemental feed」と押します。

「Google Sheets」項目から、先ほど作成したスプレッドシートをマーチャントセンターの案内通りに登録します。

手順3. カスタムラベルにラベル付け

手順2で作成した補足フィードをメインのフィード(「Primary feeds」)と連携します。

メインフィードを選択後、「Feed rules」に移動し、プラスボタンから任意の(現在使用していない)”custom label”を選択します。

「Add source」からフィードルールを設定します。設定方法は以下の赤枠部分を参考にしてください。

フィードルールの設定により、スプレッドシートに抽出されている商品の「custom label 0」に”No Impressions Last 365 Days”が入ります。

その後、「Save as draft」 > 「Apply」と押し、フィードルールを反映します。さらに「Processing」タグに移動し、「Re-process feed」を押し、フィードを更新します。

ここまで対応できたら、「All products」タブに移動し、実際にうまく設定できているか確認しましょう。該当のcustom labelに指定の値が入っていれば成功です。

手順4. P-MAXキャンペーンに設定

最後に、Google P-MAXキャンペーンで配信するための設定をします。

今回、”Zombie SKU”の配信を強化するという目的があるため、新規でP-MAXキャンペーンを作成します。

新規で作成したGoogle P-MAXキャンペーンにフィードを紐づけた上で、リスティンググループの編集画面から該当のcustom labelを選択し、「no impressions last 365 days」を選択します。

こうすることで、該当のリスティンググループ・アセットグループでは”Zombie SKU”に限定して広告配信できます。

最後に、配信強化したい金額に合わせてキャンペーンの日予算、入札戦略の目標値を設定します。

これまで表示されてこなかった実績のない商品のため、目標CPA・目標ROASを設定する際は、通常のP-MAXキャンペーンよりも少し余裕を持たせる値(目標CPAであれば高い数値、目標ROASであれば低い数値)にするのが良いと思います。

まとめ

Google P-MAXキャンペーンはブラックボックスの部分が多く、分析・運用調整する余地が他キャンペーンと比較すると少ないですが、一工夫加えることで広告効果を最大化できます。

また、今回紹介した”Zombie SKU”とは逆に、「CV獲得が好調な商品を抽出し、その商品の配信をさらに強化して売上の最大化を狙う」といったアレンジも加えることもできます。

フィードを活用したGoogle P-MAXキャンペーンの施策として少しでも参考になりましたら幸いです。

お気軽にご質問、ご相談ください

大出晃輔

慶應義塾大学法学部卒。広告コンサルタント。GAIQ、Google広告認定資格所持。

関連ブログ