I am working on our company's landing pages for our Adwords campaigns, and we are seeing some strange behavior, extensive searches haven't revealed a good answer. We started running A/B tests with Google Optimize, initially running a redirect test between two differently-styled landing pages. Our conversions are set to trigger on the thank-you (message sent) page that a user gets after they fill out a quote form on the landing pages.

We're trying to get all of the numbers to match between these:

  • Optimize Experiment Events
  • Adwords Conversions
  • Analytics 4 Conversion Events

There is almost always a mismatch of as much as 3 on at least two of those for any selected period, even when selecting a date range ending more than three days previous to avoid any data lag factor. The Google tags for all three are correctly installed, the landing pages are all simple HTML and CSS with no other scripting that possibly conflict with the Google tags. The only possible idea I could come up with is that we do occasionally see double quote form submissions (two identical emails from the same form submission), so we hypothesized that the discrepancies may be due to how each platform handles duplicate clicks.

We are also confused about how A/B testing affects quality score and landing page experience in Adwords. If the click traffic is being divided in between two separate pages, does Adwords average the quality score/landing page experience of both, or does it constantly vacillate between the scores of the two pages? We were thinking that we wouldn't be able to get a good quality score/landing page experience reading until we completed the A/B tests and settled on a single static landing page.

Thanks in advance for any insight!

I'm simply trying to construct a test script that can change/mutate a specific campaign budget using the REST interface of the Google Ads API on Google Apps Scripts but I keep on running into the following error:

Exception: Request failed for https://googleads.googleapis.com returned code 400. Truncated server response: { "error": { "code": 400, "message": "Invalid JSON payload received. Unexpected token.\nvalidateOnly=true&pa\n^", "status": "INVALID_... (use muteHttpExceptions option to examine full response)

The relevant function code is as follows:

//API specific variables const developer_token = {DEVELOPER TOKEN}; const parent_mcc_id = "xxxxxxxxxx"; //Temporary placeholder values var child_customer_id = "xxxxxxxxxx"; var budget_id = "xxxxxxxxxx";   let headers = {      Authorization: "Bearer " + ScriptApp.getOAuthToken(),      "developer-token": developer_token,      "login-customer-id": parent_mcc_id   };   //Make API call to retrieve each Google Ads account   try{     let requestParams = {      method: "POST",      contentType: "application/json",      headers: headers,      payload: {        operations:        [         {           updateMask: "amount_micros",           update:{             resourceName: "customers/" + child_customer_id + "/campaignBudgets/" + budget_id,             amountMicros: "60000000"           }         }        ],       "partialFailure": true,       "validateOnly": true,       "responseContentType": "RESOURCE_NAME_ONLY"       }     }          var url = ("https://googleads.googleapis.com/v11/customers/{CHILD ACCOUNT ID}/campaignBudgets:mutate");     Logger.log(requestParams.payload);     var postChange = UrlFetchApp.fetch(url, requestParams);   }   catch(e) {    Logger.log(e);   } 

I have used similar functions with queries in the payload portion to get data through the Google Ads API, place the data in an array and dump it into a spreadsheet, so I know that my developer token, mcc ids, and child account ids are correct. Any help would be greatly appreciated!

I have the following "standard" google site tag tracking conversions on my page:

<!-- Google Code for sale Conversion Page --> <script type="text/javascript"> /* <![CDATA[ */ var google_conversion_id = AW-MYAWID; var google_conversion_language = "en"; var google_conversion_format = "3"; var google_conversion_color = "ffffff"; var google_conversion_label = "MY_LABEL"; if (1.0) {   var google_conversion_value = <?php echo round($order_total['value'],2);?>; } var google_remarketing_only = false; /* ]]> */ </script> script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/AW-MYAWID/?value=<?php echo round($order_total['value'],2);?>&amp;label=MY_LABEL&amp;guid=ON&amp;script=0"/> </div> </noscript> 

Directly below that I have:

  <script type="text/javascript">         gtag('event', 'conversion', {             'send_to': 'AW-MYAWID/MYLABEL',             'value': <?php echo round($order_total['value'],2);?>,             'currency': 'CAD',             'transaction_id': ''         });     </script>     <!--google enhanced conversions !-->     <script type="text/javascript">         gtag('set', 'user_data', {             "email":  <?php echo $customer_info['email_address'];?>,             "phone_number": <?php echo $customer_info['telephone'];?>,             "address": {             "first_name": <?php echo $customer_info['firstname']; ?>,                 "last_name": <?php echo $customer_info['lastname']; ?>,                 "street":  <?php echo $customer_info['street_address'];?>,                 "city":<?php echo $customer_info['city'];?>,                 "region": <?php echo $customer_info['state'];?>,                 "postal_code": <?php echo $customer_info['postcode'];?>         }         });     </script> 

This is in my header:

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-MYUAUD"></script> <script>     window.dataLayer = window.dataLayer || [];     function gtag(){dataLayer.push(arguments);}     gtag('js', new Date());     gtag('config', 'AW-MYAWID') ;     gtag('config', 'UA-MYUAUD'); </script> 

in tag assistant the CDATA tag is showing but for the global site tag it shows the tag with no metadata etc. am I missing something? Why is only the standard version seem to fire the event?