P-MAX のオプション コンポーネント

コンバージョン目標

P-MAX キャンペーンを作成すると、アカウントの CustomerConversionGoal と一致する一連のコンバージョン目標が自動的に作成されます。これらのキャンペーンは、P-MAX キャンペーンごとに更新することでカスタマイズできます。

そのためには、まずすべての顧客のコンバージョン目標のリストを取得する必要があります。

const searchResults = AdsApp.search(
  `SELECT
     customer_conversion_goal.category,
     customer_conversion_goal.origin
   FROM customer_conversion_goal`
);

得られたすべてのコンバージョン目標を反復処理し、現在の P-MAX キャンペーンの更新オペレーションを作成して、目標ごとにターゲティングをカスタマイズできます。以下のコードでは、これらすべてを入札対象に設定しますが、ロジックのこの部分は、キャンペーンで得たいことに合わせてカスタマイズする必要があります。

このコードを実行する前に、P-MAX キャンペーンのキャンペーン ID を取得する必要があります。

コンバージョン目標は、他のキャンペーン作成プロセスとは別のトランザクションで設定することをおすすめします。CampaignConversionGoalOperation では、リクエストの partialFailurefalse に設定する必要があります。最初にキャンペーンを作成したときと同じトランザクション内でこのコードを実行する場合は、部分的障害がオフになるように一連のオペレーション全体を設定する必要があります。このコード例は、別のトランザクションでこのオペレーションを実行する方法を示しています。

operations = [];
while (searchResults.hasNext()) {
  const row = searchResults.next();
  const conversionGoal = row.customerConversionGoal;

  operations.push({
    "campaignConversionGoalOperation": {
      "update": {
        "resourceName": `customers/${customerId}/campaignConversionGoals/${campaignId}~${conversionGoal.category}~${conversionGoal.origin}`,
        // Insert your logic here to determine whether you want this particular
        // campaign conversion goal to be biddable or not.
        // This code will just default everything to being biddable, but that
        // is not necessarily best for your use case.
        "biddable": true
      },
      "updateMask": "biddable"
    }
  });
}

AdsApp.mutateAll(operations, {partialFailure: false});

キャンペーンのターゲット設定

P-MAX のキャンペーン ターゲティングでは、使用できる条件タイプの一覧を API ガイドでご確認ください。

P-MAX キャンペーンを作成する際に追加の条件は必要ありませんが、条件を追加しておくと、ユースケースに基づいてターゲティングを制限できます。以下のサンプルコードは、対象地域をセットアップする方法を示しています。他の条件タイプの形式については、CampaignCriterion のドキュメントをご覧ください。

これらの条件は、mutateAll への同じ呼び出しの一部として、キャンペーン自体とともに作成できます。このコード例では、コードがこのように構成されていることを前提としています。

operations.push({
  "campaignCriterionOperation": {
    "create": {
      "campaign": campaignOperation.campaignOperation.create.resourceName,
      "negative": false,
      "location": {
        // 1023191 represents New York City
        "geoTargetConstant": "geoTargetConstants/1023191"
      }
    }
  }
});

アセット グループのシグナル

始める前に、API ドキュメントのアセット グループ シグナルをご覧ください。これらを設定するには、アセット グループを既存の AudienceInfo 条件または SearchThemeInfo 条件にリンクします。代わりにオーディエンスを使用する場合は、searchTheme フィールドの代わりに audience フィールドを指定して、オーディエンスのリソース名を指定します。

operations.push({
  "assetGroupSignalOperation": {
    "create": {
      "assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
      "searchTheme": {
        "text": "mars cruise"
      }
    }
  }
});