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

コンバージョン目標

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

そのためには、まず P-MAX キャンペーンのキャンペーン ID と、すべての顧客コンバージョン目標のリストを取得する必要があります。以下は、1 つのキャンペーンの目標を変更する例です。複数の P-MAX キャンペーンをループ処理するようにコードを設定することもできます。

// Query for a campaign by name. Update this logic to pull the campaigns you'd
// like to edit
const campaignName = "My PMax campaign";
let campaignId = "";

const search = AdsApp.search(`SELECT campaign.id FROM campaign WHERE campaign.name = "${campaignName}"`);
if (search.hasNext()) {
  campaignId = search.next().campaign.id;
  console.log(`Updating conversion goals for ${campaignName}: ${campaignId}`);
}
else
{
  console.log(`No campaign named "${campaignName}" found`);
  // Perform further error handling here
}

// Query for a list of customer conversion goals
const searchResults = AdsApp.search(
  `SELECT
     customer_conversion_goal.category,
     customer_conversion_goal.origin
   FROM customer_conversion_goal`
);

次に、取得したすべてのコンバージョン目標を反復処理し、現在の P-MAX キャンペーンの更新オペレーションを作成して、各目標のターゲティングをカスタマイズします。このセクションの後半で示すコード例では、すべての目標を入札可能に設定していますが、キャンペーンで達成したい目標に合わせて、ロジックのその部分をカスタマイズする必要があります。

コンバージョン目標は、キャンペーン作成プロセスの他の部分とは別のトランザクションで設定することをおすすめします。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"
      }
    }
  }
});