оцінка трафіку

  1. приклад використання
  2. Як отримати оцінку трафіку
  3. підготовка запиту
  4. Java
  5. Java
  6. Java
  7. Java
  8. Java
  9. Як обчислити загальну розрахункову цінність конверсій
  10. Порівняння з Планувальником ключових слів
  11. Приклади повного коду

служба TrafficEstimatorService в AdWords API дозволяє отримувати для запропонованих та існуючих кампаній, груп оголошень і ключових слів такі оціночні дані, як:

  • середня ціна за клік;
  • середня позиція;
  • CTR;
  • число кліків в день;
  • кількість показів в день;
  • Загальна вартість.

Ви можете моделювати запропоновані кампанії і групи оголошень , Змінюючи різні критерії кампанії, налаштування розміщення, денний бюджет і максимальні ціни за клік.

Крім того, можна отримати оцінку трафіку існуючої кампанії або групи оголошень, вказавши її ідентифікатор ( campaignId або adGroupId ).

приклад використання

Створюючи нову кампанію і групу оголошень або змінюючи існуючі кампанії, ви можете використовувати службу TrafficEstimatorService, щоб оцінити майбутній трафік і зрозуміти, наскільки оптимальні запропоновані ключові слова і налаштування. Наприклад, можна змінити ключові слова, які призводять до зниження CTR.

За допомогою цієї служби також можна отримати прогноз ефективності для кліків і витрат, як в Завдання за розкладом ключових слів AdWords .

Крім того, служба TargetingIdeaService допоможе вам підібрати додаткові варіанти ключових слів для групи оголошень. Перш ніж застосувати ці варіанти, оцініть їх ефективність за допомогою служби TrafficEstimatorService. Детальніше про це - в керівництві Підбір варіантів таргетингу .

Як отримати оцінку трафіку

Введення даних в TrafficEstimatorService виконується через поля селектора TrafficEstimatorSelector .

Щоб отримати оцінку трафіку, потрібно або вказати існуючі кампанії та групи оголошень, або налаштувати запропоновані кампанії та групи оголошень за допомогою запитів CampaignEstimateRequest і AdGroupEstimateRequest .

У запиті AdGroupEstimateRequest необхідно також вказати запит KeywordEstimateRequest для ключових слів, за якими потрібно отримати оцінку.

Нижче наведено приклад отримання оцінки трафіку за допомогою TrafficEstimatorService.

підготовка запиту

Вам потрібно створити повний запит TrafficEstimatorSelector в наступній послідовності:

  1. KeywordEstimateRequest
  2. AdGroupEstimateRequest
  3. CampaignEstimateRequest

Спочатку створіть запит KeywordEstimateRequest. Для кожного ключового слова потрібно окремий запит KeywordEstimateRequest.

Java

List <Keyword> keywords = new ArrayList <Keyword> (); Keyword marsCruiseKeyword = new Keyword (); marsCruiseKeyword.setText ( "mars cruise"); marsCruiseKeyword.setMatchType (KeywordMatchType.BROAD); keywords.add (marsCruiseKeyword); Keyword cheapCruiseKeyword = new Keyword (); cheapCruiseKeyword.setText ( "cheap cruise"); cheapCruiseKeyword.setMatchType (KeywordMatchType.PHRASE); keywords.add (cheapCruiseKeyword); Keyword cruiseKeyword = new Keyword (); cruiseKeyword.setText ( "cruise"); cruiseKeyword.setMatchType (KeywordMatchType.EXACT); keywords.add (cruiseKeyword); // Create a keyword estimate request for each keyword. List <KeywordEstimateRequest> keywordEstimateRequests = new ArrayList <KeywordEstimateRequest> (); for (Keyword keyword: keywords) {KeywordEstimateRequest keywordEstimateRequest = new KeywordEstimateRequest (); keywordEstimateRequest.setKeyword (keyword); keywordEstimateRequests.add (keywordEstimateRequest); } // Add a negative keyword to the traffic estimate. KeywordEstimateRequest negativeKeywordEstimateRequest = new KeywordEstimateRequest (); negativeKeywordEstimateRequest.setKeyword (new Keyword (null, null, null, "hiking tour", KeywordMatchType.BROAD)); negativeKeywordEstimateRequest.setIsNegative (true); keywordEstimateRequests.add (negativeKeywordEstimateRequest);

C #

