P-MAX のレポートと同様に、GoogleAdsService.SearchStream
を使用してキャンペーンとアセット グループのメタデータを取得し、キャンペーンを最適化したり、一般的な問題のトラブルシューティングを行ったりできます。
Campaign optimization
P-MAX キャンペーンで達成できるさまざまなビジネス目標については、P-MAX の最適化に関するヒントをご覧ください。これらのヒントは、Google 広告 API で作成された P-MAX キャンペーンにも同様に適用されます。
キャンペーンのトラブルシューティング
P-MAX キャンペーンで想定した成果が得られない場合、広告、入札、ターゲティング、コンバージョン トラッキング、キャンペーン設定のいずれかに問題がある可能性があります。トラブルシューティングの手順については、以下のガイドをご覧ください。
アセット グループに関する一般的なエラー
AssetGroup
の作成リクエストが AssetGroupError
と NOT_ENOUGH
で始まる列挙型値(AssetGroupError.NOT_ENOUGH_MARKETING_IMAGE_ASSET
など)で失敗した場合、AssetGroup
がアセットの最小要件を満たしていないため作成されませんでした。
たとえば、AssetGroupError.NOT_ENOUGH_MARKETING_IMAGE_ASSET
エラーは、AssetGroup
の作成リクエストが、最小数の MARKETING_IMAGES
(この場合は 1 つ)なしで送信されたことを示します。このエラーを修正するには、アセット グループをアセットにリンクするで説明されているように、asset_group_operation
と不足している asset_group_asset_operations
を含む GoogleAdsService.mutate
メソッドを使用して、AssetGroup
を一括変更リクエストとして作成するリクエストを再送信します。
この例では、一括変更リクエストの変更オペレーションのリストに、field_type
が MARKETING_IMAGE
の AssetGroupAsset
が 1 つ以上含まれている必要があります。AssetGroupAsset
によって参照されるアセットは、MARKETING_IMAGE
の仕様も満たしている必要があります。
同様に、AssetGroup
の作成リクエストが AssetGroupError.SHORT_DESCRIPTION_REQUIRED
で失敗した場合は、AssetGroup
に 60 文字以下の TEXT
アセットと field_type
が DESCRIPTION
で指定されていないことを意味します。この問題を解決する手順は、NOT_ENOUGH_MARKETING_IMAGE_ASSET
の例と同じです。ただし、リクエストには field_type
が DESCRIPTION
の AssetGroupAsset
が 1 つ以上含まれている必要があり、AssetGroupAsset
が参照するアセットは 60 文字以下にする必要があります。
アセット グループのトラブルシューティング
asset_group.primary_status
フィールドと asset_group.primary_status_reasons
フィールドを使用すると、アセット グループのパフォーマンスに関する分析情報を確認できます。
SELECT
asset_group.resource_name,
asset_group.primary_status,
asset_group.primary_status_reasons
FROM asset_group
WHERE asset_group.resource_name = "customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID"
同様に、asset_group_asset.primary_status
、asset_group_asset.primary_status_details
、asset_group_asset.primary_status_reasons
フィールドを使用して、アセット グループ アセットが配信されているかどうか、配信されていない理由を確認できます。
SELECT
asset_group_asset.resource_name,
asset_group_asset.primary_status,
asset_group_asset.primary_status_reasons,
asset_group_asset.primary_status_details
FROM asset_group_asset
WHERE asset_group_asset.resource_name = "customers/CUSTOMER/assetGroupAssets/ASSET_GROUP_ID~ASSET_ID~FIELD_TYPE"
ブランド ガイドラインが有効になっているキャンペーン
ブランド ガイドラインを使用すると、P-MAX キャンペーンでブランドがどのように表示されるかを管理できます。Campaign.brand_guidelines_enabled
を使用すると、キャンペーンでブランド ガイドラインが有効になっていることを確認できます。
Campaign.brand_guidelines_enabled
が true
に設定された P-MAX キャンペーンでは、キャンペーン単位のブランドアセット(BUSINESS_NAME
、LOGO
、LANDSCAPE_LOGO
)が使用され、次の条件を満たしている必要があります。
BUSINESS_NAME
アセットが 1 つだけLOGO
アセットを 1 つ以上
これらの CampaignAsset
リソースを正しくリンクしないと、不足しているアセットタイプに応じて、CampaignError.REQUIRED_BUSINESS_NAME_ASSET_NOT_LINKED
または CampaignError.REQUIRED_LOGO_ASSET_NOT_LINKED
のエラーが発生します。これらのエラーは、ブランド ガイドラインが有効になっているキャンペーンで、次のいずれかのアクションによってトリガーされる可能性があります。
- 同じリクエストで
CampaignAsset
リソースとしてBUSINESS_NAME
とLOGO
の両方を指定せずに、新しいCampaign
を作成します。 - 1 つ以上の
CampaignAsset
リソースを削除すると、キャンペーンがブランドアセットの最小要件を満たさなくなる。 - 同じリクエストで必要なすべての
CampaignAsset
リソースを提供せずに、以前に作成した商品フィードを使用してオンライン販売を促進するアセットレスの P-MAX キャンペーンにアセット グループ レベルのアセットを追加する。
ブランド アセットを間違ったレベルでリンクしようとすると、エラーが発生します。このエラーは、次の方法で修正できます。
AssetLinkError.BRAND_ASSETS_NOT_LINKED_AT_CAMPAIGN_LEVEL
- キャンペーンでブランド ガイドラインが有効になっているため、CampaignAsset
リソースを使用してブランド アセットをリンクします。AssetLinkError.BRAND_ASSETS_NOT_LINKED_AT_ASSET_GROUP_LEVEL
- キャンペーンでブランド ガイドラインが有効になっていないため、AssetGroupAsset
リソースを使用してブランドアセットをリンクします。
アセットのソース
P-MAX は、広告主様がアップロードしたアセットと Google が自動生成したアセットを含む広告を配信するという点で独自のものです。広告主様は、アセットのソースを把握してトラブルシューティングやパフォーマンスの評価を行うと役に立ちます。その場合は、次のように asset_group_asset.source
フィールドを使用できます。
SELECT
asset.id,
asset.name,
asset_group.id,
asset_group_asset.source
FROM asset_group_asset
WHERE campaign.id = CAMPAIGN_ID
新規顧客の獲得を目的とするコンバージョン目標のコンバージョン値
P-MAX キャンペーンまたは検索キャンペーンで新規顧客の獲得を設定している場合、レポートに表示されるコンバージョン値は、手動でアップロードしたコンバージョン値よりも高くなることがあります。[新規顧客値モード(入札単価を高くする)] を選択した場合、すべての新規顧客のライフタイム バリューがコンバージョン アクションのコンバージョン値に追加されます。すべての新しい顧客のライフタイム バリューは、Google 広告のウェブ インターフェースでのみ確認できます。
すべての新規顧客のライフタイム バリューを除外してコンバージョン値を計算する必要がある場合は、次の疑似コードを参照してください。新規顧客のライフタイム バリューは、Google 広告のウェブ管理画面からダウンロードできます。
nonNewCustomerAcquisitionConversionValueTotal = 0;
// For each campaign that has that conversion...
for (campaign in campaigns) {
// If the new customer acquisition value is 'Bid higher', then subtract.
if (bidHigher == true) {
nonNewCustomerAcquisitionConversionValueTotal +=
campaign.allConversionsValue - campaign.allNewCustomerLifetimeValue;
}
// If the new customer acquisition value is 'Only bid' or not set, then don't subtract.
else {
nonNewCustomerAcquisitionConversionValueTotal += campaign.allConversionsValue;
}
}