Observations and Musings
I’m going to write something down here to try and cement it into my brain:
troubleshooting rule #1: don’t assume anything is working correctly
I’ve learned this rule the hard way, and unfortunately I’ve had to learn it more than once. My latest lesson was recently, when I was troubleshooting why hidden form values weren’t getting passed from a parent page to an iframe. Specifically, I was trying to get the GA4 Client ID appended to form submits, so we could import CRM qualified lead data back into GA4.
The client ID was getting appended about a third of the time, and I couldn’t figure out why. I was using the JavaScript postMessage() method to send the value, and it worked every time for me in testing. It’s always hard to troubleshoot when you aren’t able to replicate the problem, but I went through a laundry list of postMessage() gotchas in hopes that I would happen upon the solution.
It turns out, I was trying to solve the wrong problem. I was using Google Tag Manager to place the postMessage() code, and I didn’t think to verify that Google Tag Manager was functioning properly. When I finally did check, it was not. Cookie consent had been implemented in such a way that Tag Manager would not load at all if a user had not consented, and the default consent state was set to ‘denied’. Unless a consent banner forces a choice, a majority of visitors will close it without making a selection or ignore it altogether, so Tag Manager was not loading for most users. I had previously accepted cookies, which is why my code worked for me when I tested.
If I had started with rule #1 and tested the foundations of tracking first, I would have saved myself a lot of time and agony. Next time, hopefully.
What’s New in GA4
There have been quite a few GA4 updates released this month, but IMO each is relevant to a smallish subset of GA4 users so I’m not going to dedicate much space to them here. Here is the list, in case any pique your interest:
-
- Data access and API quota history reporting – useful if you have multiple people/organizations using the API and are hitting quota limits.
-
- Improvements to Google Analytics cost data import – I suppose this is useful if you are trying to make GA4 your single source of truth. Personally, I think that’s a bad idea.
-
- You can now build customer match audiences in Google Analytics – I’m not sure the benefits of doing in GA versus Google Ads, but there it is.
-
- Google Merchant Center recommendations now appear in GA4 – this just seems like brand confusion to me, but I do find the Merchant Center UX pretty hard to navigate, so I guess it’s helpful?
-
- You can now define custom channel groups based on the Manual ad content field (utm_content) – since most people don’t even use utm_content, this probably won’t affect you.
Let Users See Report Filters in Looker Studio
This is a mundane-sounding update, but it’s actually really handy. You can now make all report filters visible to Looker Studio dashboard viewers. I’m not sure how many dashboard viewers will actually make use of this feature, but the interface makes it much easier for power users to see and troubleshoot where filters are applied and how they are configured.
My friend Noah recorded this helpful, short video walkthrough of the feature.
Do Not Sell and Do Not Blame Your Lawyer
I got a little frustrated with a lawyer last week over a privacy requirement. Shame on me for getting emotional – he was just interpreting the CCPA/CPRA as he understood it. And also shame on me for trying to apply logic and reason to privacy regulations. Without getting too specific, the situation in question involved a tracking script provided by a vendor that locates visitors by doing lookups on IP addresses. From his point of view this fell under the ‘Do Not Sell’ requirements of CPRA, and in particular he wanted to make sure a user’s historical data would be expunged if they select ‘Do Not Sell’. I still have no idea how this would actually work, but that’s not the point. Over 20 US states have internet privacy laws on the books, written in legal jargon and enacted by people with varying degrees of competency. Trying to apply logic and reason to how they work is a fool’s errand.
For example, I naively thought that “do not sell” meant do not sell, but the legal definition of “sell” in this case doesn’t require money to change hands. If you receive something of value in exchange for personal data, that constitutes a sale. I’d better stop before explaining what “personal data” is under CCPA/CPRA, because, well, I’m not a lawyer.
If you, like me, find privacy laws overwhelming, I have a few suggestions.
- The very best thing is to have a lawyer versed in privacy law regularly review your setup. If you are a larger organization and/or have significant exposure, this is what you should do.
- Next best is to use a third-party Consent Management Platform such as CookieBot and make sure that you stay on top of updates. I’ve worked with a number of these platforms and the one thing I’ll say is that they tend to stay up-to-date with more prominent legislation such as CCPA/CPRA and GDPR, but most of the world has some form of privacy legislation in place, and it’s not safe to assume that you are sufficiently covered with a one-size-fits-all solution.
- Create your own NotebookLM repository of privacy laws. I loaded all of the CCPA and CPRA into a notebook and asked it questions so I could understand the law better. I’d previously looked for a course I could take, and didn’t find anything that fit my needs. I think everything is changing too fast for a course to keep up. And when you search for information about these regulations online, most of what you will find is articles written by Consent Management Platforms for marketing purposes. When I was trying to understand Do Not Sell, one of the first articles I found was authored by a “Senior Content Marketing Manager II”. I have no reason to believe the advice in the article is bad, but nor do I have reason to believe it’s good.
NotebookLM absolutely does not replace the need for a lawyer, but it has helped me a lot, and provides citation links that allow you to go straight to the source.
Content we’ve published
-
- Tracking AI Traffic in GA4: A Step-by-Step Guide – I included a video version of this in last month’s roundup. Here’s a blog version in case you prefer that.
Articles/Videos that made me smarter
-
- Privacy Theater Exposed – In this video, Jenn Kunz takes a critical look at privacy controls and options for complying with consumer privacy legislation and dispels some pervasive myths. She is a great teacher and very knowledgeable about the subject.
-
- Major Large Language Models (LLMs) ranked by capabilities, sized by billion parameters used for training – the thing about this visualization that really blows my mind is the rapid increase in LLMs hitting the market in just the last year. Slightly terrifying.
-
- Critical thinking, stats and deviations with Bhav Patel, in this episode of the Standard Deviation podcast, Bhav Patel provides insights on how to incorporate critical thinking into analysis, and how to provide context when doing and sharing analysis. I linked to 39:36 in the podcast because that’s where I felt like it got interesting. The podcast is also available on all major platforms.
Don’t Miss our Next Analytics Roundup
Sign up for our newsletter to get Nico’s monthly Analytics Roundups delivered to your email box.