Keyword keyword1 = new Keyword (); keyword1.text = "mars cruise"; keyword1.matchType = KeywordMatchType.BROAD; Keyword keyword2 = new Keyword (); keyword2.text = "cheap cruise"; keyword2.matchType = KeywordMatchType.PHRASE; Keyword keyword3 = new Keyword (); keyword3.text = "cruise"; keyword3.matchType = KeywordMatchType.EXACT; Keyword [] keywords = new Keyword [] {keyword1, keyword2, keyword3}; // Create a keyword estimate request for each keyword. List <KeywordEstimateRequest> keywordEstimateRequests = new List <KeywordEstimateRequest> (); foreach (Keyword keyword in keywords) {KeywordEstimateRequest keywordEstimateRequest = new KeywordEstimateRequest (); keywordEstimateRequest.keyword = keyword; keywordEstimateRequests.Add (keywordEstimateRequest); } // Create negative keywords. Keyword negativeKeyword1 = new Keyword (); negativeKeyword1.text = "moon walk"; negativeKeyword1.matchType = KeywordMatchType.BROAD; KeywordEstimateRequest negativeKeywordEstimateRequest = new KeywordEstimateRequest (); negativeKeywordEstimateRequest.keyword = negativeKeyword1; negativeKeywordEstimateRequest.isNegative = true; keywordEstimateRequests.Add (negativeKeywordEstimateRequest);

Python

keywords = [{ 'text': 'mars cruise', 'matchType': 'BROAD'}, { 'text': 'cheap cruise', 'matchType': 'PHRASE'}, { 'text': 'cruise', 'matchType': 'EXACT'}] negative_keywords = [{ 'text': 'moon walk', 'matchType': 'BROAD'}] keyword_estimate_requests = [] for keyword in keywords: keyword_estimate_requests.append ({ 'keyword': { 'xsi_type': 'Keyword', 'matchType': keyword [ 'matchType'], 'text': keyword [ 'text']}}) for keyword in negative_keywords: keyword_estimate_requests.append ({ 'keyword': { 'xsi_type' : 'Keyword', 'matchType': keyword [ 'matchType'], 'text': keyword [ 'text']}, 'isNegative': 'true'})

PHP

// Create keywords. Up to 2000 keywords can be passed in a single request. $ Keywords = []; $ Keyword = new Keyword (); $ Keyword-> setText ( 'mars cruise'); $ Keyword-> setMatchType (KeywordMatchType :: BROAD); $ Keywords [] = $ keyword; $ Keyword = new Keyword (); $ Keyword-> setText ( 'cheap cruise'); $ Keyword-> setMatchType (KeywordMatchType :: PHRASE); $ Keywords [] = $ keyword; $ Keyword = new Keyword (); $ Keyword-> setText ( 'cruise'); $ Keyword-> setMatchType (KeywordMatchType :: EXACT); $ Keywords [] = $ keyword; // Create a keyword estimate request for each keyword. $ KeywordEstimateRequests = []; foreach ($ keywords as $ keyword) {$ keywordEstimateRequest = new KeywordEstimateRequest (); $ KeywordEstimateRequest-> setKeyword ($ keyword); $ KeywordEstimateRequests [] = $ keywordEstimateRequest; } // Negative keywords do not return estimates, but adjust the estimates of the // other keywords in the hypothetical ad group. $ NegativeKeywords = []; $ Keyword = new Keyword (); $ Keyword-> setText ( 'moon walk'); $ Keyword-> setMatchType (KeywordMatchType :: BROAD); $ NegativeKeywords [] = $ keyword; // Create a keyword estimate request for each negative keyword. foreach ($ negativeKeywords as $ negativeKeyword) {$ keywordEstimateRequest = new KeywordEstimateRequest (); $ KeywordEstimateRequest-> setKeyword ($ negativeKeyword); $ KeywordEstimateRequest-> setIsNegative (true); $ KeywordEstimateRequests [] = $ keywordEstimateRequest; }

Perl

