キャンペーンに予算を割り当てたり、キャンペーンから予算を切り離したり、特定の予算に割り当てられているキャンペーンを取得したりできます。
キャンペーンに予算を割り当てる
CampaignBudgetService
を使用して CampaignBudget
を作成するか、既存の CampaignBudget
を特定した後、CampaignService
の呼び出しで resource_name
フィールド値を使用する必要があります。予算の作成オペレーションは成功したが、キャンペーンの割り当てに失敗した場合、孤立した予算(どのキャンペーンにも関連付けられていない予算)が作成されます。このような予算は再利用するか、削除することをおすすめします。
新しいキャンペーンを作成
新しいキャンペーンの場合は、CampaignOperation.create
で、Campaign
オブジェクトの campaign_budget
フィールドを予算リソース名に設定します。以下のコード例をご覧ください。
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
オブジェクトの campaign_budget
フィールドを既存の予算のリソース名に設定します(設定する他のキャンペーン フィールドも一緒に設定します)。キャンペーンに一度に関連付けることができる予算は 1 つだけであるため、キャンペーンに割り当てられている既存の予算は、campaign_budget
フィールドで指定された予算に置き換えられます。
予算とキャンペーンの関連付けを解除する
キャンペーンには常に予算が関連付けられている必要があります。キャンペーンから予算を削除するには、キャンペーンに関連付けられている予算を変更して、別の予算に置き換える必要があります。特定の予算を使用しているキャンペーンを特定するには、次のセクションに進みます。
予算に割り当てられたキャンペーンを取得する
同じ予算を使用しているキャンペーンのリストを取得すると、予算使用率のバランスを取るのに役立ちます。次の GAQL クエリは、指定された予算 ID のすべてのキャンペーンを返します。
SELECT campaign.id FROM campaign WHERE campaign_budget.id = campaign_budget_id