Kampagnenbudgetzuweisung

Sie können einer Kampagne ein Budget zuweisen, ein Budget von einer Kampagne trennen oder die Kampagnen abrufen, die einem bestimmten Budget zugewiesen sind.

Einer Kampagne ein Budget zuweisen

Nachdem Sie mit CampaignBudgetService ein CampaignBudget erstellt oder ein vorhandenes identifiziert haben, verwenden Sie den Feldwert resource_name in einem Aufruf von CampaignService. Wenn die Budgeterstellung in einer separaten Anfrage erfolgreich ist, die nachfolgende Kampagnenzuweisung jedoch fehlschlägt, haben Sie ein verwaistes Budget (ein Budget, das keiner Kampagne zugeordnet ist). Sie können verwaiste Budgets vermeiden, indem Sie sowohl das CampaignBudget (mit einer temporären Ressourcen-ID) als auch das Campaign atomar in einer einzigen GoogleAdsService.Mutate-Anfrage erstellen oder ungenutzte Budgets wiederverwenden oder entfernen.

Neue Kampagne

Legen Sie bei einer neuen Kampagne in der CampaignOperation.create das Feld campaign_budget des Objekts Campaign auf einen Budgetressourcennamen fest, wie im folgenden Codebeispiel gezeigt:

Java

// Creates the campaign.
Campaign campaign =
    Campaign.newBuilder()
        .setName("Interplanetary Cruise #" + getPrintableDateTime())
        .setAdvertisingChannelType(AdvertisingChannelType.SEARCH)
        // Recommendation: Set the campaign to PAUSED when creating it to prevent
        // the ads from immediately serving. Set to ENABLED once you've added
        // targeting and the ads are ready to serve
        .setStatus(CampaignStatus.PAUSED)
        // Sets the bidding strategy and budget.
        .setManualCpc(ManualCpc.newBuilder().build())
        .setCampaignBudget(budgetResourceName)
        // Adds the networkSettings configured above.
        .setNetworkSettings(networkSettings)
        // Declares whether this campaign serves political ads targeting the EU.
        .setContainsEuPoliticalAdvertising(DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING)
        // Optional: Sets the start & end dates.
        .setStartDateTime(new DateTime().plusDays(1).toString("yyyy-MM-dd 00:00:00"))
        .setEndDateTime(new DateTime().plusDays(30).toString("yyyy-MM-dd 23:59:59"))
        .build();
      

C#

// Create the campaign.
Campaign campaign = new Campaign()
{
    Name = "Interplanetary Cruise #" + ExampleUtilities.GetRandomString(),
    AdvertisingChannelType = AdvertisingChannelType.Search,

    // Recommendation: Set the campaign to PAUSED when creating it to prevent
    // the ads from immediately serving. Set to ENABLED once you've added
    // targeting and the ads are ready to serve
    Status = CampaignStatus.Paused,

    // Set the bidding strategy and budget.
    ManualCpc = new ManualCpc(),
    CampaignBudget = budget,

    // Set the campaign network options.
    NetworkSettings = new NetworkSettings
    {
        TargetGoogleSearch = true,
        TargetSearchNetwork = true,
        // Enable Display Expansion on Search campaigns. See
        // https://support.google.com/google-ads/answer/7193800 to learn more.
        TargetContentNetwork = true,
        TargetPartnerSearchNetwork = false
    },

    // Declare whether or not this campaign contains political ads targeting the EU.
    ContainsEuPoliticalAdvertising = EuPoliticalAdvertisingStatus.DoesNotContainEuPoliticalAdvertising,

    // Optional: Set the start date.
    StartDateTime = DateTime.Now.AddDays(1).ToString("yyyyMMdd 00:00:00"),

    // Optional: Set the end date.
    EndDateTime = DateTime.Now.AddYears(1).ToString("yyyyMMdd 23:59:59"),
};
      

PHP

$campaign = new Campaign([
    'name' => 'Interplanetary Cruise #' . Helper::getPrintableDatetime(),
    'advertising_channel_type' => AdvertisingChannelType::SEARCH,
    // Recommendation: Set the campaign to PAUSED when creating it to prevent
    // the ads from immediately serving. Set to ENABLED once you've added
    // targeting and the ads are ready to serve.
    'status' => CampaignStatus::PAUSED,
    // Sets the bidding strategy and budget.
    'manual_cpc' => new ManualCpc(),
    'campaign_budget' => $budgetResourceName,
    // Adds the network settings configured above.
    'network_settings' => $networkSettings,
    // Declare whether or not this campaign serves political ads targeting the EU.
    'contains_eu_political_advertising' =>
        EuPoliticalAdvertisingStatus::DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING,
    // Optional: Sets the start and end dates.
    'start_date_time' => date('Y-m-d 00:00:00', strtotime('+1 day')),
    'end_date_time' => date('Y-m-d 23:59:59', strtotime('+1 month'))
]);
      

Python

# Create campaign.
campaign_operation: CampaignOperation = client.get_type("CampaignOperation")
campaign: Campaign = campaign_operation.create
campaign.name = f"Interplanetary Cruise {uuid.uuid4()}"
campaign.advertising_channel_type = (
    client.enums.AdvertisingChannelTypeEnum.SEARCH
)

# Recommendation: Set the campaign to PAUSED when creating it to prevent
# the ads from immediately serving. Set to ENABLED once you've added
# targeting and the ads are ready to serve.
campaign.status = client.enums.CampaignStatusEnum.PAUSED