# Create keywords. Refer to the TrafficEstimatorService documentation for # the maximum number of keywords that can be passed in a single request. # Https://developers.google.com/adwords/api/docs/reference/latest/TrafficEstimatorService my @keywords = (Google :: Ads :: AdWords :: v201802 :: Keyword-> new ({text => "mars cruise ", matchType =>" BROAD "}), Google :: Ads :: AdWords :: v201802 :: Keyword-> new ({text =>" cheap cruise ", matchType =>" PHRASE "}), Google :: Ads :: AdWords :: v201802 :: Keyword-> new ({text => "cruise", matchType => "EXACT"})); my @negative_keywords = (Google :: Ads :: AdWords :: v201802 :: Keyword-> new ({text => "moon walk", matchType => "BROAD"})); # Create a keyword estimate request for each keyword. my @keyword_estimate_requests; foreach my $ keyword (@keywords) {push @keyword_estimate_requests, Google :: Ads :: AdWords :: v201802 :: KeywordEstimateRequest-> new ({keyword => $ keyword,}); } Foreach my $ keyword (@negative_keywords) {push @keyword_estimate_requests, Google :: Ads :: AdWords :: v201802 :: KeywordEstimateRequest-> new ({keyword => $ keyword, isNegative => 1}); }

Ruby

# Create keywords. Up to 2000 keywords can be passed in a single request. keywords = [# The 'xsi_type' field allows you to specify the xsi: type of the object # being created. It's only necessary when you must provide an explicit # type that the client library can not infer. {: Xsi_type => 'Keyword',: text => 'mars cruise',: match_type => 'BROAD'}, {: xsi_type => 'Keyword',: text => 'cheap cruise',: match_type => ' PHRASE '}, {: xsi_type =>' Keyword ',: text =>' cruise ',: match_type =>' EXACT '}, {: xsi_type =>' Keyword ',: text =>' moon walk ',: match_type => 'BROAD'}] # Create a keyword estimate request for each keyword. keyword_requests = keywords.map {| keyword | {: Keyword => keyword}} # Negative keywords do not return estimates, but adjust the estimates of the # other keywords in the hypothetical ad group. To specify a negative keyword # set the is_negative field to true. keyword_requests [3] [: is_negative] = true

Як списку ключових слів, переданих в TrafficEstimatorService, можна використовувати вже існуючі або нові ключові слова, отримані з TargetingIdeaService .

Потім створіть запит AdGroupEstimateRequest. Як і в разі ключових слів, можна використовувати список груп оголошень. Цей приклад демонструє, як отримати оцінку трафіку для однієї групи.

Java

// Create ad group estimate requests. List <AdGroupEstimateRequest> adGroupEstimateRequests = new ArrayList <AdGroupEstimateRequest> (); AdGroupEstimateRequest adGroupEstimateRequest = new AdGroupEstimateRequest (); adGroupEstimateRequest.setKeywordEstimateRequests (keywordEstimateRequests .toArray (new KeywordEstimateRequest [] {})); adGroupEstimateRequest.setMaxCpc (new Money (null, 1000000L)); adGroupEstimateRequests.add (adGroupEstimateRequest);

C #

// Create ad group estimate requests. AdGroupEstimateRequest adGroupEstimateRequest = new AdGroupEstimateRequest (); adGroupEstimateRequest.keywordEstimateRequests = keywordEstimateRequests.ToArray (); adGroupEstimateRequest.maxCpc = new Money (); adGroupEstimateRequest.maxCpc.microAmount = 1000000;

Python

# Create ad group estimate requests. adgroup_estimate_requests = [{ 'keywordEstimateRequests': keyword_estimate_requests, 'maxCpc': { 'xsi_type': 'Money', 'microAmount': '1000000'}}]

PHP

// Create ad group estimate requests. $ AdGroupEstimateRequest = new AdGroupEstimateRequest (); $ AdGroupEstimateRequest-> setKeywordEstimateRequests ($ keywordEstimateRequests); $ Money = new Money (); $ Money-> setMicroAmount (1000000); $ AdGroupEstimateRequest-> setMaxCpc ($ money);

Perl

# Create ad group estimate requests. my $ ad_group_estimate_request = Google :: Ads :: AdWords :: v201802 :: AdGroupEstimateRequest-> new ({keywordEstimateRequests => \ @keyword_estimate_requests, maxCpc => Google :: Ads :: AdWords :: v201802 :: Money-> new ({ microAmount => 1000000})});

Ruby

# Create ad group estimate requests. ad_group_request = {: keyword_estimate_requests => keyword_requests,: max_cpc => {: micro_amount => 1000000}}

