Posts tagged with google-ads-api

I'm writing a code to load data from Google Ads api to BigQuery table by using Cloud Functions, the process query a table called ad_group_ad but i'm struggling when trying to validate if there's duplicated rows at my destination.

By reading the docs I was expecting to find some attribute used to identifier a column or a group of columns that represents the table key. May this question seem obviously but i ain't having progress when trying to google this.

Is there a way to identifies if there's is duplicated rows? I'm not using any group by instruction when collecting, just a simple select like the example below:

SELECT     segments.ad_network_type,     campaign.name,     ad_group.name,     ad_group.id,     so     on,     and,     so,     forth FROM ad_group_ad WHERE segments.date = ? 

my client was told by google that certain of my links are "DISABLED: third_party_redirect_on_landing_page". Two of the links given are:

One of them effectively redirects to another page, but the other does not:

curl -I http://www.texasvistamedicalcenter.org/ HTTP/1.1 301 Moved Permanently ... curl -I https://www.saltlakeregional.org/services-directory/emergency-care HTTP/2 200  ... 

This makes me think that Google probably does not like some other URL linking to this page instead of being put directly in the ad.

My websearch for third_party_redirect_on_landing_page turned up empty handed. How can this be fixed?

Edit:

This the converted curl code it prints this error it's relating to A Outh 2.0 I used both Client ID and client secret and same error { "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED" } }

   $ch = curl_init();        curl_setopt($ch, CURLOPT_URL, 'https://googleads.googleapis.com/v9/customers/(8519781266):generateKeywordIdeas');        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_POST, 1);        curl_setopt($ch, CURLOPT_POSTFIELDS, "{\n\n\"keywordSeed\": {\n    \"keywords\": [\n    \"cofee\"\n  ]\n  }\n}");                $headers = array();        $headers[] = 'Content-Type: application/json';        $headers[] = 'Login-Customer-Id: (2260416591)';        $headers[] = 'Developer-Token: (z2sb0uyekDzkMbiyNpAImg';        $headers[] = 'Authorization: Bearer (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)';        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);                $result = curl_exec($ch);        if (curl_errno($ch)) {            echo 'Error:' . curl_error($ch);        }        print_r($result) ;        curl_close($ch);         

This curl command code with my google's data

curl -i --request POST https://googleads.googleapis.com/v9/customers/(8519781266):generateKeywordIdeas \ --header "Content-Type: application/json" \ --header "login-customer-id: (2260416591)" \ --header "developer-token: (z2sb0uyekDzkMbiyNpAImg" \ --header "Authorization: Bearer (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)" \ --data '{ "keywordSeed": {     "keywords": [     "cofee"   ]   } }' 

This's the curl command line

curl -i --request POST https://googleads.googleapis.com/v9/customers/(ACCOUNT NUMBER):generateKeywordIdeas \ --header "Content-Type: application/json" \ --header "login-customer-id: (MCC ID)" \ --header "developer-token: (DEVELOPER TOKEN" \ --header "Authorization: Bearer (ACCESS TOKEN)" \ --data '{ "keywordSeed": {     "keywords": [     "cofee"   ]   } }' 

and it prints this error

 C:\Users\MostafaEzzat>curl -i --request POST https://googleads.googleapis.com/v9/customers/(8519781266):generateKeywordIdeas \ HTTP/1.0 411 Length Required Content-Type: text/html; charset=UTF-8 Referrer-Policy: no-referrer Content-Length: 1564 Date: Sat, 01 Jan 2022 18:14:44 GMT <!DOCTYPE html> <html lang=en>   <meta charset=utf-8>   <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">   <title>Error 411 (Length Required)!!1</title>   <style>     *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}   </style>   <a href=//www.google.com/><span id=logo aria-label=Google></span></a>   <p><b>411.</b> <ins>That’s an error.</ins>   <p>POST requests require a <code>Content-length</code> header.  <ins>That’s all we know.</ins> curl: (6) Could not resolve host: \ C:\Users\MostafaEzzat>--header "Content-Type: application/json" \ '--header' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat>--header "login-customer-id: (2260416591)" \ '--header' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat>--header "developer-token: (z2sb0uyekDzkMbiyNpAImg" \ '--header' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat>--header "Authorization: Bearer (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)" \ '--header' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat>--data '{ '--data' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat> C:\Users\MostafaEzzat>"keywordSeed": { '"keywordSeed":' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat>    "keywords": [ '"keywords":' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat>    "cofee" '"cofee"' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat>  ] ']' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat>  } '}' is not recognized as an internal or external command, operable program or batch file. C:\Users\MostafaEzzat>}' 

so I don't know honestly how to convert to Curl PHP and parse combine and all the parameters which is in this link https://developers.google.com/google-ads/api/rest/reference/rest/v9/KeywordPlanHistoricalMetrics

Can I know the difference between data backfilling and refreshing, in the context of BigQuery Data Transfers.

Data Refresh window is a parameter that can be configured when setting up BigQuery Data Transfers for Google Ads and Search Ads 360 data (probably for some other BigQuery data transfers too).

Reference:
https://cloud.google.com/bigquery-transfer/docs/working-with-transfers#refreshing https://cloud.google.com/bigquery-transfer/docs/adwords-transfer

I have google ad in web site.Ad is visible to client. But in google statistics viewability is 18-20%. I inspected in browser.It shows browser size:0,0 px(bs:0,0).

sig: Cg0ArKJSzK9xkPVRs7FEEAE id: lidar2 mcvt: 1003 p: 225,425,315,1153 mtos: 1003,1003,1003,1003,1003 tos: 1003,0,0,0,0 v: 20211202 bin: 7 avms: nio bs: 0,0 mc: 1 if: 1 app: 0 itpl: 19 adk: 803334084 rs: 4 la: 0 cr: 0 vs: 4 r: v rst: 1640861015262 rpt: 1292 isd: 0 lsd: 0 met: ce wmsd: 0