Performance Max-Kampagnen mit AdsApp

Google Ads-Skripts bieten einige Möglichkeiten zur Verwaltung Ihrer Performance Max-Kampagnen Kampagnen. Sie können Performance Max-Kampagnen abrufen, Asset-Gruppen verwalten und Berichte Performance Max-Kampagnen lassen sich jedoch nicht mit Skripts erstellen. Bis erfahren Sie im weiteren Verlauf dieses Leitfadens. zeigt einen allgemeineren Ansatz mit mutate.

Performance Max-Kampagnen abrufen

Performance Max-Kampagnen sind über das performanceMaxCampaigns Sammlung von AdsApp -Objekt enthält. Sie können sie wie gewohnt abrufen:

const campaignName = "My Performance Max campaign";

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

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

Im Gegensatz zu anderen Kampagnentypen haben Performance Max-Kampagnen Gruppen oder Anzeigenobjekte, die Sie sehen können; alles im Zusammenhang mit diesen Konzepten andere Kampagnen automatisch anhand der Asset-Gruppen, festgelegt.

Assets und Asset-Gruppen

Anzeigen aus Performance Max-Kampagnen haben folgende Leistung: Assets wie Videos, Bilder, Anzeigentitel und Textzeilen, die Sie oder automatisch generiert wird. Einen Überblick über die Arten von Assets erforderlich, siehe Asset „Performance Max“ in der Google Ads API .

Assets für Performance Max-Kampagnen sind in einer Asset-Gruppe zusammengefasst. Außerdem muss jede Performance Max-Kampagne mindestens eine Asset-Gruppe haben. Ich Diese Asset-Gruppen können nicht direkt in Skripts erstellt werden. Sie können aber um Assets aus einer Asset-Gruppe zu entfernen.

Asset zur Asset-Gruppe hinzufügen

Erstellen Sie zuerst das Asset:

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();

Fügen Sie das soeben erstellte Asset dann einer vorhandenen Asset-Gruppe hinzu:

// 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');

Beachten Sie, dass Sie den Asset-Typ im letzten Schritt angeben müssen. Weitere Informationen vollständige Liste der Asset-Typen in der Google Ads API Dokumentation

Wenn Sie ein vorhandenes Asset verwenden möchten, müssen Sie zuerst eine Asset-Auswahl erstellen:

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

Verwenden Sie dann einen withCondition-Filter, um die gewünschten Assets zu sehen. die Sie ausführen können. Weitere Informationen finden Sie in der AssetSelector in der Referenzdokumentation finden Sie eine vollständige Liste der Filteroptionen.

Rufen Sie schließlich den Iterator ab und iterieren Sie wie bei anderen Entitäten:

const assetIterator = assetSelector.get();

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

Text-Assets

Die Funktionsweise von Text-Assets unterscheidet sich etwas, da sie nicht im Voraus. Sie geben statt eines Assets nur den Text an und das System wählt automatisch das Asset für Sie erstellen. Wenn der Text ein Duplikat eines vorhandenen Text-Assets verwenden, wird stattdessen das vorhandene Asset verwendet.

So erstellen Sie beispielsweise ein Anzeigentitel-Asset:

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

Asset aus Asset-Gruppe entfernen

Sie können ein Asset auch aus einer Asset-Gruppe entfernen. Denken Sie jedoch daran, müssen Sie eine Mindestanzahl an bestimmten Arten von Assets damit die Kampagne gültig ist.

So entfernen Sie das Asset aus dem vorherigen Beispiel:

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

Mit dem search können Sie auch eine Liste der Assets in einer bestimmten Asset-Gruppe abrufen. :

// 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}'`
);

Dadurch wird der Ressourcenname des Assets als eindeutige Kennung ausgewählt. Sie könnten können Sie auch andere Felder auswählen, z. B. asset.type oder asset.text_asset.text, die Ergebnisse weiter zu verfeinern. Query Builder für diesen Bericht verwenden zum Erstellen von Text Ihre eigene Abfrage.

Sobald Sie das Ziel-Asset haben, rufen Sie remove für die Asset-Gruppe auf, um die Asset aus der Asset-Gruppe:

// 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);