Membuat Anggaran Kampanye

Ada dua jenis anggaran: anggaran harian rata-rata dan total anggaran kampanye. Anda dapat membuat kedua jenis tersebut menggunakan CampaignBudgetService.

Membuat anggaran harian rata-rata

Ini adalah jumlah rata-rata yang bersedia Anda belanjakan per hari untuk kampanye ini. Anda dapat menetapkan anggaran harian rata-rata dengan amount_micros dari CampaignBudget. Anggaran period secara default ditetapkan ke DAILY.

Contoh berikut membuat anggaran harian rata-rata baru untuk kampanye.

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]});
      

Membuat total anggaran kampanye

Ini adalah total jumlah yang bersedia Anda belanjakan selama durasi kampanye. Untuk membuat total anggaran kampanye, tetapkan anggaran period ke CUSTOM_PERIOD dan tetapkan total_amount_micros. Total anggaran kampanye tidak dapat dibagikan di seluruh kampanye, jadi Anda harus menetapkan explicitly_shared ke false saat membuat anggaran dengan period sebesar CUSTOM_PERIOD.

Saat membuat kode, kolomnya sama seperti untuk anggaran harian rata-rata, kecuali period dan total_amount_micros.

Rekomendasi anggaran kampanye

Google Ads API menyediakan beberapa jenis rekomendasi untuk membantu Anda mengoptimalkan anggaran kampanye:

  • CAMPAIGN_BUDGET menyarankan jumlah anggaran baru untuk kampanye yang dibatasi anggaran.

  • MOVE_UNUSED_BUDGET menyoroti peluang untuk mengalokasikan ulang anggaran berlebih dari satu kampanye ke kampanye lain yang dibatasi anggaran.

  • MARGINAL_ROI_CAMPAIGN_BUDGET menyarankan jumlah anggaran baru untuk kampanye yang ROI-nya diprediksi akan meningkat dengan penyesuaian anggaran.

  • FORECASTING_CAMPAIGN_BUDGET menyarankan jumlah anggaran baru untuk kampanye yang diperkirakan akan dibatasi anggaran pada masa mendatang.

Untuk jenis rekomendasi tambahan dan panduan tentang cara menggunakan rekomendasi di Google Ads API, buka panduan Skor dan rekomendasi pengoptimalan.