예측 측정항목은 제안된 캠페인 또는 기존 캠페인의 예상 실적 측정항목 (KeywordForecastMetrics)을 제공합니다. 사용 가능한 예측 측정항목은 지원되는 API 버전 및 입찰 전략에 따라 다릅니다.
- v24 이상:
clicks(클릭수):ManualCpcBiddingStrategy또는MaximizeClicksBiddingStrategy를 사용하는 경우에만 반환됩니다.cost_micros(비용): 마이크로 단위의 총 예상 비용입니다.average_cpc_micros(평균 클릭당비용):ManualCpcBiddingStrategy또는MaximizeClicksBiddingStrategy및clicks > 0를 사용하는 경우에만 반환됩니다.conversions(전환):MaximizeConversionsBiddingStrategy를 사용하는 경우에만 반환됩니다.average_cpa_micros(평균 전환당비용):MaximizeConversionsBiddingStrategy를 사용하는 경우에만 반환됩니다(cost_micros / conversions로 계산됨).
- v23 이하:
KeywordForecastMetrics는clicks,cost_micros,average_cpc_micros,conversions,average_cpa_micros(모든 입찰 전략에서 반환됨) 외에도impressions(노출수),click_through_rate(클릭률),conversion_rate(전환율)를 반환합니다.
다양한 캠페인 구성을 실험하여 각 측정항목을 최적화합니다. 예측은 이전 품질평가점수 및 클릭률과 같은 데이터를 사용하여 예상 실적을 시뮬레이션합니다.
예측 측정항목은 일반적으로 키워드 아이디어를 사용하여 후보 키워드를 검색하거나 이전 측정항목을 사용하여 기존 키워드 목록을 필터링하고 선택적으로 해당 키워드를 광고 그룹 테마로 그룹화한 후에 사용됩니다. 과거 측정항목은 과거 검색량을 기준으로 대규모 키워드 후보를 좁히는 반면, 예측 측정항목은 향후 실적을 시뮬레이션하므로 게재 중인 캠페인을 업데이트하기 전에 입찰가, 일일 예산, 타겟팅을 최적화할 수 있습니다.
측정항목 생성
예측 측정항목을 생성하려면 다음 단계를 완료하세요.
- 캠페인 구성,
ForecastAdGroup객체, 평가하려는 입찰 전략을 나타내는CampaignToForecast객체를 구성합니다. - 해당
CampaignToForecast및 선택사항인forecast_period를 사용하여KeywordPlanIdeaService.GenerateKeywordForecastMetrics를 호출합니다. 시작일은 미래의 날짜여야 하고 종료일은 오늘로부터 1년 이내여야 합니다. 생략하면 고객 계정의 시간대에서 다음 일요일부터 다음 토요일까지가 기본값으로 설정됩니다. GenerateKeywordForecastMetricsResponse의campaign_forecast_metrics필드에서 캠페인 수준KeywordForecastMetrics를 읽습니다.
예측할 캠페인 만들기
예측할 캠페인을 만들 때 참고할 수 있는 몇 가지 도움말은 다음과 같습니다.
- 광고 소재 관련성, 제품 카테고리 또는 클릭당비용과 같은 테마를 기반으로 광고 그룹을 만듭니다 (또는
GenerateAdGroupThemes의 추천 사용). - v23 이하에서는
CampaignToForecast.negative_keywords또는ForecastAdGroup.negative_keywords를 사용하여 일반적인 제외 키워드를 포함합니다(예: 채용 중이 아닌 경우 키워드'jobs'제외). v24 이상에서는negative_keywords가 삭제됩니다. - 캠페인과 관련된 계정을 사용합니다. 관련 없는 계정에서 예측하지 마세요. Google은 품질평가점수와 광고 소재 콘텐츠를 예측에 반영합니다.
- 캠페인이 계정의 나머지 부분과 관련이 없는 경우 예측에 새로운 깨끗한 계정을 사용하세요.
- 다양한 기간으로 예측을 반복하여 전체적인 상황을 파악합니다.
버전 차이
v24 이상에서 CampaignToForecast, ForecastAdGroup, KeywordForecastMetrics는 다음 표와 같이 v23 이하에 비해 간소화된 스키마를 사용합니다.
| 기능 | v24 이상 | v23 이하 |
|---|---|---|
| 광고 그룹 키워드 | ForecastAdGroup.keywords(repeated KeywordInfo개) |
ForecastAdGroup.biddable_keywords (repeated BiddableKeyword) |
| 위치 타겟팅 | CampaignToForecast.geo_target_constants(리소스 이름 repeated string개) |
CampaignToForecast.geo_modifiers (repeated CriterionBidModifier, 선택적 입찰 배율 포함) |
| 검색 네트워크 타겟팅 | CampaignToForecast에 지정되지 않음(기본값은 Google 검색) |
CampaignToForecast.keyword_plan_network 필요 |
| 제외 키워드 | CampaignToForecast 또는 ForecastAdGroup에서 지원되지 않음 |
CampaignToForecast.negative_keywords 및 ForecastAdGroup.negative_keywords를 사용하여 지원됨 |
| 광고 그룹 및 키워드 CPC 입찰가 재정의 | 캠페인 입찰 전략 수준 (ManualCpcBiddingStrategy.max_cpc_bid_micros 또는 MaximizeClicksBiddingStrategy.max_cpc_bid_ceiling_micros)에서만 구성됨 |
광고 그룹별 (ForecastAdGroup.max_cpc_bid_micros) 또는 키워드별 (BiddableKeyword.max_cpc_bid_micros)로 재정의할 수도 있습니다. |
| 맞춤 예상 전환율 | CampaignToForecast에서 지원되지 않음 |
선택사항 CampaignToForecast.conversion_rate |
| 반환된 예측 측정항목 | clicks 및 average_cpc_micros (수동 CPC 또는 클릭수 최대화만 해당), cost_micros, conversions 및 average_cpa_micros (전환수 최대화만 해당) |
모든 입찰 전략에서 clicks, cost_micros, average_cpc_micros, conversions, average_cpa_micros, impressions, click_through_rate, conversion_rate를 반환합니다. |
코드 예
다음 코드 예시에서는 KeywordPlanIdeaService.GenerateKeywordForecastMetrics에 요청을 보냅니다. 광고 그룹 및 키워드를 사용하여 인라인 CampaignToForecast를 구성한 다음 반환된 campaign_forecast_metrics를 표시합니다.
자바
private void runExample(GoogleAdsClient googleAdsClient, Long customerId) { CampaignToForecast campaignToForecast = createCampaignToForecast(googleAdsClient); GenerateKeywordForecastMetricsRequest request = GenerateKeywordForecastMetricsRequest.newBuilder() .setCustomerId(String.valueOf(customerId)) .setCampaign(campaignToForecast) .setForecastPeriod( DateRange.newBuilder() // Sets the forecast start date to tomorrow. .setStartDate(new DateTime().plusDays(1).toString("yyyy-MM-dd")) // Sets the forecast end date to 30 days from today. .setEndDate(new DateTime().plusDays(30).toString("yyyy-MM-dd"))) .build(); try (KeywordPlanIdeaServiceClient keywordPlanIdeaServiceClient = googleAdsClient.getLatestVersion().createKeywordPlanIdeaServiceClient()) { GenerateKeywordForecastMetricsResponse response = keywordPlanIdeaServiceClient.generateKeywordForecastMetrics(request); KeywordForecastMetrics metrics = response.getCampaignForecastMetrics(); System.out.printf( "Estimated daily clicks: %s%n", metrics.hasClicks() ? metrics.getClicks() : null); System.out.printf( "Estimated average CPC (micros): %s%n", metrics.hasAverageCpcMicros() ? metrics.getAverageCpcMicros() : null); } } /** * Creates the campaign to forecast. A campaign to forecast lets you try out various * configurations and keywords to find the best optimization for your future campaigns. Once * you've found the best campaign configuration, create a serving campaign in your Google Ads * account with similar values and keywords. For more details, see: * * <p>https://support.google.com/google-ads/answer/3022575 */ private CampaignToForecast createCampaignToForecast(GoogleAdsClient googleAdsClient) { CampaignToForecast.Builder campaignToForecastBuilder = CampaignToForecast.newBuilder() .setBiddingStrategy( CampaignBiddingStrategy.newBuilder() .setManualCpcBiddingStrategy( ManualCpcBiddingStrategy.newBuilder().setMaxCpcBidMicros(1_000_000L))); // See https://developers.google.com/google-ads/api/reference/data/geotargets for the list of // geo target IDs. Geo target constant 2840 is for USA. campaignToForecastBuilder.addGeoTargetConstants(ResourceNames.geoTargetConstant(2840)); // See https://developers.google.com/google-ads/api/reference/data/codes-formats#languages for // the list of language criteria IDs. Language constant 1000 is for English. campaignToForecastBuilder.addLanguageConstants(ResourceNames.languageConstant(1000)); // Create forecast ad group based on themes such as creative relevance, product category, or // cost per click. ForecastAdGroup.Builder forecastAdGroupBuilder = ForecastAdGroup.newBuilder(); forecastAdGroupBuilder.addKeywords( KeywordInfo.newBuilder() .setText("mars cruise") .setMatchType(KeywordMatchType.BROAD)); forecastAdGroupBuilder.addKeywords( KeywordInfo.newBuilder() .setText("cheap cruise") .setMatchType(KeywordMatchType.PHRASE)); forecastAdGroupBuilder.addKeywords( KeywordInfo.newBuilder() .setText("jupiter cruise") .setMatchType(KeywordMatchType.BROAD)); campaignToForecastBuilder.addAdGroups(forecastAdGroupBuilder.build()); return campaignToForecastBuilder.build(); }
C#
public void Run(GoogleAdsClient client, long customerId) { CampaignToForecast campaignToForecast = CreateCampaignToForecast(); KeywordPlanIdeaServiceClient keywordPlanIdeaService = client.GetService(Services.V26.KeywordPlanIdeaService); GenerateKeywordForecastMetricsRequest request = new GenerateKeywordForecastMetricsRequest() { CustomerId = customerId.ToString(), Campaign = campaignToForecast, ForecastPeriod = new DateRange() { // Set the forecast start date to tomorrow. StartDate = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"), // Set the forecast end date to 30 days from today. EndDate = DateTime.Now.AddDays(30).ToString("yyyy-MM-dd"), } }; try { GenerateKeywordForecastMetricsResponse response = keywordPlanIdeaService.GenerateKeywordForecastMetrics(request); KeywordForecastMetrics metrics = response.CampaignForecastMetrics; Console.WriteLine($"Estimated daily clicks: {metrics.Clicks}."); Console.WriteLine($"Estimated average cpc (micros): {metrics.AverageCpcMicros}."); } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } } /// <summary> /// Creates the campaign to forecast. A campaign to forecast lets you try out /// various configuration and keywords to find the best optimization for your /// future campaigns. Once you've found the best campaign configuration, /// create a serving campaign in your Google Ads account with similar values /// and keywords. For more details, see: /// https://support.google.com/google-ads/answer/3022575 /// </summary> private CampaignToForecast CreateCampaignToForecast() { CampaignToForecast campaignToForecast = new CampaignToForecast() { BiddingStrategy = new CampaignToForecast.Types.CampaignBiddingStrategy() { ManualCpcBiddingStrategy = new ManualCpcBiddingStrategy() { MaxCpcBidMicros = 1_000_000 } } }; // See https://developers.google.com/google-ads/api/reference/data/geotargets // for the list of geo target IDs. // Geo target constant 2840 is for USA. campaignToForecast.GeoTargetConstants.Add( ResourceNames.GeoTargetConstant(2840) ); // See https://developers.google.com/google-ads/api/reference/data/codes-formats#languages // for the list of language criteria IDs. // Language constant 1000 is for English. campaignToForecast.LanguageConstants.Add(ResourceNames.LanguageConstant(1000)); // Create forecast ad group based on themes such as creative relevance, product category, // or cost per click. ForecastAdGroup forecastAdGroup = new ForecastAdGroup(); KeywordInfo keyword1 = new KeywordInfo() { Text = "mars cruise", MatchType = KeywordMatchType.Broad }; forecastAdGroup.Keywords.Add(keyword1); KeywordInfo keyword2 = new KeywordInfo() { Text = "cheap cruise", MatchType = KeywordMatchType.Phrase }; forecastAdGroup.Keywords.Add(keyword2); KeywordInfo keyword3 = new KeywordInfo() { Text = "jupiter cruise", MatchType = KeywordMatchType.Exact }; forecastAdGroup.Keywords.Add(keyword3); campaignToForecast.AdGroups.Add(forecastAdGroup); return campaignToForecast; }
PHP
public static function runExample( GoogleAdsClient $googleAdsClient, int $customerId ): void { $campaignToForecast = self::createCampaignToForecast(); $keywordPlanIdeaServiceClient = $googleAdsClient->getKeywordPlanIdeaServiceClient(); // Generates keyword forecast metrics based on the specified parameters. $response = $keywordPlanIdeaServiceClient->generateKeywordForecastMetrics( new GenerateKeywordForecastMetricsRequest([ 'customer_id' => $customerId, 'campaign' => $campaignToForecast, 'forecast_period' => new DateRange([ // Sets the forecast start date to tomorrow. 'start_date' => date('Ymd', strtotime('+1 day')), // Sets the forecast end date to 30 days from today. 'end_date' => date('Ymd', strtotime('+30 days')) ]) ]) ); $metrics = $response->getCampaignForecastMetrics(); printf( "Estimated daily clicks: %s%s", $metrics->hasClicks() ? sprintf("%.2f", $metrics->getClicks()) : "'none'", PHP_EOL ); printf( "Estimated daily impressions: %s%s", $metrics->hasImpressions() ? sprintf("%.2f", $metrics->getImpressions()) : "'none'", PHP_EOL ); printf( "Estimated average CPC (micros): %s%s", $metrics->hasAverageCpcMicros() ? sprintf("%d", $metrics->getAverageCpcMicros()) : "'none'", PHP_EOL ); } /** * Creates the campaign to forecast. A campaign to forecast lets you try out various * configurations and keywords to find the best optimization for your future campaigns. Once * you've found the best campaign configuration, create a serving campaign in your Google Ads * account with similar values and keywords. For more details, see: * * https://support.google.com/google-ads/answer/3022575 * * @return CampaignToForecast the created campaign to forecast */ private static function createCampaignToForecast(): CampaignToForecast { // Creates a campaign to forecast. $campaignToForecast = new CampaignToForecast([ 'keyword_plan_network' => KeywordPlanNetwork::GOOGLE_SEARCH, 'bidding_strategy' => new CampaignBiddingStrategy([ 'manual_cpc_bidding_strategy' => new ManualCpcBiddingStrategy([ 'max_cpc_bid_micros' => 1_000_000 ]) ]), // See https://developers.google.com/google-ads/api/reference/data/geotargets for the // list of geo target IDs. 'geo_modifiers' => [ new CriterionBidModifier([ // Geo target constant 2840 is for USA. 'geo_target_constant' => ResourceNames::forGeoTargetConstant(2840) ]) ], // See // https://developers.google.com/google-ads/api/reference/data/codes-formats#languages // for the list of language criteria IDs. Language constant 1000 is for English. 'language_constants' => [ResourceNames::forLanguageConstant(1000)], ]); // Creates forecast ad group based on themes such as creative relevance, product category, // or cost per click. $forecastAdGroup = new ForecastAdGroup([ 'biddable_keywords' => [ new BiddableKeyword([ 'max_cpc_bid_micros' => 2_500_000, 'keyword' => new KeywordInfo([ 'text' => 'mars cruise', 'match_type' => KeywordMatchType::BROAD ]) ]), new BiddableKeyword([ 'max_cpc_bid_micros' => 1_500_000, 'keyword' => new KeywordInfo([ 'text' => 'cheap cruise', 'match_type' => KeywordMatchType::PHRASE ]) ]), new BiddableKeyword([ 'max_cpc_bid_micros' => 1_990_000, 'keyword' => new KeywordInfo([ 'text' => 'jupiter cruise', 'match_type' => KeywordMatchType::BROAD ]) ]) ], 'negative_keywords' => [ new KeywordInfo([ 'text' => 'moon walk', 'match_type' => KeywordMatchType::BROAD ]) ] ]); $campaignToForecast->setAdGroups([$forecastAdGroup]); return $campaignToForecast; }
Python
def main(client: GoogleAdsClient, customer_id: str): """The main method that creates all necessary entities for the example. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. """ campaign_to_forecast: CampaignToForecast = create_campaign_to_forecast( client ) generate_forecast_metrics(client, customer_id, campaign_to_forecast) def create_campaign_to_forecast(client: GoogleAdsClient) -> CampaignToForecast: """Creates the campaign to forecast. A campaign to forecast lets you try out various configurations and keywords to find the best optimization for your future campaigns. Once you've found the best campaign configuration, create a serving campaign in your Google Ads account with similar values and keywords. For more details, see: https://support.google.com/google-ads/answer/3022575 Args: client: an initialized GoogleAdsClient instance. Returns: An CampaignToForecast instance. """ googleads_service: GoogleAdsServiceClient = client.get_service( "GoogleAdsService" ) # Create a campaign to forecast. campaign_to_forecast: CampaignToForecast = client.get_type( "CampaignToForecast" ) # Set the bidding strategy. campaign_to_forecast.bidding_strategy.manual_cpc_bidding_strategy.max_cpc_bid_micros = ( 1000000 ) # For the list of geo target IDs, see: # https://developers.google.com/google-ads/api/reference/data/geotargets # Geo target constant 2840 is for USA. campaign_to_forecast.geo_target_constants.append( googleads_service.geo_target_constant_path("2840") ) # For the list of language criteria IDs, see: # https://developers.google.com/google-ads/api/reference/data/codes-formats#languages # Language criteria 1000 is for English. campaign_to_forecast.language_constants.append( googleads_service.language_constant_path("1000") ) # Create forecast ad groups based on themes such as creative relevance, # product category, or cost per click. forecast_ad_group: ForecastAdGroup = client.get_type("ForecastAdGroup") # Create and configure three KeywordInfo instances. keyword_1: KeywordInfo = client.get_type("KeywordInfo") keyword_1.text = "mars cruise" keyword_1.match_type = client.enums.KeywordMatchTypeEnum.BROAD keyword_2: KeywordInfo = client.get_type("KeywordInfo") keyword_2.text = "cheap cruise" keyword_2.match_type = client.enums.KeywordMatchTypeEnum.PHRASE keyword_3: KeywordInfo = client.get_type("KeywordInfo") keyword_3.text = "cheap cruise" keyword_3.match_type = client.enums.KeywordMatchTypeEnum.EXACT # Add the keywords to the forecast ad group. forecast_ad_group.keywords.extend([keyword_1, keyword_2, keyword_3]) campaign_to_forecast.ad_groups.append(forecast_ad_group) return campaign_to_forecast def generate_forecast_metrics( client: GoogleAdsClient, customer_id: str, campaign_to_forecast: CampaignToForecast, ): """Generates forecast metrics and prints the results. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. campaign_to_forecast: a CampaignToForecast to generate metrics for. """ keyword_plan_idea_service: KeywordPlanIdeaServiceClient = ( client.get_service("KeywordPlanIdeaService") ) request: GenerateKeywordForecastMetricsRequest = client.get_type( "GenerateKeywordForecastMetricsRequest" ) request.customer_id = customer_id request.campaign = campaign_to_forecast # Set the forecast range. Repeat forecasts with different horizons to get a # holistic picture. # Set the forecast start date to tomorrow. tomorrow = datetime.now() + timedelta(days=1) request.forecast_period.start_date = tomorrow.strftime("%Y-%m-%d") # Set the forecast end date to 30 days from today. thirty_days_from_now = datetime.now() + timedelta(days=30) request.forecast_period.end_date = thirty_days_from_now.strftime("%Y-%m-%d") response: GenerateKeywordForecastMetricsResponse = ( keyword_plan_idea_service.generate_keyword_forecast_metrics( request=request ) ) metrics = response.campaign_forecast_metrics print(f"Estimated daily clicks: {metrics.clicks}") print(f"Estimated daily average CPC: {metrics.average_cpc_micros}")
Ruby
def generate_forecast_metrics(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new campaign_to_forecast = create_campaign_to_forecast(client) # Generates forecast metrics and prints the results. keyword_plan_idea_service = client.service.keyword_plan_idea # Set the forecast range. Repeat forecasts with different horizons to get a # holistic picture. forecast_period = client.resource.date_range do |p| tomorrow = Date.today + 1 p.start_date = tomorrow.strftime("%Y-%m-%d") # Set the forecast end date to 30 days from today. thirty_days_from_now = Date.today + 30 p.end_date = thirty_days_from_now.strftime("%Y-%m-%d") end response = keyword_plan_idea_service.generate_keyword_forecast_metrics( customer_id: customer_id, campaign: campaign_to_forecast, forecast_period: forecast_period, ) metrics = response.campaign_forecast_metrics puts "Estimated daily clicks: #{metrics.clicks}" puts "Estimated daily impressions: #{metrics.impressions}" puts "Estimated daily average CPC: #{metrics.average_cpc_micros}" end def create_campaign_to_forecast(client) campaign_to_forecast = client.resource.campaign_to_forecast do |c| c.keyword_plan_network = :GOOGLE_SEARCH c.bidding_strategy = client.resource.campaign_bidding_strategy do |bs| bs.manual_cpc_bidding_strategy = client.resource.manual_cpc_bidding_strategy do |mbs| mbs.max_cpc_bid_micros = 1000000 end end criterion_bid_modifier = client.resource.criterion_bid_modifier # For the list of geo target IDs, see: # https://developers.google.com/google-ads/api/reference/data/geotargets # Geo target constant 2840 is for USA. criterion_bid_modifier.geo_target_constant = client.path.geo_target_constant("2840") c.geo_modifiers << criterion_bid_modifier # For the list of language criteria IDs, see: # https://developers.google.com/google-ads/api/reference/data/codes-formats#languages # Language criteria 1000 is for English. language_constant = client.path.language_constant("1000") # English c.language_constants << language_constant # Create forecast ad groups based on themes such as creative relevance, # product category, or cost per click. forecast_ad_group = client.resource.forecast_ad_group biddable_keyword_1 = client.resource.biddable_keyword do |bk| bk.max_cpc_bid_micros = 1500000 bk.keyword = client.resource.keyword_info do |k| k.text = "mars cruise" k.match_type = :BROAD end end biddable_keyword_2 = client.resource.biddable_keyword do |bk| bk.max_cpc_bid_micros = 2500000 bk.keyword = client.resource.keyword_info do |k| k.text = "cheap cruise" k.match_type = :PHRASE end end biddable_keyword_3 = client.resource.biddable_keyword do |bk| bk.max_cpc_bid_micros = 1990000 bk.keyword = client.resource.keyword_info do |k| k.text = "cheap cruise" k.match_type = :EXACT end end forecast_ad_group.biddable_keywords << biddable_keyword_1 forecast_ad_group.biddable_keywords << biddable_keyword_2 forecast_ad_group.biddable_keywords << biddable_keyword_3 # Create and configure a negative keyword, then add it to the forecast ad # group. negative_keyword = client.resource.keyword_info do |k| k.text = "moon walk" k.match_type = :BROAD end forecast_ad_group.negative_keywords << negative_keyword c.ad_groups << forecast_ad_group end return campaign_to_forecast end
Perl
sub generate_forecast_metrics { my ($api_client, $customer_id) = @_; my $campaign_to_forecast = create_campaign_to_forecast(); my $keyword_forecast_metrics_response = $api_client->KeywordPlanIdeaService()->generate_keyword_forecast_metrics({ customerId => $customer_id, campaign => $campaign_to_forecast, # Set the forecast range. Repeat forecasts with different horizons # to get a holistic picture. forecastPeriod => Google::Ads::GoogleAds::V26::Common::DateRange->new({ # Set the forecast start date to tomorrow. startDate => strftime("%Y-%m-%d", localtime(time + 60 * 60 * 24)), # Set the forecast end date to 30 days from today. endDate => strftime("%Y-%m-%d", localtime(time + 60 * 60 * 24 * 30))}) }); my $metrics = $keyword_forecast_metrics_response->{campaignForecastMetrics}; printf "Estimated daily clicks: %s.\n", defined $metrics->{clicks} ? $metrics->{clicks} : "undef"; printf "Estimated average cpc (micros): %s.\n\n", defined $metrics->{averageCpcMicros} ? $metrics->{averageCpcMicros} : "undef"; return 1; } # Creates the campaign to forecast. A campaign to forecast lets you try out # various configuration and keywords to find the best optimization for your # future campaigns. Once you've found the best campaign configuration, # create a serving campaign in your Google Ads account with similar values # and keywords. For more details, see: # https://support.google.com/google-ads/answer/3022575 sub create_campaign_to_forecast { my ($api_client) = @_; # Create a campaign to forecast. my $campaign_to_forecast = Google::Ads::GoogleAds::V26::Services::KeywordPlanIdeaService::CampaignToForecast ->new(); # Set the bidding strategy. $campaign_to_forecast->{biddingStrategy}->{manualCpcBiddingStrategy} = Google::Ads::GoogleAds::V26::Services::KeywordPlanIdeaService::ManualCpcBiddingStrategy ->new({maxCpcBidMicros => 1000000}); # See https://developers.google.com/google-ads/api/reference/data/geotargets # for the list of geo target IDs. # Geo target constant 2840 is for USA. $campaign_to_forecast->{geoTargetConstants} = [ Google::Ads::GoogleAds::V26::Utils::ResourceNames::geo_target_constant( 2840)]; # See https://developers.google.com/google-ads/api/reference/data/codes-formats#languages # for the list of language criteria IDs. $campaign_to_forecast->{languageConstants} = [ # Language criteria 1000 is for English. Google::Ads::GoogleAds::V26::Utils::ResourceNames::language_constant(1000)]; # Create forecast ad groups based on themes such as creative relevance, # product category, or cost per click. $campaign_to_forecast->{adGroups} = [ Google::Ads::GoogleAds::V26::Services::KeywordPlanIdeaService::ForecastAdGroup ->new({ keywords => [ Google::Ads::GoogleAds::V26::Common::KeywordInfo->new({ text => "mars cruise", matchType => 'BROAD' } ), Google::Ads::GoogleAds::V26::Common::KeywordInfo->new({ text => "cheap cruise", matchType => 'PHRASE' } ), Google::Ads::GoogleAds::V26::Common::KeywordInfo->new({ text => "jupiter cruise", matchType => 'EXACT' })]})]; return $campaign_to_forecast; }
curl
UI에 매핑
다음 표는 KeywordPlanIdeaService.GenerateKeywordForecastMetrics 매개변수를 Google Ads UI의 키워드 플래너에 매핑합니다.
| UI의 키워드 플래너 | Google Ads API |
|---|---|
| 키워드 입력 |
|
| 위치 | |
| 언어 | CampaignToForecast.language_constants |
| 일일 예산 | |
| CPC 입찰가 | |
| 기간 | GenerateKeywordForecastMetricsRequest.forecast_period |