Kampagnenbudgets

Mit Budgets verwalten Sie die Ausgaben für Ihre AdWords-Kampagnen. In diesem Leitfaden erfahren Sie alles Wissenswerte zum Arbeiten mit Budgets in der AdWords API: gemeinsame Budgets sowie Budgets zuweisen, entfernen und Nachverfolgen der Leistung.

Gemeinsame Budgets

Ein Budget kann auf eine einzelne Kampagne angewendet oder von vielen Kampagnen gemeinsam genutzt werden.

Wenn Sie mit der AdWords API ein neues Budget erstellen, kann es standardmäßig gemeinsam genutzt werden. Sie können dies nachvollziehen, indem Sie über einen API-Aufruf von BudgetService den Wert für isExplicitlyShared abrufen:

  • isExplicitlyShared = true bedeutet, dass das Budget von mehreren Kampagnen genutzt werden kann.
  • isExplicitlyShared = false bedeutet, dass das Budget nur von einer einzigen Kampagne genutzt werden kann.

Explicitly shared budgets appear in an account's Shared Library in the AdWords user interface, whereas a non‒shared budget appears only within its associated campaign's Settings.

Budget einer Kampagne zuweisen

Um einer Kampagne ein Budget zuzuweisen, erstellen Sie zunächst mit BudgetService ein Budget-Objekt. Verwenden Sie anschließend seine Budget-ID in einem Aufruf von CampaignService. Wenn der Kampagnenvorgang fehlschlägt, der Budgetvorgang jedoch gelingt, wird ein "verwaistes" Budget erstellt, also ein Budget, das keiner Kampagne zugewiesen ist. Wir empfehlen Ihnen, solche Budgets wiederzuverwenden oder zu entfernen.

Neue Kampagne

Legen Sie bei neuen Kampagnen im ADD-Vorgang von CampaignService.mutate() das Attribut budget auf ein Budget-Objekt fest, dessen budgetId auf die ID eines Budgets festgelegt ist. Ein Beispiel für Java finden Sie unten. Im Beispiel wird ein gemeinsames Budget erstellt, da isExplicitlyShared den Standardwert true behält.

// Get the BudgetService.
BudgetServiceInterface budgetService =
    adWordsServices.get(session, BudgetServiceInterface.class);

// Create a budget, which can be shared by multiple campaigns.
Budget sharedBudget = new Budget();
sharedBudget.setName("Interplanetary Cruise #" + System.currentTimeMillis());
Money budgetAmount = new Money();
budgetAmount.setMicroAmount(50000000L);
sharedBudget.setAmount(budgetAmount);
sharedBudget.setDeliveryMethod(BudgetBudgetDeliveryMethod.STANDARD);
BudgetOperation budgetOperation = new BudgetOperation();
budgetOperation.setOperand(sharedBudget);
budgetOperation.setOperator(Operator.ADD);

// Execute the new budget operation and save the assigned budget ID.
Long budgetId =
    budgetService.mutate(new BudgetOperation[] {budgetOperation}).getValue(0).getBudgetId();
Campaign campaign = new Campaign();
campaign.setName("Interplanetary Cruise #" + System.currentTimeMillis());
// Recommendation: Set the campaign to PAUSED when creating it to stop
// the ads from immediately serving. Set to ENABLED once you've added
// targeting and the ads are ready to serve.
campaign.setStatus(CampaignStatus.PAUSED);
campaign.setAdvertisingChannelType(AdvertisingChannelType.SEARCH);

// Set the bidding strategy configuration.
BiddingStrategyConfiguration biddingStrategyConfiguration =
    new BiddingStrategyConfiguration();
biddingStrategyConfiguration.setBiddingStrategyType(BiddingStrategyType.MANUAL_CPC);
campaign.setBiddingStrategyConfiguration(biddingStrategyConfiguration);

// Only the budgetId should be set.
Budget budget = new Budget();
budget.setBudgetId(budgetId);
campaign.setBudget(budget);
CampaignServiceInterface campaignService =
    adWordsServices.get(session, CampaignServiceInterface.class);
CampaignOperation operation = new CampaignOperation();
operation.setOperand(campaign);
operation.setOperator(Operator.ADD);
CampaignOperation[] operations = new CampaignOperation[] {operation};
CampaignReturnValue result = campaignService.mutate(operations);

Budget einer Kampagne ersetzen

Verwenden Sie zum Ersetzen des Budgets einer bestehenden Kampagne einen SET-Vorgang von CampaignService.mutate(). Legen Sie das Attribut budget der Kampagne auf ein Budget-Objekt fest, dessen budgetId gleich der ID des bestehenden Budgets ist. Gleichzeitig können Sie noch andere Felder der Kampagne festlegen. Da einer Kampagne nur jeweils ein Budget zugewiesen sein kann, wird hierdurch das der Kampagne zugewiesene vorhandene Budget durch das in budgetId angegebene Budget ersetzt.

Einer Kampagne ein anderes Budget zuweisen

Einer Kampagne muss immer ein Budget zugewiesen sein. Sie können ein Budget aus einer Kampagne entfernen, indem Sie die ID des der Kampagne zugewiesenen Budgets ändern. Dadurch wird sie durch ein anderes Budget ersetzt. Informationen dazu, wie Sie Kampagnen identifizieren, die ein bestimmtes Budget nutzen, finden Sie unter Liste der Kampagnen mit einem bestimmten Budget abrufen.