# Set the bidding strategy and budget.
campaign.manual_cpc = client.get_type("ManualCpc")
campaign.campaign_budget = campaign_budget_response.results[0].resource_name

# Set the campaign network options.
campaign.network_settings.target_google_search = True
campaign.network_settings.target_search_network = True
campaign.network_settings.target_partner_search_network = False
# Enable Display Expansion on Search campaigns. For more details see:
# https://support.google.com/google-ads/answer/7193800
campaign.network_settings.target_content_network = True

# Declare whether or not this campaign serves political ads targeting the
# EU. Valid values are:
#   CONTAINS_EU_POLITICAL_ADVERTISING
#   DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING
campaign.contains_eu_political_advertising = (
    client.enums.EuPoliticalAdvertisingStatusEnum.DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING
)

# Optional: Set the start date.
start_time: datetime.date = datetime.date.today() + datetime.timedelta(
    days=1
)
campaign.start_date_time = datetime.date.strftime(
    start_time, _START_DATE_FORMAT
)

# Optional: Set the end date.
end_time: datetime.date = start_time + datetime.timedelta(weeks=4)
campaign.end_date_time = datetime.date.strftime(end_time, _END_DATE_FORMAT)
      

Ruby

# Create campaign.
campaign = client.resource.campaign do |c|
  c.name = "Interplanetary Cruise #{(Time.new.to_f * 1000).to_i}"
  c.advertising_channel_type = :SEARCH

  # Recommendation: Set the campaign to PAUSED when creating it to prevent
  # the ads from immediately serving. Set to ENABLED once you've added
  # targeting and the ads are ready to serve.
  c.status = :PAUSED

  # Set the bidding strategy and budget.
  c.manual_cpc = client.resource.manual_cpc
  c.campaign_budget = return_budget.results.first.resource_name

  # Set the campaign network options.
  c.network_settings = client.resource.network_settings do |ns|
    ns.target_google_search = true
    ns.target_search_network = true
    # Enable Display Expansion on Search campaigns. See
    # https://support.google.com/google-ads/answer/7193800 to learn more.
    ns.target_content_network = true
    ns.target_partner_search_network = false
  end

  # Declare whether or not this campaign serves political ads targeting the EU.
  # Valid values are CONTAINS_EU_POLITICAL_ADVERTISING and
  # DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING.
  c.contains_eu_political_advertising = :DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING

  # Optional: Set the start date.
  c.start_date_time = DateTime.parse((Date.today + 1).to_s).strftime('%Y%m%d %H:%M:%S')

  # Optional: Set the end date.
  c.end_date_time = DateTime.parse((Date.today.next_year).to_s).strftime('%Y%m%d %H:%M:%S')
end
      

Perl

# Create a campaign.
my $campaign = Google::Ads::GoogleAds::V26::Resources::Campaign->new({
    name                   => "Interplanetary Cruise #" . uniqid(),
    advertisingChannelType => SEARCH,
    # 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.
    status => PAUSED,
    # Set the bidding strategy and budget.
    manualCpc      => Google::Ads::GoogleAds::V26::Common::ManualCpc->new(),
    campaignBudget => $campaign_budgets_response->{results}[0]{resourceName},
    # Set the campaign network options.
    networkSettings =>
      Google::Ads::GoogleAds::V26::Resources::NetworkSettings->new({
        targetGoogleSearch  => "true",
        targetSearchNetwork => "true",
        # Enable Display Expansion on Search campaigns. See
        # https://support.google.com/google-ads/answer/7193800 to learn more.
        targetContentNetwork       => "true",
        targetPartnerSearchNetwork => "false"
      }
      ),
    # Declare whether or not this campaign serves political ads targeting the EU.
    # Valid values are CONTAINS_EU_POLITICAL_ADVERTISING and
    # DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING.
    containsEuPoliticalAdvertising =>
      DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING,
    # Optional: Set the start datetime. The campaign starts tomorrow.
    startDateTime =>
      strftime("%Y%m%d 00:00:00", localtime(time + 60 * 60 * 24)),
    # Optional: Set the end datetime. The campaign runs for 30 days.
    endDateTime =>
      strftime("%Y%m%d 23:59:59", localtime(time + 60 * 60 * 24 * 30)),
  });
      

curl

Bestehende Kampagne

Wenn Sie das Budget einer vorhandenen Kampagne ersetzen möchten, legen Sie in einem CampaignOperation.update das Feld campaign_budget des Campaign-Objekts auf den Ressourcennamen eines vorhandenen Budgets fest. Sie können auch andere Kampagnenfelder festlegen. Dadurch wird das vorhandene Budget, das der Kampagne zugewiesen ist, durch das im Feld campaign_budget angegebene Budget ersetzt, da einer Kampagne jeweils nur ein Budget zugewiesen werden kann.

Budget von einer Kampagne trennen

Jeder Kampagne muss ein Budget zugewiesen sein. Sie können ein Budget aus einer Kampagne entfernen, indem Sie das mit der Kampagne verknüpfte Budget ändern und so durch ein anderes Budget ersetzen. Im nächsten Abschnitt erfahren Sie, wie Sie Kampagnen mit einem bestimmten Budget identifizieren.

Kampagnen abrufen, die einem Budget zugewiesen sind

Wenn Sie die Liste der Kampagnen abrufen, für die dasselbe Budget verwendet wird, können Sie die Budgetauslastung besser ausgleichen. Die folgende GAQL-Abfrage gibt alle Kampagnen für die angegebene Budget-ID zurück:

SELECT campaign.id
FROM campaign
WHERE campaign_budget.id = campaign_budget_id