{"id":1535,"date":"2019-11-28T08:40:46","date_gmt":"2019-11-28T08:40:46","guid":{"rendered":"https:\/\/docs_v3.dataforseo.com\/v3\/?page_id=1535"},"modified":"2022-04-26T18:42:43","modified_gmt":"2022-04-26T18:42:43","slug":"keywords-data-adwords-status","status":"publish","type":"page","link":"https:\/\/docs.dataforseo.com\/v3\/keywords-data-adwords-status\/","title":{"rendered":"keywords_data\/adwords_status"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text]<\/p>\n<h2 id=\"serp-google-locations\">AdWords Status<\/h2>\n<p>&nbsp;<\/p>\n<h3 style=\"color: #f44336\"><strong>Google AdWords Keywords Data API<\/strong> is a legacy version that is replaced by Google Ads API. If you\u2019re using DataForSEO Google AdWords API, you need to <a href=\"\/v3\/keywords_data\/google_ads\/migration_guide\">migrate to DataForSEO Google Ads API<\/a>.<\/h3>\n<p>&nbsp;<br \/>\nBy calling this endpoint, you will know if Google updated keyword data for the previous month. Generally, Google updates keyword data in the middle of the month. So, if Google updated its data in October, you would be able to see the actual search volume, cost-per-click, competition, and other metrics for September. If Google didn&#8217;t update its data in October, the latest information would be available for August.<\/p>\n<p>[\/vc_column_text]\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 not be charged for using this API<\/p>\n\t\t<\/div>\n\t<\/article>\n\t    <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                    GET            <button class=\"btn-reset button-link copy-button\" data-href=\"https:\/\/api.dataforseo.com\/v3\/keywords_data\/google\/adwords_status\">\n                https:\/\/api.dataforseo.com\/v3\/keywords_data\/google\/adwords_status                <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    [vc_column_text]<\/p>\n<p>\u200c\u200cAs 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<table style=\"width: 58%; height: 528px;\">\n<thead>\n<tr style=\"height: 24px;\">\n<th style=\"width: 38.423%; height: 24px;\">Field name<\/th>\n<th style=\"width: 1.25156%; height: 24px;\">Type<\/th>\n<th style=\"width: 61.7021%; height: 24px;\">Description<\/th>\n<\/tr>\n<\/thead>\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: 38.423%; height: 24px;\"><code>time<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">string<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>execution time, seconds<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\"><code>cost<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">float<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>total tasks cost, USD<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\"><code>tasks_count<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">integer<\/td>\n<td style=\"width: 61.7021%; 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: 38.423%; height: 24px;\"><code>tasks_error<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">integer<\/td>\n<td style=\"width: 61.7021%; 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: 38.423%; height: 24px;\"><strong><code>tasks<\/code><\/strong><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">array<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>array of tasks<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>id<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">string<\/td>\n<td style=\"width: 61.7021%; 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: 38.423%; height: 48px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>status_code<\/code><\/td>\n<td style=\"width: 1.25156%; height: 48px;\">integer<\/td>\n<td style=\"width: 61.7021%; 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: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>status_message<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">string<\/td>\n<td style=\"width: 61.7021%; 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: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>time<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">string<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>execution time, seconds<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>cost<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">float<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>cost of the task, USD<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>result_count<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">integer<\/td>\n<td style=\"width: 61.7021%; 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: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>path<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">array<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>URL path<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>data<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">object<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>the data specified in the API call<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <strong><code>result<\/code><\/strong><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">array<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>array of results<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>actual_data<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">boolean<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>indicates whether Google updated keyword data for the previous month<\/em><br \/>\ngenerally, Google updates keyword data in the middle of the month<br \/>\nif the value is <code>true<\/code>, Google currently provides up-to-date data for the previous month<br \/>\nif the value is <code>false<\/code>, we are not able to provide data for the previous month<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>date_update<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">string<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>date of the latest update of AdWords data<\/em><br \/>\nindicates the latest date when Google updated search volume, CPC, and other keyword metrics<br \/>\nexample:<br \/>\n<code>2020-05-15<\/code><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>last_year_in_monthly_searches<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">integer<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>the latest year for which search volume data is available<\/em>\n<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>last_month_in_monthly_searches<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">integer<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>the latest month for which search volume data is available<\/em>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-unique=\"list-of-keywords-finder-locations\"><\/div>\n<p>[\/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 GET &quot;https:\/\/api.dataforseo.com\/v3\/keywords_data\/google\/adwords_status&quot; \r\n--header &quot;Authorization: Basic ${cred}&quot;  \r\n--header &quot;Content-Type: application\/json&quot; <\/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\ntry {\r\n\t\/\/ using this method you can get the AdWords status\r\n\t\/\/ GET \/v3\/keywords_data\/google\/adwords_status\r\n\t$result = $client-&gt;get(&#039;\/v3\/keywords_data\/google\/adwords_status&#039;);\r\n\tprint_r($result);\r\n\t\/\/ do something with 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 axios = require(&#039;axios&#039;);\r\n\r\naxios({\r\n    method: &#039;get&#039;,\r\n    url: &#039;https:\/\/api.dataforseo.com\/v3\/keywords_data\/google\/adwords_status&#039;,\r\n    auth: {\r\n        username: &#039;login&#039;,\r\n        password: &#039;password&#039;\r\n    },\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;][0][&#039;result&#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 random import Random\r\nfrom client import RestClient\r\n# You can download this file from here https:\/\/cdn.dataforseo.com\/v3\/examples\/python\/python_Client.zip\r\n\r\nclient = RestClient(&quot;login&quot;, &quot;password&quot;)\r\n# using this method you can get the AdWords status\r\n# GET \/v3\/keywords_data\/google\/adwords_status\r\nresponse = client.get(&quot;\/v3\/keywords_data\/google\/adwords_status&quot;)\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.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_adwords_status()\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            \/\/ using this method you can get a list of endpoints\r\n            \/\/ GET \/v3\/keywords_data\/google\/adwords_status\r\n            var response = await httpClient.GetAsync(&quot;\/v3\/keywords_data\/google\/adwords_status&quot;);\r\n            var result = JsonConvert.DeserializeObject(await response.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;3.20191128&quot;,\r\n  &quot;status_code&quot;: 20000,\r\n  &quot;status_message&quot;: &quot;Ok.&quot;,\r\n  &quot;time&quot;: &quot;0.1653 sec.&quot;,\r\n  &quot;cost&quot;: 0,\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;11261723-0696-0160-0000-57fc6e803c84&quot;,\r\n      &quot;status_code&quot;: 20000,\r\n      &quot;status_message&quot;: &quot;Ok.&quot;,\r\n      &quot;time&quot;: &quot;0 sec.&quot;,\r\n      &quot;cost&quot;: 0,\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&quot;,\r\n        &quot;adwords_status&quot;\r\n      ],\r\n      &quot;data&quot;: {\r\n        &quot;api&quot;: &quot;keywords_data&quot;,\r\n        &quot;function&quot;: &quot;adwords_status&quot;,\r\n        &quot;se&quot;: &quot;google&quot;\r\n      },\r\n      &quot;result&quot;: [\r\n        {\r\n        &quot;actual_data&quot;: false,\r\n        &quot;date_update&quot;: &quot;2020-05-15&quot;,\r\n        &quot;last_year_in_monthly_searches&quot;: 2020,\r\n        &quot;last_month_in_monthly_searches&quot;: 4\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] AdWords Status &nbsp; Google AdWords Keywords Data API is a legacy version that is replaced by Google Ads API. If you\u2019re using DataForSEO Google AdWords API, you need to migrate to DataForSEO Google Ads API. &nbsp; By calling this endpoint, you will know if Google updated keyword data for the previous month. Generally, Google [&hellip;]<\/p>\n","protected":false},"author":1,"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-1535","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/1535","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/comments?post=1535"}],"version-history":[{"count":31,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/1535\/revisions"}],"predecessor-version":[{"id":13727,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/1535\/revisions\/13727"}],"wp:attachment":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/media?parent=1535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}