هناك نوعان من الميزانيات: متوسط الميزانيات اليومية والميزانيات الإجمالية للحملات. يمكنك إنشاء أيّ من النوعَين باستخدام
CampaignBudgetService.
إنشاء متوسّط ميزانية يومية
هذا هو المتوسّط الذي تريد إنفاقه يوميًا على حملة معيّنة.
يمكنك ضبط متوسّط ميزانية يومية باستخدام الحقل
amount_micros في
CampaignBudget. يتم ضبط
period في الميزانية تلقائيًا على
DAILY.
بما أنّ explicitly_shared
يتم ضبطها تلقائيًا على true إذا تم حذفها في عملية create، يجب ضبط
explicitly_shared بشكلٍ صريح على false لإنشاء ميزانية غير مشترَكة لحملة واحدة، كما
هو موضّح في المثال التالي:
جافا
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
إنشاء ميزانية إجمالية للحملة
هذا هو المبلغ الإجمالي الذي تريد إنفاقه على مدار مدة الحملة بالكامل. لإنشاء ميزانية إجمالية للحملة، اضبط الميزانية
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يقترح مبلغًا جديدًا للميزانية في الحملات التي يُتوقَّع زيادة عائد استثمارها عند تعديل الميزانية.FORECASTING_CAMPAIGN_BUDGETيقترح مبلغًا جديدًا للميزانية في الحملات التي يُتوقَّع أن تصبح مقيّدة بميزانية محدودة في المستقبل.
للاطّلاع على أنواع الاقتراحات الإضافية والإرشادات حول كيفية استخدام الاقتراحات في Google Ads API، يُرجى الانتقال إلى دليل نقاط التحسين والاقتراحات.