تعيين ميزانية الحملة

يمكنك تخصيص ميزانية لحملة أو إلغاء ربط ميزانية بحملة أو retrieving the campaigns that are assigned to a specific budget.

تخصيص ميزانية لحملة

بعد إنشاء CampaignBudget باستخدام CampaignBudgetService أو تحديد CampaignBudget حالي، يجب استخدام قيمة الحقل resource_name في طلب لاحق إلى CampaignService. إذا نجحت عملية إنشاء الميزانية، ولكن تعذّر إسنادها إلى الحملة، ستحصل على ميزانية متعلّقة بحساب آخر (ميزانية غير مرتبطة بأيّ حملة). ننصح بإعادة استخدام هذه الميزانيات أو إزالتها.

حملة جديدة

بالنسبة إلى حملة جديدة، في CampaignOperation.create، اضبط حقل campaign_budget لعنصر Campaign على اسم مورد ميزانية، كما هو موضّح في مثال الرمز البرمجي أدناه.

Java

// 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)
        // Optional: Sets the start & end dates.
        .setStartDate(new DateTime().plusDays(1).toString("yyyyMMdd"))
        .setEndDate(new DateTime().plusDays(30).toString("yyyyMMdd"))
        .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
    },

    // Optional: Set the start date.
    StartDate = DateTime.Now.AddDays(1).ToString("yyyyMMdd"),

    // Optional: Set the end date.
    EndDate = DateTime.Now.AddYears(1).ToString("yyyyMMdd"),
};
      

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,
    // Optional: Sets the start and end dates.
    'start_date' => date('Ymd', strtotime('+1 day')),
    'end_date' => date('Ymd', strtotime('+1 month'))
]);
      

Python

# Create campaign.
campaign_operation = client.get_type("CampaignOperation")
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.enhanced_cpc_enabled = True
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
      

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

  # Optional: Set the start date.
  c.start_date = DateTime.parse((Date.today + 1).to_s).strftime('%Y%m%d')

  # Optional: Set the end date.
  c.end_date = DateTime.parse((Date.today.next_year).to_s).strftime('%Y%m%d')
end
      

Perl

# Create a campaign.
my $campaign = Google::Ads::GoogleAds::V18::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::V18::Common::ManualCpc->new(
      {enhancedCpcEnabled => "true"}
    ),
    campaignBudget => $campaign_budgets_response->{results}[0]{resourceName},
    # Set the campaign network options.
    networkSettings =>
      Google::Ads::GoogleAds::V18::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"
      }
      ),
    # Optional: Set the start date. The campaign starts tomorrow.
    startDate => strftime("%Y%m%d", localtime(time + 60 * 60 * 24)),
    # Optional: Set the end date. The campaign runs for 30 days.
    endDate => strftime("%Y%m%d", localtime(time + 60 * 60 * 24 * 30)),
  });
      

الحملة القائمة

لاستبدال ميزانية حملة حالية، في CampaignOperation.update، اضبط الحقل campaign_budget لكائن Campaign على اسم المورد لميزانية حالية (بالإضافة إلى أيّ حقل آخر للحملة قد تريد ضبطه). يُرجى العِلم أنّ هذا الإجراء سيؤدي إلى استبدال الميزانية الحالية المحدّدة للحملة بالميزانية المحدّدة في الحقل campaign_budget ، لأنّه يمكن ربط الحملة بميزانية واحدة فقط في المرة الواحدة.

إلغاء ربط ميزانية بحملة

يجب أن تكون الحملة مرتبطة دائمًا بميزانية. يمكنك إزالة ميزانية من حملة من خلال تغيير الميزانية المرتبطة بالحملة، وبالتالي استبدالها بميزانية أخرى. لتحديد الحملات باستخدام ميزانية معيّنة، انتقِل إلى القسم التالي.

استرداد الحملات التي تمّ إسنادها إلى ميزانية

يمكن أن يكون الحصول على قائمة الحملات التي تستخدِم الميزانية نفسها مفيدًا في موازنة استخدام الميزانية. سيعرض طلب البحث التالي في "استعلامات لغة الاستعلامات في "إحصاءات Google" كل الحملات لرقم تعريف الميزانية المحدّد:

SELECT campaign.id
FROM campaign
WHERE campaign_budget.id = campaign_budget_id