Conversion-Zielvorhaben
Wenn Sie eine Performance Max-Kampagne erstellen, werden automatisch eine Reihe von Conversion-Zielvorhaben erstellt, die den CustomerConversionGoal
im Konto entsprechen. Sie können diese aktualisieren, um sie speziell an jede Ihrer Performance Max-Kampagnen anzupassen.
Dazu müssen Sie zuerst die Kampagnen-ID Ihrer Performance Max-Kampagne(n) und eine Liste aller Kunden-Conversion-Zielvorhaben abrufen. Hier sehen Sie ein Beispiel für das Ändern der Ziele einer Kampagne. Sie können Ihren Code aber auch so einrichten, dass er mehrere Performance Max-Kampagnen durchläuft.
// Query for a campaign by name. Update this logic to pull the campaigns you'd
// like to edit
const campaignName = "My PMax campaign";
let campaignId = "";
const search = AdsApp.search(`SELECT campaign.id FROM campaign WHERE campaign.name = "${campaignName}"`);
if (search.hasNext()) {
campaignId = search.next().campaign.id;
console.log(`Updating conversion goals for ${campaignName}: ${campaignId}`);
}
else
{
console.log(`No campaign named "${campaignName}" found`);
// Perform further error handling here
}
// Query for a list of customer conversion goals
const searchResults = AdsApp.search(
`SELECT
customer_conversion_goal.category,
customer_conversion_goal.origin
FROM customer_conversion_goal`
);
Anschließend können Sie alle zurückgegebenen Conversion-Zielvorhaben durchlaufen und einen Aktualisierungsvorgang für die aktuelle Performance Max-Kampagne erstellen, um die Ausrichtung für jedes Zielvorhaben anzupassen. Im Codebeispiel weiter unten in diesem Abschnitt werden alle Ziele auf „Gebotsfähig“ festgelegt. Sie sollten diesen Teil der Logik jedoch an Ihre Kampagnenziele anpassen.
Wir empfehlen, Conversion-Zielvorhaben in einer separaten Transaktion einzurichten, die nicht Teil des restlichen Kampagnenerstellungsprozesses ist.
Für CampaignConversionGoalOperation
muss partialFailure
für die Anfrage auf false
gesetzt sein. Wenn Sie diesen Code in derselben Transaktion ausführen möchten, in der Sie die Kampagne erstellen, müssen Sie für alle Vorgänge die Option „Teilfehler“ deaktivieren. In diesem Beispielcode wird gezeigt, wie Sie diesen Vorgang in einer separaten Transaktion ausführen.
operations = [];
while (searchResults.hasNext()) {
const row = searchResults.next();
const conversionGoal = row.customerConversionGoal;
operations.push({
"campaignConversionGoalOperation": {
"update": {
"resourceName": `customers/${customerId}/campaignConversionGoals/${campaignId}~${conversionGoal.category}~${conversionGoal.origin}`,
// Insert your logic here to determine whether you want this particular
// campaign conversion goal to be biddable or not.
// This code will just default everything to being biddable, but that
// is not necessarily best for your use case.
"biddable": true
},
"updateMask": "biddable"
}
});
}
AdsApp.mutateAll(operations, {partialFailure: false});
Kampagnen-Targeting
Eine vollständige Liste der zulässigen Kriterientypen für die Kampagnenausrichtung in Performance Max-Kampagnen finden Sie im API-Leitfaden.
Für eine Performance Max-Kampagne sind keine zusätzlichen Kriterien erforderlich. Sie können jedoch nützlich sein, um die Ausrichtung basierend auf Ihrem Anwendungsfall einzuschränken. Das nächste Codebeispiel zeigt, wie Sie ein geografisches Ziel einrichten. Das Format für andere Kriterientypen finden Sie in der Dokumentation zu CampaignCriterion
.
Sie können diese Kriterien zusammen mit der Kampagne selbst im Rahmen desselben Aufrufs von mutateAll
erstellen. In diesem Codebeispiel wird davon ausgegangen, dass Sie Ihren Code so strukturieren.
operations.push({
"campaignCriterionOperation": {
"create": {
"campaign": campaignOperation.campaignOperation.create.resourceName,
"negative": false,
"location": {
// 1023191 represents New York City
"geoTargetConstant": "geoTargetConstants/1023191"
}
}
}
});
Signale für Asset-Gruppen
Lesen Sie vorab die API-Dokumentation zu Signalen für Asset-Gruppen. Sie werden eingerichtet, indem Sie eine Asset-Gruppe entweder mit einem vorhandenen AudienceInfo
- oder SearchThemeInfo
-Kriterium verknüpfen. Wenn Sie stattdessen eine Zielgruppe verwenden möchten, geben Sie das Feld audience
anstelle des Felds searchTheme
mit dem Ressourcennamen der Zielgruppe an.
operations.push({
"assetGroupSignalOperation": {
"create": {
"assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
"searchTheme": {
"text": "mars cruise"
}
}
}
});