Existen dos tipos de presupuestos: los presupuestos diarios promedio y los presupuestos totales de la campaña. Puedes crear cualquier tipo con
CampaignBudgetService.
Cómo crear un presupuesto diario promedio
Este es el importe promedio que estás dispuesto a invertir por día en una campaña.
Puedes establecer un presupuesto diario promedio con el campo amount_micros de CampaignBudget. El presupuesto
period se establece de forma predeterminada en
DAILY.
Debido a que explicitly_shared
se establece de forma predeterminada en true si se omite en una operación create, debes establecer
explicitly_shared de forma explícita en false para crear un presupuesto no compartido de una sola campaña, como
se muestra en el siguiente ejemplo:
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
Cómo crear un presupuesto total de la campaña
Es el importe total que quieres invertir durante todo el período de 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 las campañas 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 programa, 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 varios tipos de recomendaciones que pueden ayudarte a optimizar los presupuestos de tus campañas:
CAMPAIGN_BUDGETsugiere un nuevo importe para las campañas con presupuesto limitado.MOVE_UNUSED_BUDGETdestaca las oportunidades para reasignar el presupuesto excedente de una campaña a otra 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 espera que tengan restricciones 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.