يمكنك تعيين ميزانية لحملة أو إلغاء ربط ميزانية بحملة أو استرداد الحملات التي تم تعيينها لميزانية معيّنة.
تحديد ميزانية لإحدى الحملات
بعد إنشاء CampaignBudget
باستخدام CampaignBudgetService
أو تحديد عنصر حالي،
استخدِم قيمة الحقل resource_name
في طلب إلى CampaignService. إذا نجحت عملية إنشاء الميزانية في طلب منفصل، ولكن تعذّر بعد ذلك ربطها بحملة، ستكون لديك ميزانية غير مرتبطة بأي حملة. يمكنك تجنُّب الميزانيات غير المرتبطة بأي عنصر من خلال إنشاء كل من CampaignBudget (باستخدام معرّف مورد مؤقت) وCampaign بشكل متزامن في طلب GoogleAdsService.Mutate واحد، أو من خلال إعادة استخدام الميزانيات غير المستخدَمة أو إزالتها.
حملة جديدة
بالنسبة إلى حملة جديدة، في
CampaignOperation.create،
اضبط حقل campaign_budget
العنصر Campaign على اسم مرجع ميزانية،
كما هو موضّح في مثال الرمز البرمجي التالي:
جافا
// Creates the campaign. Campaign campaign = Campaign.newBuilder() .setName("Interplanetary Cruise #" + getPrintableDateTime()) .setAdvertisingChannelType(AdvertisingChannelType.SEARCH) // Recommendation: Set the campaign to PAUSED when creating it to prevent // the ads from immediately serving. Set to ENABLED once you've added // targeting and the ads are ready to serve .setStatus(CampaignStatus.PAUSED) // Sets the bidding strategy and budget. .setManualCpc(ManualCpc.newBuilder().build()) .setCampaignBudget(budgetResourceName) // Adds the networkSettings configured above. .setNetworkSettings(networkSettings) // Declares whether this campaign serves political ads targeting the EU. .setContainsEuPoliticalAdvertising(DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING) // Optional: Sets the start & end dates. .setStartDateTime(new DateTime().plusDays(1).toString("yyyy-MM-dd 00:00:00")) .setEndDateTime(new DateTime().plusDays(30).toString("yyyy-MM-dd 23:59:59")) .build();
#C
// Create the campaign. Campaign campaign = new Campaign() { Name = "Interplanetary Cruise #" + ExampleUtilities.GetRandomString(), AdvertisingChannelType = AdvertisingChannelType.Search, // Recommendation: Set the campaign to PAUSED when creating it to prevent // the ads from immediately serving. Set to ENABLED once you've added // targeting and the ads are ready to serve Status = CampaignStatus.Paused, // Set the bidding strategy and budget. ManualCpc = new ManualCpc(), CampaignBudget = budget, // Set the campaign network options. NetworkSettings = new NetworkSettings { TargetGoogleSearch = true, TargetSearchNetwork = true, // Enable Display Expansion on Search campaigns. See // https://support.google.com/google-ads/answer/7193800 to learn more. TargetContentNetwork = true, TargetPartnerSearchNetwork = false }, // Declare whether or not this campaign contains political ads targeting the EU. ContainsEuPoliticalAdvertising = EuPoliticalAdvertisingStatus.DoesNotContainEuPoliticalAdvertising, // Optional: Set the start date. StartDateTime = DateTime.Now.AddDays(1).ToString("yyyyMMdd 00:00:00"), // Optional: Set the end date. EndDateTime = DateTime.Now.AddYears(1).ToString("yyyyMMdd 23:59:59"), };
PHP
$campaign = new Campaign([ 'name' => 'Interplanetary Cruise #' . Helper::getPrintableDatetime(), 'advertising_channel_type' => AdvertisingChannelType::SEARCH, // Recommendation: Set the campaign to PAUSED when creating it to prevent // the ads from immediately serving. Set to ENABLED once you've added // targeting and the ads are ready to serve. 'status' => CampaignStatus::PAUSED, // Sets the bidding strategy and budget. 'manual_cpc' => new ManualCpc(), 'campaign_budget' => $budgetResourceName, // Adds the network settings configured above. 'network_settings' => $networkSettings, // Declare whether or not this campaign serves political ads targeting the EU. 'contains_eu_political_advertising' => EuPoliticalAdvertisingStatus::DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING, // Optional: Sets the start and end dates. 'start_date_time' => date('Y-m-d 00:00:00', strtotime('+1 day')), 'end_date_time' => date('Y-m-d 23:59:59', strtotime('+1 month')) ]);
Python
# Create campaign. campaign_operation: CampaignOperation = client.get_type("CampaignOperation") campaign: Campaign = campaign_operation.create campaign.name = f"Interplanetary Cruise {uuid.uuid4()}" campaign.advertising_channel_type = ( client.enums.AdvertisingChannelTypeEnum.SEARCH ) # Recommendation: Set the campaign to PAUSED when creating it to prevent # the ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. campaign.status = client.enums.CampaignStatusEnum.PAUSED # Set the bidding strategy and budget. campaign.manual_cpc = client.get_type("ManualCpc") campaign.campaign_budget = campaign_budget_response.results[0].resource_name # Set the campaign network options. campaign.network_settings.target_google_search = True campaign.network_settings.target_search_network = True campaign.network_settings.target_partner_search_network = False # Enable Display Expansion on Search campaigns. For more details see: # https://support.google.com/google-ads/answer/7193800 campaign.network_settings.target_content_network = True # Declare whether or not this campaign serves political ads targeting the # EU. Valid values are: # CONTAINS_EU_POLITICAL_ADVERTISING # DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING campaign.contains_eu_political_advertising = ( client.enums.EuPoliticalAdvertisingStatusEnum.DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING ) # Optional: Set the start date. start_time: datetime.date = datetime.date.today() + datetime.timedelta( days=1 ) campaign.start_date_time = datetime.date.strftime( start_time, _START_DATE_FORMAT ) # Optional: Set the end date. end_time: datetime.date = start_time + datetime.timedelta(weeks=4) campaign.end_date_time = datetime.date.strftime(end_time, _END_DATE_FORMAT)
Ruby
# Create campaign. campaign = client.resource.campaign do |c| c.name = "Interplanetary Cruise #{(Time.new.to_f * 1000).to_i}" c.advertising_channel_type = :SEARCH # Recommendation: Set the campaign to PAUSED when creating it to prevent # the ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. c.status = :PAUSED # Set the bidding strategy and budget. c.manual_cpc = client.resource.manual_cpc c.campaign_budget = return_budget.results.first.resource_name # Set the campaign network options. c.network_settings = client.resource.network_settings do |ns| ns.target_google_search = true ns.target_search_network = true # Enable Display Expansion on Search campaigns. See # https://support.google.com/google-ads/answer/7193800 to learn more. ns.target_content_network = true ns.target_partner_search_network = false end # Declare whether or not this campaign serves political ads targeting the EU. # Valid values are CONTAINS_EU_POLITICAL_ADVERTISING and # DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING. c.contains_eu_political_advertising = :DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING # Optional: Set the start date. c.start_date_time = DateTime.parse((Date.today + 1).to_s).strftime('%Y%m%d %H:%M:%S') # Optional: Set the end date. c.end_date_time = DateTime.parse((Date.today.next_year).to_s).strftime('%Y%m%d %H:%M:%S') end
Perl
# Create a campaign. my $campaign = Google::Ads::GoogleAds::V25::Resources::Campaign->new({ name => "Interplanetary Cruise #" . uniqid(), advertisingChannelType => SEARCH, # Recommendation: Set the campaign to PAUSED when creating it to stop # the ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. status => PAUSED, # Set the bidding strategy and budget. manualCpc => Google::Ads::GoogleAds::V25::Common::ManualCpc->new(), campaignBudget => $campaign_budgets_response->{results}[0]{resourceName}, # Set the campaign network options. networkSettings => Google::Ads::GoogleAds::V25::Resources::NetworkSettings->new({ targetGoogleSearch => "true", targetSearchNetwork => "true", # Enable Display Expansion on Search campaigns. See # https://support.google.com/google-ads/answer/7193800 to learn more. targetContentNetwork => "true", targetPartnerSearchNetwork => "false" } ), # Declare whether or not this campaign serves political ads targeting the EU. # Valid values are CONTAINS_EU_POLITICAL_ADVERTISING and # DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING. containsEuPoliticalAdvertising => DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING, # Optional: Set the start datetime. The campaign starts tomorrow. startDateTime => strftime("%Y%m%d 00:00:00", localtime(time + 60 * 60 * 24)), # Optional: Set the end datetime. The campaign runs for 30 days. endDateTime => strftime("%Y%m%d 23:59:59", localtime(time + 60 * 60 * 24 * 30)), });
curl
الحملة القائمة
لاستبدال ميزانية حملة حالية، في CampaignOperation.update، اضبط الحقل campaign_budget الخاص بالكائن Campaign على اسم مورد ميزانية حالية (بالإضافة إلى أي حقول أخرى للحملة قد تريد ضبطها). يؤدي ذلك إلى استبدال الميزانية الحالية المخصّصة للحملة بالميزانية المحدّدة في الحقل campaign_budget، لأنّه لا يمكن ربط الحملة إلا بميزانية واحدة في كل مرة.
إلغاء ربط ميزانية بحملة
يجب أن تكون الحملة مرتبطة دائمًا بميزانية. يمكنك إزالة ميزانية من حملة من خلال تغيير الميزانية المرتبطة بالحملة، وبالتالي استبدالها بميزانية أخرى. لتحديد الحملات التي تستخدم ميزانية معيّنة، اطّلِع على القسم التالي.
استرداد الحملات المعيّنة لميزانية
يمكن أن يساعد الحصول على قائمة بالحملات التي تستخدم الميزانية نفسها في تحقيق التوازن في استخدام الميزانية. يعرض طلب بحث GAQL التالي جميع الحملات لمعرّف الميزانية المحدّد:
SELECT campaign.id FROM campaign WHERE campaign_budget.id = campaign_budget_id