Existen dos tipos de presupuestos: los presupuestos diarios promedio y los presupuestos totales de la campaña. Puedes crear cualquiera de los dos tipos con CampaignBudgetService.
Crea un presupuesto diario promedio
Este es el importe promedio que deseas invertir por día en esta campaña.
Puedes establecer un presupuesto diario promedio con amount_micros de CampaignBudget. El presupuesto period se establece de forma predeterminada en DAILY.
En el siguiente ejemplo, se crea un nuevo presupuesto diario promedio para una campaña.
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.V23.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::V23::Resources::CampaignBudget->new({ name => "Interplanetary budget #" . uniqid(), deliveryMethod => STANDARD, amountMicros => 500000 }); # Create a campaign budget operation. my $campaign_budget_operation = Google::Ads::GoogleAds::V23::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]});
Cómo crear un presupuesto total de la campaña
Es el importe total que deseas invertir durante toda la campaña. Para crear un presupuesto total de la campaña, establece el presupuesto period en CUSTOM_PERIOD y configura total_amount_micros.
Los presupuestos totales de la campaña no se pueden compartir entre campañas, por lo que debes establecer explicitly_shared en false cuando crees un presupuesto con un period de CUSTOM_PERIOD.
Cuando se codifican, los campos son los mismos que para un presupuesto diario promedio, excepto period y total_amount_micros.
Recomendaciones sobre el presupuesto de la campaña
La API de Google Ads proporciona algunos tipos de recomendaciones para ayudarte a optimizar los presupuestos de tus campañas:
CAMPAIGN_BUDGETsugiere un nuevo importe del presupuesto para las campañas con limitaciones de presupuesto.MOVE_UNUSED_BUDGETDestaca las oportunidades para reasignar el exceso de presupuesto de una campaña a otra campaña con presupuesto limitado.MARGINAL_ROI_CAMPAIGN_BUDGETsugiere un nuevo importe del presupuesto para las campañas cuyo ROI se prevé que aumentará con un ajuste del presupuesto.FORECASTING_CAMPAIGN_BUDGETsugiere un nuevo importe de presupuesto para las campañas que se prevé que tendrán limitaciones de presupuesto en el futuro.
Para obtener más tipos de recomendaciones y orientación sobre cómo trabajar con ellas en la API de Google Ads, consulta la guía Nivel de optimización y recomendaciones.