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"
      }
    }
  }
});