Why GA doesn't read 'medium' UTM parameter from Search ads? - google-analytics

I set Google Ads search and responsive display campaigns and enabled the manual UTM tag for GA analytics. As I want to know which ad format the traffics are from so I use 'Video', 'Display' and 'Text' as medium parameter.
However, when the campaigns were launched and reported in GA, a great amount of traffic are still from 'google / cpc', even though the destination URL are shown with correct UTM tag. It doesn't seem like the utm is incorrect when there are some traffics that are successfully reported as 'google / text' as well.
Image 1: GA's source/medium report shows 'google / cpc' even though the destination url uses 'text' or 'display' as a medium
Another piece of information and question is that all of the 'cpc' medium are categorised by GA as 'Text' ad format, when all successful UTM medium are set to 'not set' ad format. Could you help explain why?
Image 2: 'google / cpc' traffics are from 'Text' ad format while the other successful UTM read traffics are grouped as 'not set'
Lastly, when looking into the 'Ad Slot', most of the traffic from 'cpc' medium are from 'Google Search. For the 'Google Display Network', I understand that one of the ad formats from the responsive ad is the 'text' format so I consider all the issues are from only 'text' ads. But I am not sure because the Ad Slot is set to 'not set' for those success UTM so I cannot really compare the results here.
Image 3: Most of the 'google / cpc' traffics are from 'Google Search'
Could anybody help explain why and, if possible, suggest how to avoid this?

Looks like you once had autotagging enabled in Google Ads and GA and Ads accounts were linked so some of your traffic was autotagged. Otherwise you won't have any data for slots or formats. Keep in mind that historical data could not be overwritten in GA.

Related

Google Analytics 4 Event Parameters

We have GA4 Enhanced Ecommerce working via GTM on our website. We are tracking all events mentioned in Google's documentation (e.g add_to_cart, begin_checkout, view_item_list).
With events such as 'view_item_list', 'begin_checkout' and 'purchase', we can see them in both 'Realtime' and the GA DebugView (they even show the 'Items' tab with all items within these events), and our dataLayer has no issues:
But when we try to view any of this data in Engagement > Events > 'view_item_list' (for example), the only data displayed is the standard Event Count:
As you can see from the screenshot, there are no parameters for 'view_item_list'. We are not sure how to get the actual data such as 'item_name' or 'item_list_name' to display.
Any help is much appreciated.
Thanks!
Edit:
We have now added these item-scoped parameters as custom dimensions:
However, it's been over 36 hours since we added these, some of these dimensions/parameters have generated cards but nothing is being generated by the 'Items' parameter.
Any help is still much appreciated. Thanks.
Item Names should be available in the "Ecommerce purchases" Report. You do not need to register the parameter as a custom definition for the "item_name" parameter. For example if you upload the "purchase" event in this example, then the item_name of 'jeggings' will be available in the Ecommerce purchases report:
What do you see in the Ecommerce purchases report?

Google Analytics Custom Data Studio Field: Unknown dimension or metric ID: _ga____campaign_

There is a slight difference in the account names in Google Ad Words and Google Analytics: AdWords will have a campaign called "*Brand_Campaign [Ex]" while the name in Google Analytics is "Brand_Campaign_Ex"
If I want to stitch these together, I need to replace all the symbols and convert the entire campaign name to lower case. I'm trying to create a new field in the Google Analytics data using this formula:
REGEXP_REPLACE(Campaign,'_','')
But Google Data Studio returns an error message saying
Unknown dimension or metric ID: _ga____campaign_.
The campaign dimension is definitely in the table. The same formula works to create a new dimension, but I cannot join on dimensions created on the fly. I have been able to do this exact thing for the Google AdWords table, but the Analytics table is returning this strange error. Please help!
Not 100% sure if this applies here but I had a similar problem. My problem was that the columns in my postgresSQL database contained special characters like - or /. I know that one should never use such characters but anyways - changed that and reconnected the database and everything worked fine!
Hope this helps!

GA custom dimension data not tracking

