יצירה של תקציבים לקמפיינים

יש שני סוגים של תקציבים: תקציבים יומיים ממוצעים ותקציבים כוללים של קמפיינים. אפשר ליצור כל אחד מהסוגים האלה באמצעות CampaignBudgetService.

יצירת תקציב יומי ממוצע

זהו הסכום הממוצע שאתם מוכנים להוציא ביום על קמפיין. אפשר להגדיר תקציב יומי ממוצע בשדה amount_micros של CampaignBudget. התקציב period מוגדר כברירת מחדל ל-DAILY.

מאחר שערך ברירת המחדל של explicitly_shared הוא true אם הוא לא מצוין בפעולת create, צריך להגדיר במפורש את explicitly_shared לערך false כדי ליצור תקציב לא משותף לקמפיין יחיד, כמו בדוגמה הבאה:

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.V25.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::V25::Resources::CampaignBudget->new({
    name           => "Interplanetary budget #" . uniqid(),
    deliveryMethod => STANDARD,
    amountMicros   => 500000
  });

# Create a campaign budget operation.
my $campaign_budget_operation =
  Google::Ads::GoogleAds::V25::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

יצירת התקציב הכולל של הקמפיין

זהו הסכום הכולל שאתם מוכנים להוציא במהלך הקמפיין. כדי ליצור את התקציב הכולל של הקמפיין, מגדירים את התקציב period ל-CUSTOM_PERIOD ומגדירים את total_amount_micros. אי אפשר לשתף תקציבים כוללים בין קמפיינים, ולכן צריך להגדיר את explicitly_shared לערך false כשיוצרים תקציב עם period של CUSTOM_PERIOD.

כשמבצעים קידוד, השדות זהים לאלה של תקציב יומי ממוצע, חוץ מהשדות period ו-total_amount_micros.

המלצות לגבי תקציב הקמפיין

‫Google Ads API מספק כמה סוגים של המלצות שיעזרו לכם לבצע אופטימיזציה של תקציבי הקמפיינים:

  • ‫CAMPAIGN_BUDGET מציע סכום תקציב חדש לקמפיינים בהגבלת תקציב.

  • MOVE_UNUSED_BUDGET מציג הזדמנויות להקצאה מחדש של תקציב עודף מקמפיין אחד לקמפיין אחר שמוגבל בגלל התקציב.

  • MARGINAL_ROI_CAMPAIGN_BUDGET מציע סכום תקציב חדש לקמפיינים שבהם צפויה עלייה ב-ROI בעקבות שינוי בתקציב.

  • ‫FORECASTING_CAMPAIGN_BUDGET מציעה סכום תקציב חדש לקמפיינים שצפויים להיות בהגבלת תקציב בעתיד.

במדריך בנושא ציון האופטימיזציה וההמלצות אפשר למצוא מידע על סוגי המלצות נוספים והנחיות לעבודה עם המלצות ב-Google Ads API.