AdsApp を使用した P-MAX キャンペーン

Google 広告スクリプトを使用して、P-MAX キャンペーンと キャンペーンをご覧ください。次を使用: P-MAX キャンペーンの取得、アセット グループの管理、 レポートただし、スクリプトを使用して P-MAX キャンペーンを作成することはできません。宛先 高度なオペレーションを実行する方法については、このガイドの残りの部分をご覧ください。 これは、mutate を使用したより一般的なアプローチを示しています。

P-MAX キャンペーンの取得

P-MAX キャンペーンは performanceMaxCampaigns AdsApp のコレクション 渡されます。これらは通常どおり取得できます。

const campaignName = "My Performance Max campaign";

const campaignIterator = AdsApp.performanceMaxCampaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get();

for (const campaign of campaignIterator) {
  ...
}

他のキャンペーン タイプとは異なり、P-MAX キャンペーンには広告がありません 広告グループや広告オブジェクトも表示されています関連するすべてのコンセプトを 他のキャンペーンは、ご指定のアセット グループに基づいて あります。

アセットとアセット グループ

P-MAX キャンペーンの広告の掲載先 アセット: 動画や 広告主様自身が提供することも、 自動的に生成されます。アセットの種類の概要については、 詳しくは、Google Ads API: P-MAX アセットと ガイドをご覧ください。

P-MAX キャンペーンのアセットは、アセット グループにまとめられます。 各 P-MAX キャンペーンには少なくとも 1 つのアセット グループが必要です。マイページ スクリプトでこれらのアセット グループを直接作成することはできませんが、 既存のアセット グループからアセットを削除する。

アセット グループにアセットを追加

まず、アセットを作成します。

const imageUrl = "http://www.example.com/example.png";
const imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
const assetOperation = AdsApp.adAssets().newImageAssetBuilder()
   .withName("new asset name")
   .withData(imageBlob)
   .build();
const imageAsset = assetOperation.getResult();

次に、作成したアセットを使って既存のアセット グループに追加します。

// First, fetch the Performance Max campaign we want to operate on.
const campaignIterator = AdsApp.performanceMaxCampaigns()
   .withCondition(`campaign.name = '${campaignName}'`)
   .get();
let campaign;
if (campaignIterator.hasNext()) {
   campaign = campaignIterator.next();
} else {
   throw `No campaign found with name ${campaignName}.`
}

// Then, get that campaign's asset groups.
const assetGroupIterator = campaign.assetGroups().get();

// The campaign must have at least one asset group, so we can just assume so here.
const assetGroup = assetGroupIterator.next();

// Add the asset from the previous step.
assetGroup.addAsset(imageAsset, 'MARKETING_IMAGE');

最後のステップでアセットタイプを指定する必要があることに留意してください。詳しくは、 Google Ads API: アセットタイプの一覧 ドキュメント

既存のアセットを使用するには、まずアセット セレクタを作成します。

const assetSelector = AdsApp.adAssets().assets();

次に、withCondition フィルタを使用して、目的のアセットに絞り込みます。 あります。詳しくは、 AssetSelector フィルタ オプションの完全なリストをご覧ください。

最後に、イテレータをフェッチし、他のエンティティと同様に反復処理します。

const assetIterator = assetSelector.get();

for (const asset of assetIterator) {
   ...
}

テキスト アセット

テキスト アセットの動作は、テキスト アセットを使用する必要がないという点で、少し異なります。 できます。アセットの代わりにテキストを指定するだけで、 アセットが自動的に作成されます。テキストが元の画像と完全に 既存のテキスト アセットがある場合、そのアセットが代わりに再利用されます。

たとえば、広告見出しアセットを作成する方法は次のとおりです。

assetGroup.addAsset('asset text here', 'HEADLINE');

アセット グループからアセットを削除

また、アセット グループからアセットを削除することもできます。ただし、 一定数以上の特定の種類のリソースと アセット 2 つの方法があります

前の例で追加したアセットを削除する方法は以下のとおりです。

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

search で、特定のアセット グループのアセットのリストを取得することもできます。 関数:

// The resource name is a unique identifier for this asset group.
const assetGroupName = assetGroup.getResourceName();
results = AdsApp.search(
   `SELECT asset.resource_name, asset_group_asset.field_type
    FROM asset_group_asset
    WHERE asset_group.resource_name = '${assetGroupName}'`
);

これにより、アセットのリソース名が一意の識別子として選択されます。方法 asset.typeasset.text_asset.text などのフィールドも選択し、 結果をさらに絞り込むことができますこのレポートのクエリビルダーを使用する クラフト 独自のクエリを作成できます

ターゲット アセットを取得したら、アセット グループで remove を呼び出して、 次のアセットを使用します。

// Let's assume at least one asset is returned. We'll just remove the first
// asset, whatever it is. In your code, customize this to choose the right asset.
const row_info = results.next().asset;
assetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);