Тепер створіть запит CampaignEstimateRequest. Щоб отримати більш точні результати, задайте в запиті CampaignEstimateRequest додаткові критерії кампанії, наприклад мову і місце розташування. У запитах CampaignEstimateRequest і AdGroupEstimateRequest також можна вказати ідентифікатори існуючих кампаній і груп оголошень, щоб завантажити статистику за попередні періоди.

Java

// Create campaign estimate requests. List <CampaignEstimateRequest> campaignEstimateRequests = new ArrayList <CampaignEstimateRequest> (); CampaignEstimateRequest campaignEstimateRequest = new CampaignEstimateRequest (); campaignEstimateRequest.setAdGroupEstimateRequests (adGroupEstimateRequests .toArray (new AdGroupEstimateRequest [] {})); Location unitedStates = new Location (); unitedStates.setId (2840L); Language english = new Language (); english.setId (1000L); campaignEstimateRequest.setCriteria (new Criterion [] {unitedStates, english}); campaignEstimateRequests.add (campaignEstimateRequest);

C #

// Create campaign estimate requests. CampaignEstimateRequest campaignEstimateRequest = new CampaignEstimateRequest (); campaignEstimateRequest.adGroupEstimateRequests = new AdGroupEstimateRequest [] {adGroupEstimateRequest}; // Optional: Set additional criteria for filtering estimates. // See http://code.google.com/apis/adwords/docs/appendix/countrycodes.html // for a detailed list of country codes. Location countryCriterion = new Location (); countryCriterion.id = 2840; // US // See http://code.google.com/apis/adwords/docs/appendix/languagecodes.html // for a detailed list of language codes. Language languageCriterion = new Language (); languageCriterion.id = 1000; // en campaignEstimateRequest.criteria = new Criterion [] {countryCriterion, languageCriterion};

Python

# Create campaign estimate requests. campaign_estimate_requests = [{ 'adGroupEstimateRequests': adgroup_estimate_requests, 'criteria': [{ 'xsi_type': 'Location', 'id': '2840' # United States. }, { 'Xsi_type': 'Language', 'id': '1000' # English. }],}]

PHP

// Create campaign estimate requests. $ CampaignEstimateRequest = new CampaignEstimateRequest (); $ CampaignEstimateRequest-> setAdGroupEstimateRequests ([$ adGroupEstimateRequest]); // Optional: Set additional criteria for filtering estimates. // See http://code.google.com/apis/adwords/docs/appendix/countrycodes.html // for a detailed list of country codes. // Set targeting criteria. Only locations and languages ​​are supported. $ UnitedStates = new Location (); $ UnitedStates-> setId (2840); // See http://code.google.com/apis/adwords/docs/appendix/languagecodes.html // for a detailed list of language codes. $ English = new Language (); $ English-> setId (1000); $ CampaignEstimateRequest-> setCriteria ([$ unitedStates, $ english]);

Perl

