การกำหนดงบประมาณแคมเปญ

กำหนดงบประมาณให้กับแคมเปญ

หลังจากที่คุณสร้าง CampaignBudget ด้วย CampaignBudgetService หรือระบุรายการที่มีอยู่ คุณต้องใช้ค่าในช่อง resource_name ในการเรียกใช้ครั้งถัดไปไปที่ CampaignService โปรดทราบว่าคุณอาจจะมีงบประมาณที่ไม่มีที่มา (งบประมาณที่เชื่อมโยงกับไม่มีแคมเปญ) เมื่อการกําหนดแคมเปญล้มเหลว แต่การสร้างงบประมาณประสบความสําเร็จ เราขอแนะนำให้คุณนำงบประมาณดังกล่าวมาใช้ใหม่หรือลบงบประมาณดังกล่าว

แคมเปญใหม่

สําหรับแคมเปญใหม่ ให้ตั้งค่าช่อง campaign_budget ของออบเจ็กต์ Campaign เป็นชื่อทรัพยากรงบประมาณใน CampaignOperation.create ดังที่แสดงในตัวอย่างโค้ดด้านล่าง

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::V16::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::V16::Common::ManualCpc->new(
      {enhancedCpcEnabled => "true"}
    ),
    campaignBudget => $campaign_budgets_response->{results}[0]{resourceName},
    # Set the campaign network options.
    networkSettings =>
      Google::Ads::GoogleAds::V16::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 ระบุไว้ เนื่องจากแคมเปญหนึ่งจะเชื่อมโยงกับงบประมาณได้ครั้งละ 1 รายการเท่านั้น

ตัดการเชื่อมโยงงบประมาณกับแคมเปญ

แคมเปญต้องเชื่อมโยงกับงบประมาณเสมอ คุณนำงบประมาณออกจากแคมเปญได้โดยการเปลี่ยนแปลงงบประมาณที่เชื่อมโยงกับแคมเปญ ซึ่งเป็นการแทนที่งบประมาณด้วยงบประมาณอื่น หากต้องการระบุแคมเปญที่ใช้งบประมาณหนึ่งๆ โดยเฉพาะ ให้ไปยังส่วนถัดไป

ดึงข้อมูลแคมเปญที่กําหนดให้กับงบประมาณ

การได้รับรายการแคมเปญที่ใช้งบประมาณเดียวกันอาจมีประโยชน์ในการสร้างสมดุลระหว่างการใช้งบประมาณ คำค้นหา GAQL ต่อไปนี้จะแสดงแคมเปญทั้งหมดสำหรับรหัสงบประมาณที่ระบุ

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