I have created the dimension, it's currently my only one so it has index 1. It has session level scope and is active.
I have also created a custom report to see any results I might get from it. All the report does is show the Session metric against my custom dimension. Nothing extra such as filters.
In my code (which until now was unmodified) I have added the following line between the 'create' and 'send' calls:
ga('set', 'dimension1', 'test');
Nothing is appearing in the report, or anywhere else when I use this dimension as a secondary dimension.
I have tried on a second GA property of mine and it also doesn't work there.
What am I doing wrong?
Generally, it takes 1-3 hrs for the dimension data to show in GA UI. But there are ways to check if the hit you sent contains the dimension or not.
On your browser, check the ga requests ( Like in chrome -> Inspect -> Network -> filter by collect). If you have included the dimension correctly, the pageview hit sent must contain cd1 parameter (1 is the index of the dimension). If the hit contains the dimension and value, then wait for few hours and your report will show the data.
You can also use Google Analytics Debigger to check the requests sent to ga by your website page

Google Analytics - How to filter by page, group by query string value?

I have a site with a store search that posts in the following format.
www.site.com/store-locator?city=&province=&zip[postal_code]=68123
I am trying to configure GA to give me feedback on people visiting this page and a count of specific zips searched.
example report data
/store-locator?city=&province=&zip[postal_code]=68123 1000 visits
/store-locator?city=&province=&zip[postal_code]=68456 768 visits
/store-locator?city=&province=&zip[postal_code]=68789 221 visits
note: the 'city' and 'province' values may also be populated (and I will want to mod GA to give similar data on these too).
Can anyone give feedback on how to configure GA to give me data similar to this?
Thanks!
As far as I know, the only way to look at this type of segment historically is using individual segments, which doesn't work well for an arbitrary number of zip codes. However, you can collect this data more effectively as described for new traffic. This comes up often with information like categories, tags, dates, query string variables, etc.
You can create Segments for each zip. This will work for historical analysis, but is impractical beyond a few. https://support.google.com/analytics/answer/3124493?hl=en&ref_topic=3123779
You can also use Content Grouping to create groups. This will not work historically. https://support.google.com/analytics/answer/2853423
The way I've handled this is using Custom Dimensions, which replaced Custom Variables when Universal came out. This also only works for future data.
To use Custom Dimensions, you would pass the zip code to google analytics explicitly when calling the analytics javascript code.
You can pull querystrings with javascript, or echo the parameter using something like PHP as follows:
<?php
if (array_key_exists("zip",$_GET)) { $theZip = $_GET["zip"]; }
else { $theZip = "nozip"; }
?>
And, sending the custom dimension --
ga('create', 'UA-XXXXX');
ga('set', {'dimension1': '<?php echo $theZip; ?>'})
ga('send', 'pageview');
You also need to setup the custom dimension in the Analytics Profile. Docs on custom dimensions https://developers.google.com/analytics/devguides/platform/customdimsmets
/store-locator?city=&province=&zip[postal_code]=68123 1000 visits
Step 1: In GTM, create a new macro. I called mine {{province}}
Macto Type = URL
Component Type = Query
Query Key = province
This will populate the Macro with the value of province from the query string.
Step 2: In your Google Analytics property, define a custom dimension called "province". This will assign an index key to the dimension.
Step 3: In your GTM tag for Google Analytics, you will find Custom Dimensions under more settings. Add a new dimension, apply the index number from #2 and for the dimension select the macro you created from #1
Publish and you are all set.
Now when you look in Google Analytics, you can add a secondary dimension and choose your newly created custom dimension.

Google Analytics advanced segments - excluding by user interest

initialization: company website with product pages and separate ‘careers’ section.
I’m trying to create advanced segment with Google Analytics that would exclude visits that were more focused on careers section.
career URLs are simply:
/careers
/careers/job1
/careers/job2
I tried to use (two statements with AND operator):
‘Exclude’ ‘Page’ ‘Begins with’ ‘/careers’
AND
‘Exclude’ ‘Pageviews’ ‘Greater than’ ‘1’
Is this approach correct?
Or do I get more reliable results if I use TimeOnPage instead of Pageviews?
Example TimeOneSite greater than 15 sec.
You can try this: 'Exclude' 'Page' 'Matching RegExp' '/careers.+$'
It should exclude any visits within the careers section beyond the main careers page.

Resources