Przypisanie budżetu kampanii

Możesz przypisać budżet do kampanii, odłączyć budżet od kampanii lub pobrać kampanie przypisane do określonego budżetu.

Przypisywanie budżetu do kampanii

Po utworzeniu CampaignBudget za pomocą CampaignBudgetService lub zidentyfikowaniu istniejącego budżetu, musisz użyć wartości pola resource_name w kolejnym wywołaniu CampaignService. Jeśli operacja utworzenia budżetu się powiedzie, ale przypisanie kampanii się nie uda, będziesz mieć osierocony budżet (budżet, który nie jest powiązany z żadną kampanią). Zalecamy ponowne użycie lub usunięcietakich budżetów.

Nowa kampania

W przypadku nowej kampanii w CampaignOperation.create, ustaw pole campaign_budget obiektu Campaign na nazwę zasobu budżetu, jak pokazano w przykładzie kodu poniżej.

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::V24::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::V24::Common::ManualCpc->new(),
    campaignBudget => $campaign_budgets_response->{results}[0]{resourceName},
    # Set the campaign network options.
    networkSettings =>
      Google::Ads::GoogleAds::V24::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

Istniejąca kampania

Aby zastąpić budżet istniejącej kampanii, w CampaignOperation.update, ustaw pole campaign_budget obiektu Campaign na nazwę zasobu istniejącego budżetu (wraz z innymi polami kampanii, które chcesz ustawić). Pamiętaj, że spowoduje to zastąpienie dotychczasowego budżetu przypisanego do kampanii budżetem określonym w polu campaign_budget, ponieważ kampania może być powiązana tylko z 1 budżetem naraz.

Odłączanie budżetu od kampanii

Kampania musi być zawsze powiązana z budżetem. Możesz usunąć budżet z kampanii, zmieniając budżet powiązany z kampanią i zastępując go innym budżetem. Aby zidentyfikować kampanie korzystające z określonego budżetu, przejdź do następnej sekcji.

Pobieranie kampanii przypisanych do budżetu

Uzyskanie listy kampanii, które korzystają z tego samego budżetu, może pomóc w zrównoważeniu wykorzystania budżetu. To zapytanie GAQL zwróci wszystkie kampanie dla określonego identyfikatora budżetu:

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