Istnieją 2 rodzaje budżetów: średnie budżety dzienne i łączne budżety kampanii. Oba typy możesz utworzyć za pomocą CampaignBudgetService.
Tworzenie średniego budżetu dziennego
Jest to średnia kwota, jaką chcesz wydawać dziennie na kampanię.
Średni budżet dzienny możesz ustawić za pomocą pola amount_micros w CampaignBudget. Domyślny budżet period to DAILY.
Jeśli w operacji create pominiesz parametr explicitly_shared, domyślnie przyjmie on wartość true. Aby utworzyć niewspółdzielony budżet dla jednej kampanii, musisz więc wyraźnie ustawić parametr explicitly_shared na wartość false, jak w tym przykładzie:
Java
private static String addCampaignBudget(GoogleAdsClient googleAdsClient, long customerId) { CampaignBudget budget = CampaignBudget.newBuilder() .setName("Interplanetary Cruise Budget #" + getPrintableDateTime()) .setDeliveryMethod(BudgetDeliveryMethod.STANDARD) .setAmountMicros(500_000) .build(); CampaignBudgetOperation op = CampaignBudgetOperation.newBuilder().setCreate(budget).build(); try (CampaignBudgetServiceClient campaignBudgetServiceClient = googleAdsClient.getLatestVersion().createCampaignBudgetServiceClient()) { MutateCampaignBudgetsResponse response = campaignBudgetServiceClient.mutateCampaignBudgets( Long.toString(customerId), ImmutableList.of(op)); String budgetResourceName = response.getResults(0).getResourceName(); System.out.printf("Added budget: %s%n", budgetResourceName); return budgetResourceName; } }
C#
private static string CreateBudget(GoogleAdsClient client, long customerId) { // Get the BudgetService. CampaignBudgetServiceClient budgetService = client.GetService( Services.V26.CampaignBudgetService); // Create the campaign budget. CampaignBudget budget = new CampaignBudget() { Name = "Interplanetary Cruise Budget #" + ExampleUtilities.GetRandomString(), DeliveryMethod = BudgetDeliveryMethod.Standard, AmountMicros = 500000 }; // Create the operation. CampaignBudgetOperation budgetOperation = new CampaignBudgetOperation() { Create = budget }; // Create the campaign budget. MutateCampaignBudgetsResponse response = budgetService.MutateCampaignBudgets( customerId.ToString(), new CampaignBudgetOperation[] { budgetOperation }); return response.Results[0].ResourceName; }
PHP
private static function addCampaignBudget(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a campaign budget. $budget = new CampaignBudget([ 'name' => 'Interplanetary Cruise Budget #' . Helper::getPrintableDatetime(), 'delivery_method' => BudgetDeliveryMethod::STANDARD, 'amount_micros' => 500000 ]); // Creates a campaign budget operation. $campaignBudgetOperation = new CampaignBudgetOperation(); $campaignBudgetOperation->setCreate($budget); // Issues a mutate request. $campaignBudgetServiceClient = $googleAdsClient->getCampaignBudgetServiceClient(); $response = $campaignBudgetServiceClient->mutateCampaignBudgets( MutateCampaignBudgetsRequest::build($customerId, [$campaignBudgetOperation]) ); /** @var CampaignBudget $addedBudget */ $addedBudget = $response->getResults()[0]; printf("Added budget named '%s'%s", $addedBudget->getResourceName(), PHP_EOL); return $addedBudget->getResourceName(); }
Python
# Create a budget, which can be shared by multiple campaigns. campaign_budget_operation: CampaignBudgetOperation = client.get_type( "CampaignBudgetOperation" ) campaign_budget: CampaignBudget = campaign_budget_operation.create campaign_budget.name = f"Interplanetary Budget {uuid.uuid4()}" campaign_budget.delivery_method = ( client.enums.BudgetDeliveryMethodEnum.STANDARD ) campaign_budget.amount_micros = 500000 # Add budget. campaign_budget_response: MutateCampaignBudgetsResponse try: budget_operations: List[CampaignBudgetOperation] = [ campaign_budget_operation ] campaign_budget_response = ( campaign_budget_service.mutate_campaign_budgets( customer_id=customer_id, operations=budget_operations, ) ) except GoogleAdsException as ex: handle_googleads_exception(ex)
Ruby
# Create a budget, which can be shared by multiple campaigns. campaign_budget = client.resource.campaign_budget do |cb| cb.name = "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}" cb.delivery_method = :STANDARD cb.amount_micros = 500000 end operation = client.operation.create_resource.campaign_budget(campaign_budget) # Add budget. return_budget = client.service.campaign_budget.mutate_campaign_budgets( customer_id: customer_id, operations: [operation], )
Perl
# Create a campaign budget, which can be shared by multiple campaigns. my $campaign_budget = Google::Ads::GoogleAds::V26::Resources::CampaignBudget->new({ name => "Interplanetary budget #" . uniqid(), deliveryMethod => STANDARD, amountMicros => 500000 }); # Create a campaign budget operation. my $campaign_budget_operation = Google::Ads::GoogleAds::V26::Services::CampaignBudgetService::CampaignBudgetOperation ->new({create => $campaign_budget}); # Add the campaign budget. my $campaign_budgets_response = $api_client->CampaignBudgetService()->mutate({ customerId => $customer_id, operations => [$campaign_budget_operation]});
curl
Tworzenie łącznego budżetu kampanii
Jest to łączna kwota, którą chcesz wydać w całym okresie trwania kampanii. Aby utworzyć łączny budżet kampanii, ustaw budżet period na CUSTOM_PERIOD i ustaw total_amount_micros.
Łącznych budżetów kampanii nie można udostępniać między kampaniami, więc podczas tworzenia budżetu, którego period ma wartość CUSTOM_PERIOD, musisz ustawić parametr explicitly_shared na false.
Podczas kodowania pola są takie same jak w przypadku średniego budżetu dziennego, z wyjątkiem period i total_amount_micros.
Rekomendacje dotyczące budżetu kampanii
Interfejs Google Ads API udostępnia kilka typów rekomendacji, które pomagają optymalizować budżety kampanii:
CAMPAIGN_BUDGETproponuje nową kwotę budżetu w przypadku kampanii z ograniczonym budżetem.MOVE_UNUSED_BUDGETwskazuje możliwości przesunięcia nadmiaru budżetu z jednej kampanii do innej kampanii z ograniczonym budżetem.MARGINAL_ROI_CAMPAIGN_BUDGETsugeruje nową kwotę budżetu w przypadku kampanii, których ROI według prognoz wzrośnie po dostosowaniu budżetu.FORECASTING_CAMPAIGN_BUDGETsugeruje nową kwotę budżetu dla kampanii, które w przyszłości mogą być z ograniczonym budżetem.
Więcej informacji o typach rekomendacji i wskazówek dotyczących pracy z rekomendacjami w interfejsie Google Ads API znajdziesz w przewodniku Wynik optymalizacji i rekomendacje.