Tworzenie budżetów kampanii

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_BUDGET proponuje nową kwotę budżetu w przypadku kampanii z ograniczonym budżetem.

  • MOVE_UNUSED_BUDGET wskazuje możliwości przesunięcia nadmiaru budżetu z jednej kampanii do innej kampanii z ograniczonym budżetem.

  • MARGINAL_ROI_CAMPAIGN_BUDGET sugeruje nową kwotę budżetu w przypadku kampanii, których ROI według prognoz wzrośnie po dostosowaniu budżetu.

  • FORECASTING_CAMPAIGN_BUDGET sugeruje 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.