Budget entfernen

Ähnlich wie Kampagnen können auch Budgets nicht vollständig gelöscht werden. Sie können lediglich ihren Status auf REMOVED festlegen. Stellen Sie zunächst sicher, dass das betreffende Budget von keiner Kampagne mit dem Status ENABLED oder PAUSED verwendet wird. Senden Sie als Nächstes eine REMOVE-Anfrage mit der ID des Budgets an BudgetService.mutate(). Wenn in der Antwort das Feld ReferenceCount größer als 0 ist, gibt es Kampagnen mit dem Status ENABLED oder PAUSED, von denen das Budget noch verwendet wird. Das Feld ReferenceCount eines Budgets kann als Feld ReferenceCount in einem BudgetService.get()-Vorgang oder als Feld BudgetReferenceCount in einem CampaignService.get()-Vorgang abgerufen werden.

// Retrieve a budget with budget ID of interest
Long budgetId =  Long.parseLong("INSERT_BUDGET_ID_HERE");
Selector selector = new SelectorBuilder()
    .fields(BudgetField.BudgetId, BudgetField.BudgetReferenceCount)
    .orderAscBy(BudgetField.BudgetId)
    .equals(BudgetField.BudgetId, budgetId.toString())
    .build();
// (Code Excluded) Get a Budget object from the result of BudgetService.get
// Remove the budget only if its referenceCount == 0 (no campaigns are using it)
if (budget.getReferenceCount() == 0) {
    BudgetServiceInterface budgetService =
        adWordsServices.get(session, BudgetServiceInterface.class);
    BudgetOperation operation = new BudgetOperation();
    operation.setOperand(budget);
    operation.setOperator(Operator.REMOVE);
    BudgetOperation[] operations = new BudgetOperation[] {operation};
    BudgetReturnValue result = budgetService.mutate(operations);
}

Sie können ein nicht gemeinsam genutztes Budget, das von einer einzelnen Kampagne genutzt wird, auch entfernen, indem Sie die betreffende Kampagne entfernen. Wenn Sie den Status einer solchen Kampagne auf REMOVED festlegen, wird auch der Status ihres nicht gemeinsam genutzten Budgets automatisch auf REMOVED festgelegt.

Liste der Kampagnen mit einem bestimmten Budget abrufen

Die Möglichkeit, eine Liste der Kampagnen abzurufen, die dasselbe Budget nutzen, kann beim Ausgleichen der Budgetnutzung hilfreich sein. Erstellen Sie einen CampaignService.get()-Vorgang, der mindestens das Feld Id zusammen mit einem Prädikat der BudgetId abruft, die der ID des gewünschten Budgets entspricht:

Long budgetId =  Long.parseLong("INSERT_BUDGET_ID_HERE");
Selector selector = new SelectorBuilder()
    .fields(CampaignField.Id, CampaignField.BudgetId)
    .orderAscBy(CampaignField.Id)
    .equals(CampaignField.BudgetId, budgetId.toString())
    .build();

Mit dieser AWQL-Anweisung erhalten Sie dasselbe Ergebnis:

SELECT BudgetId, BudgetName, Amount, IsBudgetExplicitlyShared,
       AssociatedCampaignId, Impressions
FROM BUDGET_PERFORMANCE_REPORT
WHERE BudgetId = <YOUR_BUDGET_ID>

Leistungsüberprüfung

Mit einem Leistungsbericht zu Budgets können Sie Statistiken zur Budgetleistung Ihrer Kampagnen abrufen. Er enthält alle Statistiken. Diese sind standardmäßig auf Budgetebene zusammengefasst. Pro Budget wird eine Zeile ausgegeben. Bei Verwendung von Segmentierungsfeldern können auch mehrere Zeilen pro Budget ausgegeben werden. Weitere Informationen erhalten Sie unter Segmentierung.

Beschränkungen

Jede Kampagne, für die Kampagnentests aktiviert sind, muss über ihr eigenes nicht gemeinsam genutztes Budget verfügen.

Häufige Fehler

Fehler Beschreibung
BudgetError.CANNOT_UPDATE_BUDGET_TO_IMPLICITLY_SHARED Weist darauf hin, dass Sie in einem SET-Vorgang den Wert isExplicitlyShared eines Budgets von true in false geändert haben. Sobald ein Budget explizit gemeinsam genutzt wird (isExplicitlyShared = true), können Sie isExplicitlyShared nicht wieder in false ändern.
EntityCountLimitExceeded.ACCOUNT_LIMIT Weist darauf hin, dass die maximale Anzahl an Budgets in einem Konto erreicht ist.
CampaignError.CAMPAIGN_CANNOT_USE_SHARED_BUDGET Die Kampagne, der Sie das Budget hinzufügen möchten, verwendet entweder Kampagnentests oder das Budget-Optimierungstool und das Budget wird bereits in einer anderen Kampagne genutzt.
BudgetError.CANNOT_EDIT_SHARED_BUDGET Sie haben versucht, das einer Kampagne zugewiesene Budget mit CampaignService zu ändern. Diese können nur mit BudgetService geändert werden.
BudgetError.BUDGET_IN_USE Sie haben versucht, ein Budget zu entfernen, das einer oder mehreren aktiven oder pausierten Kampagnen zugewiesen ist.

Feedback geben zu...