Performance Max-Kampagnen mit AdsApp

Mit Google Ads-Skripts können Sie einen Teil der Verwaltung Ihrer Performance Max-Kampagnen verwalten. Sie können Skripts verwenden, um Performance Max-Kampagnen abzurufen, Asset-Gruppen zu verwalten und Berichte zu erstellen. Es ist jedoch nicht möglich, Skripts zum Erstellen von Performance Max-Kampagnen zu verwenden. Wenn Sie erweiterte Vorgänge ausführen möchten, lesen Sie den Rest dieses Leitfadens, in dem ein allgemeinerer Ansatz mit mutate erläutert wird.

Performance Max-Kampagnen abrufen

Performance Max-Kampagnen sind über die Sammlung performanceMaxCampaigns eines AdsApp-Objekts verfügbar. 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 gibt es bei Performance Max-Kampagnen keine sichtbaren Anzeigengruppen oder Anzeigenobjekte. Alles, was mit diesen Konzepten für andere Kampagnen zu tun hat, wird automatisch anhand der von Ihnen festgelegten Asset-Gruppen ausgeführt.

Assets und Asset-Gruppen

Anzeigen aus Performance Max-Kampagnen werden über Assets wie Videos, Bilder, Anzeigentitel und Textzeilen verwendet, die entweder von Ihnen bereitgestellt oder automatisch generiert wurden. Eine vollständige Übersicht darüber, welche Arten von Assets erforderlich sind, finden Sie im Asset-Leitfaden für Performance Max-Kampagnen der Google Ads API.

Assets für Performance Max-Kampagnen werden in einer Asset-Gruppe zusammengefasst und jede Performance Max-Kampagne muss mindestens eine Asset-Gruppe haben. Sie können diese Asset-Gruppen nicht direkt in Skripts erstellen. Sie haben aber die Möglichkeit, Assets einer vorhandenen Asset-Gruppe hinzuzufügen oder daraus 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, wie Sie den Asset-Typ im letzten Schritt angeben müssen. Eine vollständige Liste der Asset-Typen finden Sie 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();

Verwende dann einen withCondition-Filter, um die Auswahl auf die Assets einzugrenzen, die du verwenden möchtest. Eine vollständige Liste der Filteroptionen finden Sie in der Referenzdokumentation zu AssetSelector.

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

Text-Assets funktionieren etwas anders, da sie nicht im Voraus erstellt werden müssen. Sie geben einfach den Text anstelle eines Assets an und das System erstellt das Asset automatisch für Sie. Wenn der Text ein exaktes Duplikat eines vorhandenen Text-Assets ist, wird das vorhandene Asset wiederverwendet.

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, dass Sie eine Mindestanzahl bestimmter Arten von Assets haben müssen, damit die Kampagne gültig ist.

So entfernen Sie das Asset, das im vorherigen Beispiel hinzugefügt wurde:

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

Mit der Funktion 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önnen auch andere Felder wie asset.type oder asset.text_asset.text auswählen, um die Ergebnisse weiter einzugrenzen. Verwenden Sie den Query Builder für diesen Berichtstyp, um eine eigene Abfrage zu erstellen.

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

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