{"id":11179,"date":"2021-10-26T09:23:56","date_gmt":"2021-10-26T09:23:56","guid":{"rendered":"https:\/\/docs_v3.dataforseo.com\/v3\/?page_id=11179"},"modified":"2025-12-18T15:51:23","modified_gmt":"2025-12-18T15:51:23","slug":"keywords_data-google-ads-ad_traffic_by_keywords-live","status":"publish","type":"page","link":"https:\/\/docs.dataforseo.com\/v3\/keywords_data-google-ads-ad_traffic_by_keywords-live\/","title":{"rendered":"keywords_data\/google_ads\/ad_traffic_by_keywords\/live"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text]<\/p>\n<h2>Setting\u00a0Live &#8216;Ad Traffic By Keywords&#8217; Tasks<\/h2>\n<p>&nbsp;<\/p>\n<h4 style=\"color: #f44336;\">Please note that starting from June 1, Google Ad Traffic By Keywords returns bulk data for the entire campaign (all keywords specified when setting a task). You can learn more in <a href=\"https:\/\/dataforseo.com\/update\/changes-google-ad-traffic-by-keywords\" target=\"_blank\" rel=\"noopener noreferrer\">this update<\/a>.<\/h4>\n<p>Note that Google Ads Keywords Data API is based on the latest version of the <a href=\"https:\/\/developers.google.com\/google-ads\/api\/docs\/start\" target=\"_blank\" rel=\"noopener noreferrer\">Google Ads API<\/a> that has replaced legacy Google AdWords API. If you\u2019re using <a href=\"\/v3\/keywords_data\/google\/overview\/?bash\" target=\"_blank\" rel=\"noopener noreferrer\">DataForSEO Google AdWords API<\/a>, you need to upgrade to <a href=\"\/v3\/keywords_data\/google_ads\/overview\/?bash\" target=\"_blank\" rel=\"noopener noreferrer\">DataForSEO Google Ads API<\/a>.<br \/>\n&nbsp;<br \/>\n<strong>Note: you can send no more than 12 requests per minute per account using Google Ads Live endpoints.<\/strong><\/p>\n<p>Using the Ad Traffic By Keywords endpoint, you can receive a set of stats for estimating impressions, CPC, and clicks. This data is really useful for estimating real demand for a specific keyword, as it is much more accurate than the regular search volume information, which shows the broad match estimation for a group of similar keywords.<\/p>\n<p>Note that Google Ads API provides account-specific results based on ad history, creatives already in the account, and other factors. Use high <code>bid<\/code> to level other factors.<\/p>\n<p>The values you receive in the response depend on the set forecasting time period. There are two ways to specify the necessary time period:<\/p>\n<p>1. By indicating the exact dates in the future using <code>date_from<\/code> and <code>date_to<\/code>;<br \/>\n2. By setting the <code>date_interval<\/code> to <code>next_week<\/code>, <code>next_month<\/code>, or <code>next_quarter<\/code><\/p>\n<p>If you do not use one of the ways above, the forecasting time period of <code>next_month<\/code> will be applied by default.<\/p>\n<p>[\/vc_column_text]    <div class=\"endpoint\">\n        <img decoding=\"async\" class=\"endpoint__icon\" src=\"https:\/\/docs.dataforseo.com\/v3\/wp-content\/themes\/dataforseo\/assets\/img\/icons\/checked-circle.svg\" alt=\"checked\">\n\n                    POST            <button class=\"btn-reset button-link copy-button\" data-href=\"https:\/\/api.dataforseo.com\/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live\">\n                https:\/\/api.dataforseo.com\/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live                <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n                    <use href=\"https:\/\/docs.dataforseo.com\/v3\/wp-content\/themes\/dataforseo\/assets\/img\/icons\/sprite.svg#layers\"><\/use>\n                <\/svg>\n            <\/button>\n            <\/div>\n    \t<article class=\"info-card info-card--yellow\">\n\t\t<header class=\"info-card__header\">\n\t\t\t<div class=\"info-card__icon\">\n\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n\t\t\t\t\t<use href=\"https:\/\/docs.dataforseo.com\/v3\/wp-content\/themes\/dataforseo\/assets\/img\/icons\/sprite.svg#label\"><\/use>\n\t\t\t\t<\/svg>\n\t\t\t<\/div>\n\t\t\t<div class=\"info-card__title\">Pricing<\/div>\n\t\t<\/header>\n\t\t<div class=\"info-card__content\">\n\t\t\t<p>Your account will be charged for each request.<br \/>\nThe cost can be calculated on the <a title=\"Pricing\" href=\"https:\/\/dataforseo.com\/pricing\/keywords-data\/google-ads\" target=\"_blank\" rel=\"noopener noreferrer\">Pricing<\/a> page.<\/p>\n\t\t<\/div>\n\t<\/article>\n\t[vc_column_text]All POST data should be sent in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/JSON\">JSON<\/a> format (UTF-8 encoding). The task setting is done using the POST method. When setting a task, you should send all task parameters in the task array of the generic POST array. You can send up to 2000 API calls per minute. <span style=\"font-weight: 400;\">Visit <\/span><a href=\"https:\/\/dataforseo.com\/help-center\/best-practices-for-handling-keywords-data-api-requests\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400;\">DataForSEO Help Center<\/span><\/a><span style=\"font-weight: 400;\"> to get practical tips for request handling depending on your Keyword Data API payload volume.<\/span><\/p>\n<p>You can send up to 1000 keywords in one\u00a0<code class=\"prettyprint\">keywords<\/code>\u00a0array. Our system will charge your account per request, no matter what number of keywords an array has, the price for 1 or 1000 keywords will be the same.<\/p>\n<p>Below you will find a detailed description of the fields you can use for setting a task.<\/p>\n<p><strong>Description of the fields for setting a task:<\/strong><\/p>\n<p>optional field<\/p>\n<table style=\"width: 100%; height: 1576px;\">\n<thead>\n<tr style=\"height: 24px;\">\n<th style=\"width: 12.4003%; height: 24px;\">Field name<\/th>\n<th style=\"width: 3.9884%; height: 24px;\">Type<\/th>\n<th style=\"width: 82.8862%; height: 24px;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 192px;\">\n<td style=\"width: 12.4003%; height: 192px;\"><code>keywords<\/code><\/td>\n<td style=\"width: 3.9884%; height: 192px;\">array<\/td>\n<td style=\"width: 82.8862%; height: 192px;\"><em>keywords<\/em><br \/>\n<strong>required field<\/strong><br \/>\nThe maximum number of keywords you can specify: 1000<br \/>\nThe maximum number of characters for each keyword: 80<br \/>\nThe maximum number of words for each keyword phrase: 10<br \/>\nthe keywords you specify will be converted to a lowercase format<br \/>\n<strong>Note:<\/strong> Google Ads may return no data for certain groups of keywords<br \/>\n<a href=\"https:\/\/dataforseo.com\/help-center\/no-search-volume-data-for-some-keywords\" target=\"_blank\" rel=\"noopener noreferrer\">visit our Help Center to learn more<\/a><br \/>\n<strong>Also note<\/strong> that Google Ads doesn&#8217;t allow using certain symbols and characters (e.g., UTF symbols, emojis), so you can&#8217;t use them when setting a task;<br \/>\nto learn more about which symbols and characters can be used, please refer to <a href=\"https:\/\/dataforseo.com\/help-center\/using-symbols-in-keywords-when-setting-a-google-ads-task\" target=\"_blank\" rel=\"noopener noreferrer\">this article<\/a><\/p>\n<p>learn more about rules and limitations of <code>keyword<\/code> and <code>keywords<\/code> fields in DataForSEO APIs in this <a href=\"https:\/\/dataforseo.com\/help-center\/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article<\/a><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 12.4003%; height: 48px;\"><code>bid<\/code><\/td>\n<td style=\"width: 3.9884%; height: 48px;\">integer<\/td>\n<td style=\"width: 82.8862%; height: 48px;\"><em>the maximum custom bid<\/em><br \/>\n<strong>required field<\/strong><br \/>\nthe collected data will be based on this value<br \/>\nit stands for the price you are willing to pay for an ad; the higher value you specify here, the higher values you will get in the returned metrics<br \/>\nlearn more in <a href=\"https:\/\/dataforseo.com\/help-center\/configuring-bid\">this help center article<\/a><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 12.4003%; height: 48px;\"><code>match<\/code><\/td>\n<td style=\"width: 3.9884%; height: 48px;\">string<\/td>\n<td style=\"width: 82.8862%; height: 48px;\"><em>keywords match-type<\/em><br \/>\n<strong>required field<\/strong><br \/>\ncan take the following values: <code>exact<\/code>, <code>broad<\/code>, <code>phrase<\/code><\/td>\n<\/tr>\n<tr style=\"height: 96px;\">\n<td style=\"width: 12.4003%; height: 77px;\"><code>search_partners<\/code><\/td>\n<td style=\"width: 3.91588%; height: 77px;\">boolean<\/td>\n<td style=\"width: 82.9587%; height: 77px;\"><em>include Google search partners<\/em><br \/>\noptional field<br \/>\nif you specify <code class=\"prettyprint\">true<\/code>, the results will be delivered for owned, operated, and syndicated networks across <a href=\"https:\/\/support.google.com\/google-ads\/answer\/1722047?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google and partner sites<\/a> that host Google search;<br \/>\ndefault value: <code>false<\/code> &#8211; results are returned for Google search sites<\/td>\n<\/tr>\n<tr style=\"height: 10px;\">\n<td style=\"width: 12.4003%; height: 10px;\"><code>location_name<\/code><\/td>\n<td style=\"width: 3.91588%; height: 10px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 10px;\"><em>full name of search engine location<\/em><br \/>\noptional field<br \/>\nif you do not indicate the location, you will receive worldwide results, i.e., for all available locations;<br \/>\n<strong>if you use this field, you don&#8217;t need to specify <code>location_code<\/code> or <code>location_coordinate<\/code><\/strong><br \/>\nyou can receive the list of available locations of the search engine with their <code>location_name<\/code> by making a separate request to <code>https:\/\/api.dataforseo.com\/v3\/keywords_data\/google_ads\/locations<\/code><br \/>\nexample:<br \/>\n<code class=\"long-string\">London,England,United Kingdom<\/code><\/td>\n<\/tr>\n<tr style=\"height: 192px;\">\n<td style=\"width: 12.4003%; height: 169px;\"><code>location_code<\/code><\/td>\n<td style=\"width: 3.91588%; height: 169px;\">integer<\/td>\n<td style=\"width: 82.9587%; height: 169px;\"><em>search engine location code<\/em><br \/>\noptional field<br \/>\nif you do not indicate the location, you will receive worldwide results, i.e., for all available locations;<br \/>\n<strong>if you use this field, you don&#8217;t need to specify <code>location_name<\/code> or <code>location_coordinate<\/code><\/strong>;<br \/>\nyou can receive the list of available locations of the search engines with their <code>location_code<\/code> by making a separate request to <code>https:\/\/api.dataforseo.com\/v3\/keywords_data\/google_ads\/locations<\/code><br \/>\nexample:<br \/>\n<code class=\"long-string\">2840<\/code><\/td>\n<\/tr>\n<tr style=\"height: 96px;\">\n<td style=\"width: 12.4003%; height: 96px;\"><code>location_coordinate<\/code><\/td>\n<td style=\"width: 3.91588%; height: 96px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 96px;\"><em>GPS coordinates of a location<\/em><br \/>\noptional field<br \/>\nif you do not indicate the location, you will receive worldwide results, i.e., for all available locations;<br \/>\n<strong>if you use this field, you don&#8217;t need to specify <code>location_name<\/code> or <code>location_code<\/code><\/strong>;<br \/>\n<code>location_coordinate<\/code> parameter should be specified in the <em>&#8220;latitude,longitude&#8221;<\/em> format;<br \/>\n<strong>the data will be provided for the country the specified coordinates belong to<\/strong>;<br \/>\nexample:<br \/>\n<code class=\"long-string\">52.6178549,-155.352142<\/code><\/td>\n<\/tr>\n<tr style=\"height: 168px;\">\n<td style=\"width: 12.4003%; height: 168px;\"><code>language_name<\/code><\/td>\n<td style=\"width: 3.91588%; height: 168px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 168px;\"><em>full name of search engine language<\/em><br \/>\noptional field<br \/>\nyou can receive the list of available languages of the search engine with their <code>language_name<\/code> by making a separate request to <code>https:\/\/api.dataforseo.com\/v3\/keywords_data\/google_ads\/languages<\/code><br \/>\nexample:<br \/>\n<code class=\"long-string\">English<\/code><\/td>\n<\/tr>\n<tr style=\"height: 192px;\">\n<td style=\"width: 12.4003%; height: 163px;\"><code>language_code<\/code><\/td>\n<td style=\"width: 3.91588%; height: 163px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 163px;\"><em>search engine language code<\/em><br \/>\noptional field<br \/>\nyou can receive the list of available languages of the search engine with their <code>language_code<\/code> by making a separate request to <code>https:\/\/api.dataforseo.com\/v3\/keywords_data\/google_ads\/languages<\/code><br \/>\nexample:<br \/>\n<code class=\"long-string\">en<\/code><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 12.4003%; height: 48px;\"><code>date_from<\/code><\/td>\n<td style=\"width: 3.91588%; height: 48px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 48px;\"><em>starting date of the forecasting time range<\/em><br \/>\nrequired field if you specify <code>date_to<\/code><br \/>\n<strong>if you indicate <code>date_from<\/code> and <code>date_to<\/code>, you don&#8217;t need to specify <code>date_interval<\/code><\/strong><br \/>\nminimum value is tomorrow&#8217;s date<br \/>\nthe value you specify in <code>date_from<\/code> shouldn&#8217;t be further than <code>date_to<\/code><br \/>\ndate format: <code>\"yyyy-mm-dd\"<\/code><br \/>\nexample:<br \/>\n<code>\"2021-10-30\"<\/code>if <a href=\"\/v3\/keywords_data\/google_ads\/status\/\" target=\"_blank\" rel=\"noopener noreferrer\">Status endpoint<\/a> returns <code>false<\/code> in the <code>actual_data<\/code> field, <code>date_from<\/code> can be set to the month before last and prior;<br \/>\nif <a href=\"\/v3\/keywords_data\/google_ads\/status\/\" target=\"_blank\" rel=\"noopener noreferrer\">Status endpoint<\/a> returns <code>true<\/code> in the <code>actual_data<\/code> field, <code>date_from<\/code> can be set to the last month and prior<\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 12.4003%; height: 48px;\"><code>date_to<\/code><\/td>\n<td style=\"width: 3.91588%; height: 48px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 48px;\"><em>ending date of the forecasting time range<\/em><br \/>\nrequired field if you specify <code>date_from<\/code><br \/>\n<strong>if you indicate <code>date_from<\/code> and <code>date_to<\/code>, you don&#8217;t need to specify <code>date_interval<\/code><\/strong><br \/>\nminimum value is <code>date_from<\/code> +1 day<br \/>\nmaximum value is current day and month of the next year<br \/>\ndate format: <code>\"yyyy-mm-dd\"<\/code><br \/>\nexample:<br \/>\n<code>\"2022-10-30\"<\/code><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 12.4003%; height: 48px;\"><code>date_interval<\/code><\/td>\n<td style=\"width: 3.91588%; height: 48px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 48px;\"><em>forecasting date interval<\/em><br \/>\noptional field<br \/>\n<strong>if you specify <code>date_interval<\/code>, you don&#8217;t need to indicate <code>date_from<\/code> and <code>date_to<\/code><\/strong><br \/>\npossible values: <code>next_week<\/code>, <code>next_month<\/code>, <code>next_quarter<\/code><br \/>\ndefault value: <code>next_month<\/code><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 12.4003%; height: 48px;\"><code>sort_by<\/code><\/td>\n<td style=\"width: 3.91588%; height: 48px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 48px;\"><em>results sorting parameters<\/em><br \/>\noptional field<br \/>\nUse these parameters to sort the results by <code>relevance<\/code>, <code>impressions<\/code>, <code>ctr<\/code>, <code>average_cpc<\/code>, <code>cost<\/code>, or <code>clicks<\/code> in the descending order<br \/>\ndefault value: <code>relevance<\/code><\/td>\n<\/tr>\n<tr style=\"height: 96px;\">\n<td style=\"width: 12.4003%; height: 96px;\"><code>tag<\/code><\/td>\n<td style=\"width: 3.9884%; height: 96px;\">string<\/td>\n<td style=\"width: 82.8862%; height: 96px;\"><em>user-defined task identifier<\/em><br \/>\noptional field<br \/>\n<em>the character limit is 255<\/em><br \/>\nyou can use this parameter to identify the task and match it with the result<br \/>\nyou will find the specified <code>tag<\/code> value in the <code>data<\/code> object of the response<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u200c\u200c<br \/>\nAs a response of the API server, you will receive <a href=\"https:\/\/en.wikipedia.org\/wiki\/JSON\">JSON<\/a>-encoded data containing a <code>tasks<\/code> array with the information specific to the set tasks.<\/p>\n<p><strong>Description of the fields in the result array:<\/strong><\/p>\n<table style=\"width: 77.3646%; height: 552px;\">\n<tbody>\n<tr style=\"height: 48px;\">\n<td style=\"width: 24.3517%; height: 48px;\"><code>version<\/code><\/td>\n<td style=\"width: 6.19209%; height: 48px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 48px;\"><em>the current version of the API<\/em><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 38.423%; height: 48px;\"><code>status_code<\/code><\/td>\n<td style=\"width: 1.75219%; height: 48px;\">integer<\/td>\n<td style=\"width: 61.2015%; height: 48px;\"><i>general status code<\/i><br \/>\nyou can find the full list of the response codes <a href=\"\/v3\/appendix\/errors\">here<\/a><br \/>\n<strong>Note:<\/strong> we strongly recommend designing a necessary system for handling related exceptional or error conditions<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>status_message<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>general informational message<\/em><br \/>\nyou can find the full list of general informational messages <a href=\"\/v3\/appendix\/errors\">here<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>time<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>execution time, seconds<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>cost<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">float<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>total <i>tasks<\/i> cost, USD<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>tasks_count<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>the number of tasks in the <strong><code>tasks<\/code><\/strong> array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>tasks_error<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>the number of tasks in the <strong><code>tasks<\/code><\/strong> array returned with an error<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><strong><code>tasks<\/code><\/strong><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>array of tasks<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>id<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>task identifier<\/em><br \/>\n<strong>unique task identifier in our system in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Universally_unique_identifier\">UUID<\/a> format<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 24.3517%; height: 48px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>status_code<\/code><\/td>\n<td style=\"width: 6.19209%; height: 48px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 48px;\"><em>status code of the task<\/em><br \/>\ngenerated by DataForSEO; can be within the following range: 10000-60000<br \/>\nyou can find the full list of response codes <a href=\"\/v3\/appendix-errors\/\">here<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>status_message<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>informational message of the task<\/em><br \/>\nyou can find the full list of general informational messages <a href=\"\/v3\/appendix-errors\/\">here<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>time<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>execution time, seconds<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>cost<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">float<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>cost of the task, USD<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>result_count<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>number of elements in the <code>result<\/code> array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>path<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>URL path<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>data<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">object<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>contains the same parameters that you specified in the POST request<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <strong><code>result<\/code><\/strong><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>array of results<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>keyword<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>keyword in a POST array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>location_code<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>location code in a POST array<\/em><br \/>\nif there is no data, then the value is\u00a0<code>null<\/code><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>language_code<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>language code in a POST array<\/em><br \/>\nif there is no data, then the value is\u00a0<code>null<\/code><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 12.4003%; height: 48px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>date_interval<\/code><\/td>\n<td style=\"width: 3.91588%; height: 48px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 48px;\"><em>forecasting date interval in a POST array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>search_partners<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">boolean<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>include Google search partners<\/em><br \/>\nthe value you specified when setting the task<br \/>\nif <code class=\"prettyprint\">true<\/code>, the results are returned for owned, operated, and syndicated networks across Google and partner sites that host Google search;<br \/>\nif <code>false<\/code>, the results are returned for Google search sites only<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>bid<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>the maximum custom bid<\/em><br \/>\nthe bid you have specified when setting the task<br \/>\nrepresents the price you are willing to pay for an ad<br \/>\nthe higher value you have specified, the higher metrics and cost you receive in response<br \/>\nlearn more in <a href=\"https:\/\/dataforseo.com\/help-center\/configuring-bid\">this help center article<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>match<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>keywords match-type<\/em><br \/>\ncan take the following values: <code>exact<\/code>, <code>broad<\/code>, <code>phrase<\/code><\/td>\n<\/tr>\n<tr style=\"height: 72px;\">\n<td style=\"height: 72px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>impressions<\/code><\/td>\n<td style=\"height: 72px;\">float<\/td>\n<td style=\"height: 72px;\"><em>projected number of ad impressions<\/em><br \/>\nnumber of impressions an ad is projected to get within the specified time period<br \/>\nif there is no data, then the value is\u00a0<code>null<\/code><br \/>\nlearn more about impressions in <a href=\"https:\/\/dataforseo.com\/help-center\/using-impressions\" target=\"_blank\" rel=\"noopener noreferrer\">this help center article<\/a><\/td>\n<\/tr>\n<tr style=\"height: 72px;\">\n<td style=\"height: 72px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>ctr<\/code><\/td>\n<td style=\"height: 72px;\">float<\/td>\n<td style=\"height: 72px;\"><em>projected click through rate (CTR) of the advertisement<\/em><br \/>\nnumber of clicks an ad is projected to receive divided by the number of ad impressions; the CTR is projected for the specified time period<br \/>\nif there is no data, then the value is\u00a0<code>null<\/code><\/td>\n<\/tr>\n<tr style=\"height: 72px;\">\n<td style=\"height: 72px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>average_cpc<\/code><\/td>\n<td style=\"height: 72px;\">float<\/td>\n<td style=\"height: 72px;\"><em>the average cost-per-click value<\/em><br \/>\nrepresents the cost-per-click (USD) estimated for a keyword based on the specified time period and historical data;<br \/>\nif there is no data, then the value is\u00a0<code>null<\/code><\/td>\n<\/tr>\n<tr style=\"height: 72px;\">\n<td style=\"height: 72px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>cost<\/code><\/td>\n<td style=\"height: 72px;\">float<\/td>\n<td style=\"height: 72px;\"><em>charge for an ad<\/em><br \/>\namount that will be charged for running an ad within the specified time period<br \/>\nif there is no data, then the value is\u00a0<code>null<\/code><\/td>\n<\/tr>\n<tr style=\"height: 72px;\">\n<td style=\"height: 72px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>clicks<\/code><\/td>\n<td style=\"height: 72px;\">float<\/td>\n<td style=\"height: 72px;\"><em>number of clicks on an ad<\/em><br \/>\nnumber of clicks an ad is projected to get within the specified time period<br \/>\nif there is no data, then the value is\u00a0<code>null<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u200c\u200c[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<blockquote><p>Instead of \u2018login\u2019 and \u2018password\u2019 use your credentials from https:\/\/app.dataforseo.com\/api-access<\/p><\/blockquote><div id=\"curl\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-bash hljs\"># Instead of &#039;login&#039; and &#039;password&#039; use your credentials from https:\/\/app.dataforseo.com\/api-access \r\nlogin=&quot;login&quot; \r\npassword=&quot;password&quot; \r\ncred=&quot;$(printf ${login}:${password} | base64)&quot; \r\ncurl --location --request POST &quot;https:\/\/api.dataforseo.com\/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live&quot; \r\n--header &quot;Authorization: Basic ${cred}&quot;  \r\n--header &quot;Content-Type: application\/json&quot; \r\n--data-raw &#039;[\r\n    {\r\n        &quot;location_code&quot;: 2840,\r\n        &quot;language_code&quot;: &quot;en&quot;,\r\n        &quot;bid&quot;: 999,\r\n        &quot;match&quot;: &quot;exact&quot;,\r\n        &quot;keywords&quot;: [\r\n            &quot;seo marketing&quot;\r\n        ]\r\n    }\r\n]&#039;<\/code><\/pre><\/div><\/div><div id=\"php\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-php hljs\">&lt;?php\r\n\/\/ You can download this file from here https:\/\/cdn.dataforseo.com\/v3\/examples\/php\/php_RestClient.zip\r\nrequire(&#039;RestClient.php&#039;);\r\n$api_url = &#039;https:\/\/api.dataforseo.com\/&#039;;\r\ntry {\r\n\t\/\/ Instead of &#039;login&#039; and &#039;password&#039; use your credentials from https:\/\/app.dataforseo.com\/api-access\r\n\t$client = new RestClient($api_url, null, &#039;login&#039;, &#039;password&#039;);\r\n} catch (RestClientException $e) {\r\n\techo &quot;n&quot;;\r\n\tprint &quot;HTTP code: {$e-&gt;getHttpCode()}n&quot;;\r\n\tprint &quot;Error code: {$e-&gt;getCode()}n&quot;;\r\n\tprint &quot;Message: {$e-&gt;getMessage()}n&quot;;\r\n\tprint  $e-&gt;getTraceAsString();\r\n\techo &quot;n&quot;;\r\n\texit();\r\n}\r\n$post_array = array();\r\n\/\/ simple way to set a task\r\n$post_array[] = array(\r\n\t&quot;location_name&quot; =&gt; &quot;United States&quot;,\r\n\t&quot;language_name&quot; =&gt; &quot;English&quot;,\r\n\t&quot;bid&quot; =&gt; 999,\r\n\t&quot;match&quot; =&gt; &quot;exact&quot;,\r\n\t&quot;keywords&quot; =&gt; array(\r\n\t\t&quot;seo marketing&quot;\r\n\t)\r\n);\r\ntry {\r\n\t\/\/ POST \/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live\r\n\t\/\/ the full list of possible parameters is available in documentation\r\n\t$result = $client-&gt;post(&#039;\/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live&#039;, $post_array);\r\n\tprint_r($result);\r\n\t\/\/ do something with post result\r\n} catch (RestClientException $e) {\r\n\techo &quot;n&quot;;\r\n\tprint &quot;HTTP code: {$e-&gt;getHttpCode()}n&quot;;\r\n\tprint &quot;Error code: {$e-&gt;getCode()}n&quot;;\r\n\tprint &quot;Message: {$e-&gt;getMessage()}n&quot;;\r\n\tprint  $e-&gt;getTraceAsString();\r\n\techo &quot;n&quot;;\r\n}\r\n$client = null;\r\n?&gt;<\/code><\/pre><\/div><\/div><div id=\"javascript\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-javascript hljs\">const post_array = [];\r\n\r\npost_array.push({\r\n  &quot;location_name&quot;: &quot;United States&quot;,\r\n  &quot;language_name&quot;: &quot;English&quot;,\r\n  &quot;bid&quot;: 999,\r\n  &quot;match&quot;: &quot;exact&quot;,\r\n  &quot;keywords&quot;: [&quot;seo marketing&quot;]\r\n});\r\n\r\nconst axios = require(&#039;axios&#039;);\r\n\r\naxios({\r\n  method: &#039;post&#039;,\r\n  url: &#039;https:\/\/api.dataforseo.com\/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live&#039;,\r\n  auth: {\r\n    username: &#039;login&#039;,\r\n    password: &#039;password&#039;\r\n  },\r\n  data: post_array,\r\n  headers: {\r\n    &#039;content-type&#039;: &#039;application\/json&#039;\r\n  }\r\n}).then(function (response) {\r\n  var result = response[&#039;data&#039;][&#039;tasks&#039;];\r\n  \/\/ Result data\r\n  console.log(result);\r\n}).catch(function (error) {\r\n  console.log(error);\r\n});<\/code><\/pre><\/div><\/div><div id=\"python\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-python hljs\">from client import RestClient\r\n# You can download this file from here https:\/\/cdn.dataforseo.com\/v3\/examples\/python\/python_Client.zip\r\nclient = RestClient(&quot;login&quot;, &quot;password&quot;)\r\npost_data = dict()\r\n# simple way to set a task\r\npost_data[len(post_data)] = dict(\r\n    location_name=&quot;United States&quot;,\r\n    language_name=&quot;English&quot;,\r\n    bid=999,\r\n\tmatch=&quot;exact&quot;,\r\n\tkeywords=[\r\n\t\t&quot;seo marketing&quot;\r\n    ]\r\n)\r\n# POST \/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live\r\n# the full list of possible parameters is available in documentation\r\nresponse = client.post(&quot;\/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live&quot;, post_data)\r\n# you can find the full list of the response codes here https:\/\/docs.dataforseo.com\/v3\/appendix\/errors\r\nif response[&quot;status_code&quot;] == 20000:\r\n    print(response)\r\n    # do something with result\r\nelse:\r\n    print(&quot;error. Code: %d Message: %s&quot; % (response[&quot;status_code&quot;], response[&quot;status_message&quot;]))<\/code><\/pre><\/div><\/div><div id=\"csharp\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-csharp hljs\">using Newtonsoft.Json;\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Net.Http;\r\nusing System.Net.Http.Headers;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace DataForSeoDemos\r\n{\r\n    public static partial class Demos\r\n    {\r\n        public static async Task keywords_data_ad_traffic_by_keywords_live()\r\n        {\r\n            var httpClient = new HttpClient\r\n            {\r\n                BaseAddress = new Uri(&quot;https:\/\/api.dataforseo.com\/&quot;),\r\n                \/\/ Instead of &#039;login&#039; and &#039;password&#039; use your credentials from https:\/\/app.dataforseo.com\/api-access\r\n                DefaultRequestHeaders = { Authorization = new AuthenticationHeaderValue(&quot;Basic&quot;, Convert.ToBase64String(Encoding.ASCII.GetBytes(&quot;login:password&quot;))) }\r\n            };\r\n            var postData = new List&lt;object&gt;();\r\n            postData.Add(new\r\n            {\r\n                location_name = &quot;United States&quot;,\r\n                language_name = &quot;English&quot;,\r\n                bid = 999,\r\n                match = &quot;exact&quot;,\r\n                keywords = new[]\r\n                    {\r\n                        &quot;seo marketing&quot;\r\n                    }\r\n            });\r\n            \/\/ POST \/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live\r\n            \/\/ the full list of possible parameters is available in documentation\r\n            var taskPostResponse = await httpClient.PostAsync(&quot;\/v3\/keywords_data\/google_ads\/ad_traffic_by_keywords\/live&quot;, new StringContent(JsonConvert.SerializeObject(postData)));\r\n            var result = JsonConvert.DeserializeObject&lt;dynamic&amp;gt(await taskPostResponse.Content.ReadAsStringAsync());\r\n            \/\/ you can find the full list of the response codes here https:\/\/docs.dataforseo.com\/v3\/appendix\/errors\r\n            if (result.status_code == 20000)\r\n            {\r\n                \/\/ do something with result\r\n                Console.WriteLine(result);\r\n            }\r\n            else\r\n                Console.WriteLine($&quot;error. Code: {result.status_code} Message: {result.status_message}&quot;);\r\n        }\r\n    }\r\n}<\/code><\/pre><\/div><\/div><blockquote><p>The above command returns JSON structured like this:<\/p><\/blockquote><div class=\"example example--json\"><div class=\"example__content\"><div class=\"example__code example__code-json\"><pre><code class=\"language-json hljs\">{\r\n  &quot;version&quot;: &quot;0.1.20221214&quot;,\r\n  &quot;status_code&quot;: 20000,\r\n  &quot;status_message&quot;: &quot;Ok.&quot;,\r\n  &quot;time&quot;: &quot;3.5834 sec.&quot;,\r\n  &quot;cost&quot;: 0.075,\r\n  &quot;tasks_count&quot;: 1,\r\n  &quot;tasks_error&quot;: 0,\r\n  &quot;tasks&quot;: [\r\n    {\r\n      &quot;id&quot;: &quot;06021415-1535-0370-0000-278442b1d470&quot;,\r\n      &quot;status_code&quot;: 20000,\r\n      &quot;status_message&quot;: &quot;Ok.&quot;,\r\n      &quot;time&quot;: &quot;3.5198 sec.&quot;,\r\n      &quot;cost&quot;: 0.075,\r\n      &quot;result_count&quot;: 1,\r\n      &quot;path&quot;: [\r\n        &quot;v3&quot;,\r\n        &quot;keywords_data&quot;,\r\n        &quot;google_ads&quot;,\r\n        &quot;ad_traffic_by_keywords&quot;,\r\n        &quot;live&quot;\r\n      ],\r\n      &quot;data&quot;: {\r\n        &quot;api&quot;: &quot;keywords_data&quot;,\r\n        &quot;function&quot;: &quot;ad_traffic_by_keywords&quot;,\r\n        &quot;se&quot;: &quot;google_ads&quot;,\r\n        &quot;language_code&quot;: &quot;en&quot;,\r\n        &quot;location_code&quot;: 2840,\r\n        &quot;bid&quot;: 999,\r\n        &quot;match&quot;: &quot;exact&quot;,\r\n        &quot;keywords&quot;: [\r\n          &quot;buy laptop&quot;,\r\n          &quot;cheap laptops for sale&quot;,\r\n          &quot;purchase laptop&quot;\r\n        ]\r\n      },\r\n      &quot;result&quot;: [\r\n        {\r\n          &quot;keyword&quot;: null,\r\n          &quot;location_code&quot;: 2840,\r\n          &quot;language_code&quot;: &quot;en&quot;,\r\n          &quot;date_interval&quot;: &quot;next_month&quot;,\r\n          &quot;search_partners&quot;: false,\r\n          &quot;bid&quot;: 999,\r\n          &quot;match&quot;: &quot;exact&quot;,\r\n          &quot;impressions&quot;: 5330.81,\r\n          &quot;ctr&quot;: 0.0862,\r\n          &quot;average_cpc&quot;: 5.58,\r\n          &quot;cost&quot;: 2562.44,\r\n          &quot;clicks&quot;: 459.42\r\n        }\r\n      ]\r\n    }\r\n  ]\r\n}<\/code><\/pre><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text] Setting\u00a0Live &#8216;Ad Traffic By Keywords&#8217; Tasks &nbsp; Please note that starting from June 1, Google Ad Traffic By Keywords returns bulk data for the entire campaign (all keywords specified when setting a task). You can learn more in this update. Note that Google Ads Keywords Data API is based on the latest version of [&hellip;]<\/p>\n","protected":false},"author":17,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template.php","meta":{"apibase_doc_request_yaml":"","apibase_doc_request_additional_yaml":"","apibase_doc_response_yaml":"","footnotes":""},"class_list":["post-11179","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/11179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/comments?post=11179"}],"version-history":[{"count":50,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/11179\/revisions"}],"predecessor-version":[{"id":20050,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/11179\/revisions\/20050"}],"wp:attachment":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/media?parent=11179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}