Бюджет можно применить к одной кампании или разделить на несколько кампаний.
Настраивать
Когда вы создаете новый CampaignBudget
с помощью Google Ads API, вы можете указать, можно ли использовать его совместно с BoolValue
поля explicitly_shared
:
-
true
(по умолчанию): может использоваться несколькими кампаниями. -
false
: может использоваться только одной кампанией.
Явно общие бюджеты отображаются в общей библиотеке аккаунта в пользовательском интерфейсе Google Рекламы, тогда как необщий бюджет отображается только в настройках связанной с ним кампании.
В следующем примере создается новый бюджет, он является общим, поскольку для explicitly_shared
установлено значение true
.
Ява
private String createSharedCampaignBudget(GoogleAdsClient googleAdsClient, long customerId) { try (CampaignBudgetServiceClient campaignBudgetServiceClient = googleAdsClient.getLatestVersion().createCampaignBudgetServiceClient()) { // Creates a shared budget. CampaignBudget budget = CampaignBudget.newBuilder() .setName("Shared Interplanetary Budget #" + getPrintableDateTime()) .setAmountMicros(50_000_000L) .setDeliveryMethod(BudgetDeliveryMethod.STANDARD) .setExplicitlyShared(true) .build(); // Constructs an operation that will create a shared budget. CampaignBudgetOperation operation = CampaignBudgetOperation.newBuilder().setCreate(budget).build(); // Sends the operation in a mutate request. MutateCampaignBudgetsResponse response = campaignBudgetServiceClient.mutateCampaignBudgets( Long.toString(customerId), Lists.newArrayList(operation)); MutateCampaignBudgetResult mutateCampaignBudgetResult = response.getResults(0); // Prints the resource name of the created object. System.out.printf( "Created shared budget with resource name: '%s'.%n", mutateCampaignBudgetResult.getResourceName()); return mutateCampaignBudgetResult.getResourceName(); } }
С#
private string CreateSharedBudget(GoogleAdsClient client, long customerId, string name, long amount) { // Get the CampaignBudgetService. CampaignBudgetServiceClient campaignBudgetService = client.GetService(Services.V18.CampaignBudgetService); // Create a shared budget. CampaignBudget budget = new CampaignBudget() { Name = name, AmountMicros = amount, DeliveryMethod = BudgetDeliveryMethodEnum.Types.BudgetDeliveryMethod.Standard, ExplicitlyShared = true }; // Create the operation. CampaignBudgetOperation campaignBudgetOperation = new CampaignBudgetOperation() { Create = budget }; // Make the mutate request. MutateCampaignBudgetsResponse retVal = campaignBudgetService.MutateCampaignBudgets( customerId.ToString(), new CampaignBudgetOperation[] { campaignBudgetOperation }); return retVal.Results[0].ResourceName; }
PHP
private static function createSharedCampaignBudget( GoogleAdsClient $googleAdsClient, int $customerId ) { // Creates a shared budget. $budget = new CampaignBudget([ 'name' => 'Shared Interplanetary Budget #' . Helper::getPrintableDatetime(), 'delivery_method' => BudgetDeliveryMethod::STANDARD, // Sets the amount of budget. 'amount_micros' => 50000000, // Makes the budget explicitly shared. 'explicitly_shared' => true ]); // Constructs a campaign budget operation. $campaignBudgetOperation = new CampaignBudgetOperation(); $campaignBudgetOperation->setCreate($budget); // Issues a mutate request to create the budget. $campaignBudgetServiceClient = $googleAdsClient->getCampaignBudgetServiceClient(); $response = $campaignBudgetServiceClient->mutateCampaignBudgets( MutateCampaignBudgetsRequest::build($customerId, [$campaignBudgetOperation]) ); /** @var CampaignBudget $addedBudget */ $addedBudget = $response->getResults()[0]; printf( "Created a shared budget with resource name '%s'.%s", $addedBudget->getResourceName(), PHP_EOL ); return $addedBudget->getResourceName(); }
Питон
# Create a budget, which can be shared by multiple campaigns. campaign_budget_operation = client.get_type("CampaignBudgetOperation") campaign_budget = 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 campaign_budget.explicitly_shared = True # Add budget. try: campaign_budget_response = ( campaign_budget_service.mutate_campaign_budgets( customer_id=customer_id, operations=[campaign_budget_operation] ) ) campaign_budget_id = campaign_budget_response.results[0].resource_name print(f'Budget "{campaign_budget_id}" was created.') except GoogleAdsException as ex: handle_googleads_exception(ex)
Руби
# Create a budget, which can be shared by multiple campaigns. budget = client.resource.campaign_budget do |cb| cb.name = "Interplanetary budget ##{(Time.new.to_f * 1000).to_i}" cb.amount_micros = 50_000_000 cb.delivery_method = :STANDARD cb.explicitly_shared = true end operation = client.operation.create_resource.campaign_budget(budget) response = client.service.campaign_budget.mutate_campaign_budgets( customer_id: customer_id, operations: [operation], ) budget_id = response.results.first.resource_name
Перл
sub create_shared_campaign_buget { my ($api_client, $customer_id) = @_; # Create a shared budget. my $campaign_budget = Google::Ads::GoogleAds::V18::Resources::CampaignBudget->new({ name => "Shared Interplanetary Budget #" . uniqid(), deliveryMethod => STANDARD, # Set the amount of budget. amountMicros => 50000000, # Makes the budget explicitly shared. explicitlyShared => 'true' }); # Create a campaign budget operation. my $campaign_budget_operation = Google::Ads::GoogleAds::V18::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]}); my $campaign_budget_resource_name = $campaign_budgets_response->{results}[0]{resourceName}; printf "Created a shared budget with resource name: '%s'.\n", $campaign_budget_resource_name; return $campaign_budget_resource_name; }
Определите, является ли бюджет кампании общим
Вы можете получить значение настройки бюджета, выполнив поиск по полю campaign_budget.explicitly_shared
. Вот запрос GAQL для поля с фильтрацией по идентификатору бюджета:
SELECT campaign_budget.explicitly_shared FROM campaign_budget WHERE campaign_budget.id = campaign_budget_id