Mit Google Ads-Scripts können Sie Ihre Performance Max-Kampagnen verwalten. Mit Scripts können Sie Performance Max-Kampagnen abrufen, Asset-Gruppen verwalten und Berichte erstellen. Sie können damit jedoch keine Performance Max-Kampagnen erstellen. Wenn Sie erweiterte Vorgänge ausführen möchten, lesen Sie den Rest dieses Leitfadens. Dort wird ein allgemeiner Ansatz mit mutate
veranschaulicht.
Abrufen von Performance Max-Kampagnen
Performance Max-Kampagnen sind über die performanceMaxCampaigns
-Erfassung 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. Alle zu diesen Konzepten gehörenden Aufgaben für andere Kampagnen werden automatisch anhand der von Ihnen festgelegten Asset-Gruppen ausgeführt.
Assets und Asset-Gruppen
Anzeigen in Performance Max-Kampagnen basieren auf Assets wie Videos, Bildern, Anzeigentiteln und Textzeilen, die entweder von Ihnen bereitgestellt oder automatisch generiert werden. Eine vollständige Übersicht über die erforderlichen Asset-Typen finden Sie im Leitfaden zu Performance Max-Assets in der Google Ads API.
Assets für Performance Max-Kampagnen werden in einer Asset-Gruppe zusammengefasst. Jede Performance Max-Kampagne muss mindestens eine Asset-Gruppe haben. Sie können diese Asset-Gruppen nicht direkt in Scripts erstellen, aber Assets zu einer vorhandenen Asset-Gruppe hinzufügen und daraus 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 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');
Im letzten Schritt müssen Sie den Asset-Typ angeben. Eine vollständige Liste der Asset-Typen finden Sie in der Google Ads API-Dokumentation.
Wenn Sie ein vorhandenes Asset verwenden möchten, erstellen Sie zuerst eine Asset-Auswahl:
const assetSelector = AdsApp.adAssets().assets();
Verwenden Sie dann einen withCondition
-Filter, um die Assets einzugrenzen, auf die Sie Änderungen vornehmen möchten. Eine vollständige Liste der Filteroptionen finden Sie in der Referenzdokumentation zu AssetSelector
.
Rufen Sie abschließend 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 das Asset nicht im Voraus erstellen müssen. Sie geben einfach den Text anstelle eines Assets an und das System erstellt das Asset automatisch für Sie. Wenn der Text genau mit einem vorhandenen Text-Asset übereinstimmt, wird stattdessen 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 auch ein Asset aus einer Asset-Gruppe entfernen. Beachten Sie jedoch, dass Sie eine Mindestanzahl bestimmter Asset-Typen benötigen, damit die Kampagne gültig ist.
So entfernen Sie das im vorherigen Beispiel hinzugefügte Asset:
assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');
Mit der Funktion search
kannst du 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.
Rufe dann remove
auf die Asset-Gruppe auf, um das Asset daraus 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);