my $ location = Google :: Ads :: AdWords :: v201802 :: Location-> new ({id => "2840" # US - see http://goo.gl/rlrFr}); my $ language = Google :: Ads :: AdWords :: v201802 :: Language-> new ({id => "1000" # en - see http://goo.gl/LvMmS}); # Create campaign estimate requests. my $ campaign_estimate_request = Google :: Ads :: AdWords :: v201802 :: CampaignEstimateRequest-> new ({adGroupEstimateRequests => [$ ad_group_estimate_request], criteria => [$ location, $ language]});

Ruby

# Create campaign estimate requests. campaign_request = {: ad_group_estimate_requests => [ad_group_request], # Set targeting criteria. Only locations and languages ​​are supported. : Criteria => [{: xsi_type => 'Location',: id => 2840}, # United States {: xsi_type => 'Language',: id => 1000} # English]}

І нарешті, налаштуйте селектор TrafficEstimatorSelector. Потім його можна буде використовувати в операції get () для отримання оцінки трафіку, укладеної в об'єкт TrafficEstimatorResult . Можна запитувати оцінку трафіку для списку кампаній з сегментацією по платформах за допомогою властивості platformEstimateRequested .

Java

// Create selector. TrafficEstimatorSelector selector = new TrafficEstimatorSelector (); selector.setCampaignEstimateRequests (campaignEstimateRequests .toArray (new CampaignEstimateRequest [] {})); // Optional: Request a list of campaign level estimates segmented by platform. selector.setPlatformEstimateRequested (true); // Get traffic estimates. TrafficEstimatorResult result = trafficEstimatorService.get (selector);

C #

// Create the selector. TrafficEstimatorSelector selector = new TrafficEstimatorSelector () {campaignEstimateRequests = new CampaignEstimateRequest [] {campaignEstimateRequest}, // Optional: Request a list of campaign level estimates segmented by platform. platformEstimateRequested = true}; // Get traffic estimates. TrafficEstimatorResult result = trafficEstimatorService.get (selector);

Python

# Create the selector. selector = { 'campaignEstimateRequests': campaign_estimate_requests,} # Optional: Request a list of campaign-level estimates segmented by # platform. selector [ 'platformEstimateRequested'] = True # Get traffic estimates. estimates = traffic_estimator_service.get (selector)

PHP

// Create selector. $ Selector = new TrafficEstimatorSelector (); $ Selector-> setCampaignEstimateRequests ([$ campaignEstimateRequest]); // Optional: Request a list of campaign level estimates segmented by // platform. $ Selector-> setPlatformEstimateRequested (true); $ Result = $ trafficEstimatorService-> get ($ selector);

Perl

# Optional: Request a list of campaign level estimates segmented by platform. my $ platform_estimate_request = "1"; # Create selector. my $ selector = Google :: Ads :: AdWords :: v201802 :: TrafficEstimatorSelector-> new ({campaignEstimateRequests => [$ campaign_estimate_request], platformEstimateRequested => [$ platform_estimate_request]}); # Get traffic estimates. my $ result = $ client-> TrafficEstimatorService () -> get ({selector => $ selector});

Ruby

# Create a selector. selector = {: campaign_estimate_requests => [campaign_request], # Optional: Request a list of campaign level estimates segmented by # platform. : Platform_estimate_requested => true} # Execute the request. response = traffic_estimator_srv.get (selector)

Обробка відповіді

Кожен об'єкт CampaignEstimateRequest в селекторі генерує відповідний об'єкт CampaignEstimate в TrafficEstimatorResult. Аналогічним чином кожному об'єкту AdGroupEstimateRequest відповідає об'єкт AdGroupEstimate в отриманих результатах. Якщо ви запросили оцінку на рівні кампаній з сегментацією по платформах, її можна отримати через властивість platformEstimates об'єкта CampaignEstimate.

Java

// Display traffic estimates. if (result! = null && result.getCampaignEstimates ()! = null && result.getCampaignEstimates (). length> 0) {CampaignEstimate campaignEstimate = result.getCampaignEstimates () [0]; // Display the campaign level estimates segmented by platform. if (campaignEstimate.getPlatformEstimates ()! = null) {for (PlatformCampaignEstimate platformEstimate: campaignEstimate.getPlatformEstimates ()) {String platformMessage = String.format ( "Results for the platform with ID% d and name '% s':% n" , platformEstimate.getPlatform (). getId (), platformEstimate.getPlatform (). getPlatformName ()); displayMeanEstimates (platformMessage, platformEstimate.getMinEstimate (), platformEstimate.getMaxEstimate ()); }} // Display the keyword estimates. KeywordEstimate [] keywordEstimates = campaignEstimate.getAdGroupEstimates () [0] .getKeywordEstimates (); for (int i = 0; i <keywordEstimates.length; i ++) {if (Boolean.TRUE.equals (keywordEstimateRequests.get (i) .getIsNegative ())) {continue; } Keyword keyword = keywordEstimateRequests.get (i) .getKeyword (); KeywordEstimate keywordEstimate = keywordEstimates [i]; String keywordMessage = String.format ( "Results for the keyword with text '% s' and match type '% s':% n", keyword.getText (), keyword.getMatchType ()); displayMeanEstimates (keywordMessage, keywordEstimate.getMin (), keywordEstimate.getMax ()); }} Else {System.out.println ( "No traffic estimates were returned."); }

C #

// Display traffic estimates. if (result! = null && result.campaignEstimates! = null && result.campaignEstimates.Length> 0) {CampaignEstimate campaignEstimate = result.campaignEstimates [0]; // Display the campaign level estimates segmented by platform. if (campaignEstimate.platformEstimates! = null) {foreach (PlatformCampaignEstimate platformEstimate in campaignEstimate.platformEstimates) {string platformMessage = string.Format ( "Results for the platform with ID:" + "{0} and name: {1}.", platformEstimate.platform.id, platformEstimate.platform.platformName); DisplayMeanEstimates (platformMessage, platformEstimate.minEstimate, platformEstimate.maxEstimate); }} // Display the keyword estimates. if (campaignEstimate.adGroupEstimates! = null && campaignEstimate.adGroupEstimates.Length> 0) {AdGroupEstimate adGroupEstimate = campaignEstimate.adGroupEstimates [0]; if (adGroupEstimate.keywordEstimates! = null) {for (int i = 0; i <adGroupEstimate.keywordEstimates.Length; i ++) {Keyword keyword = keywordEstimateRequests [i] .keyword; KeywordEstimate keywordEstimate = adGroupEstimate.keywordEstimates [i]; if (keywordEstimateRequests [i] .isNegative) {continue; } String kwdMessage = string.Format ( "Results for the keyword with text = '{0}'" + "and match type = '{1}':", keyword.text, keyword.matchType); DisplayMeanEstimates (kwdMessage, keywordEstimate.min, keywordEstimate.max); }}}} Else {Console.WriteLine ( "No traffic estimates were returned."); } TrafficEstimatorService.Close ();

Python

campaign_estimate = estimates [ 'campaignEstimates'] [0] # Display the campaign level estimates segmented by platform. if 'platformEstimates' in campaign_estimate: platform_template = ( 'Results for the platform with ID: "% d" and name:' ' "% s".') for platform_estimate in campaign_estimate [ 'platformEstimates']: platform = platform_estimate [ 'platform '] DisplayEstimate (platform_template% (platform [' id '], platform [' platformName ']), platform_estimate [' minEstimate '], platform_estimate [' maxEstimate ']) # Display the keyword estimates. if 'adGroupEstimates' in campaign_estimate: ad_group_estimate = campaign_estimate [ 'adGroupEstimates'] [0] if 'keywordEstimates' in ad_group_estimate: keyword_estimates = ad_group_estimate [ 'keywordEstimates'] keyword_template = ( 'Results for the keyword with text "% s" and match' 'type "% s":') keyword_estimates_and_requests = zip (keyword_estimates, keyword_estimate_requests) for keyword_tuple in keyword_estimates_and_requests: if keyword_tuple [1] .get ( 'isNegative', False): continue keyword = keyword_tuple [1] [ 'keyword'] keyword_estimate = keyword_tuple [0] DisplayEstimate (keyword_template% (keyword [ 'text'], keyword [ 'matchType']), keyword_estimate [ 'min'], keyword_estimate [ 'max'])

PHP

$ PlatformEstimates = $ result-> getCampaignEstimates () [0] -> getPlatformEstimates (); if ($ platformEstimates! == null) {foreach ($ platformEstimates as $ platformEstimate) {if ($ platformEstimate-> getMinEstimate ()! == null && $ platformEstimate-> getMaxEstimate ()! == null) {printf ( "Results for the platform with ID% d and name '% s': \ n ", $ platformEstimate-> getPlatform () -> getId (), $ platformEstimate-> getPlatform () -> getPlatformName ()); self :: printMeanEstimate ($ platformEstimate-> getMinEstimate (), $ platformEstimate-> getMaxEstimate ()); }}} $ KeywordEstimates = $ result-> getCampaignEstimates () [0] -> getAdGroupEstimates () [0] -> getKeywordEstimates (); $ EstimatesCount = count ($ keywordEstimates); for ($ i = 0; $ i <$ estimatesCount; $ i ++) {$ keywordEstimateRequest = $ keywordEstimateRequests [$ i]; // Skip negative keywords, since they do not return estimates. if ($ keywordEstimateRequest-> getIsNegative ()! == true) {$ keyword = $ keywordEstimateRequest-> getKeyword (); $ KeywordEstimate = $ keywordEstimates [$ i]; if ($ keywordEstimate-> getMin ()! == null && $ keywordEstimate-> getMax ()! == null) {// Print the mean of the min and max values. printf ( "Results for the keyword with text '% s' and match type '% s': \ n", $ keyword-> getText (), $ keyword-> getMatchType ()); self :: printMeanEstimate ($ keywordEstimate-> getMin (), $ keywordEstimate-> getMax ()); }}}

Perl

# Display traffic estimates. if ($ result) {my $ campaign_estimates = $ result-> get_campaignEstimates (); if ($ campaign_estimates) {# Display the campaign level estimates segmented by platform. foreach my $ campaign_estimate (@ {$ campaign_estimates}) {if ($ campaign_estimate-> get_platformEstimates ()) {foreach my $ platform_estimate (@ {$ campaign_estimate-> get_platformEstimates ()}) {my $ platform_message = sprintf ( "Results for the platform with ID:% d and name:% s ", $ platform_estimate-> get_platform () -> get_id (), $ platform_estimate-> get_platform () -> get_platformName ()); display_mean_estimates ($ platform_message, $ platform_estimate-> get_minEstimate (), $ platform_estimate-> get_maxEstimate ()); }} If ($ campaign_estimate-> get_adGroupEstimates ()) {my $ keyword_estimates = $ campaign_estimate-> get_adGroupEstimates () -> [0] -> get_keywordEstimates (); for (my $ i = 0; $ i <scalar (@ {$ keyword_estimates}); $ i ++) {# Negative keywords do not generate estimates but instead affect # estimates of your other keywords, the following condition just # skips printing out estimates for a negative keyword. if ($ keyword_estimate_requests [$ i] -> get_isNegative ()) {next; } My $ keyword = $ keyword_estimate_requests [$ i] -> get_keyword (); my $ keyword_estimate = $ keyword_estimates -> [$ i]; my $ keyword_message = sprintf "Results for the keyword with text '% s' and match type '% s': \ n", $ keyword-> get_text (), $ keyword-> get_matchType (); display_mean_estimates ($ keyword_message, $ keyword_estimate-> get_min (), $ keyword_estimate-> get_max ()); }}}}

Ruby

# Display traffic estimates. if response and response [: campaign_estimates] and response [: campaign_estimates] .size> 0 campaign_estimate = response [: campaign_estimates] .first unless campaign_estimate [: platform_estimates] .nil? # Display the campaign level estimates segmented by platform. campaign_estimate [: platform_estimates] .each do | platform_estimate | platform_message = ( 'Results for the platform with ID% d and name' + ' "% s":')% [platform_estimate [: platform] [: id], platform_estimate [: platform] [: platform_name]] display_mean_estimates (platform_message, platform_estimate [: min_estimate], platform_estimate [: max_estimate]) end end # Display the keyword estimates. keyword_estimates = campaign_estimate [: ad_group_estimates] .first [: keyword_estimates] keyword_estimates.each_with_index do | keyword_estimate, index | next if keyword_requests [index] [: is_negative] keyword = keyword_requests [index] [: keyword] keyword_message = ( 'Results for the keyword with text "% s" and match' + 'type "% s":')% [keyword [: text], keyword [: match_type]] display_mean_estimates (keyword_message, keyword_estimate [: min], keyword_estimate [: max]) end else puts 'No traffic estimates were returned.' end

Найважливіший і інформативний об'єкт в AdGroupEstimate - KeywordEstimate . У ньому вказані нижня ( min ) І верхня ( max ) Кордону оцінки трафіку ( StatsEstimate ) Для кожного ключового слова.

Значення, що повертаються є орієнтовними і не гарантують, що фактична ефективність буде перебувати в цих межах.

Як обчислити загальну розрахункову цінність конверсій

За допомогою API можна визначити загальну розрахункову цінність конверсій, як в Планувальнику ключових слів. Однак цей показник можна обчислити за даними статистики.

Estimated total conversions = Estimated clicks * Historical conversion rate Estimated total conversion value = Estimated total conversions * Conversion value

Порівняння з Планувальником ключових слів

За допомогою TrafficEstimatorService можна ввести або завантажити список ключових слів, щоб отримувати прогнози в Планувальнику ключових слів.

Для цього потрібно вказати наявну кампанію або створити імітацію кампанії з групами оголошень і ключовими словами.

У Планувальнику ключових слів можна вказувати денний бюджет і ставки. В AdWords API бюджет вказується в атрибуті dailyBudget об'єкта CampaignEstimateRequest , А ставка (maxCpc) - в об'єкті AdGroupEstimateRequest або KeywordEstimateRequest . У Планувальнику ключових слів ці параметри відображаються на сторінці результатів, однак в API вони повинні вказуватися в запиті.

Приклади повного коду

У кожній клієнтської бібліотеці в папці Optimization (Оптимізація) є приклад повного коду.

Nil?