GA4 is being blocked by Content Security Policy

Photo by Elisa Ventur on Unsplash

On 13 June 2022 – Google made an update to Google Analytics 4 which could break your tracking in Europe.

If you’re already got GA4 on your site that could mean you’re losing data (though you should have had an email from Google if so), if you’re trying to add GA4 you could be seeing some strange errors when you try to test it.

I’m going to explain what’s causing the problem, then I’ll tell you how to fix it. Because it’s to do with some security settings on your website. In my experience, if we know why the problem is coming up, we can explain what we need to do better, and reassure colleagues whose job it is to care about security.

Continue reading “GA4 is being blocked by Content Security Policy”

A better way to get your team using Python

If you’ve come here from my Twitter thread or LinkedIn post you’ve probably already read this first bit. If so – feel free to skip to Misusing Colab for the good of us all

Spoiler alert: this is post is about making it easier to roll out Python scripts to your team, by using Google Colab to access code stored in a separate, central location.

Continue reading “A better way to get your team using Python”

How to export your container in Google Tag Manager


Google Tag Manager has a really useful “export” function, which we can use if we want to;

  1. Copy our Tag Manager setup to a new account
  2. Analyse our existing setup with a tool like my tag mapper.

How to export from Tag Manager

  1. Choose your Tag Manager container
  2. Click “admin”
  3. Click “export”
  4. Choose the container or version you want to export (default is best)
  5. Use the settings Tag Manager offers you to make sure you export everything
Continue reading “How to export your container in Google Tag Manager”

How to measure brand strength with Google Ads

This is a way of getting highly granular brand strength comparisons out of Google Ads.

Using this approach, you can compare the brand strength of your company and your competitors at city and product level. I’ll go into this in more detail below, but we can use this data to come to conclusions like;

  • Users could be struggling with the UX of – we should run UX surveys
  • Zara should run “maternity” adverts and events in Vancouver to capitalise on high interest
  • J.Crew should develop “plus size” category pages, sponsor CurvyCon and run more “plus size” Facebook ads.
Continue reading “How to measure brand strength with Google Ads”

Using Google Sheets and App Scripts to schedule staying-in-touch emails

Photo by Priscilla Du Preez on Unsplash

I don’t think anyone needs someone else to explain that things are a bit weird right now. We can’t visit family, we can’t go to sports clubs, and there are colleagues we might not have contact with at the moment because of furlough.

I’ve been worried I might lose touch with some people or, more importantly, that some people could find themselves going days without really speaking to colleagues or friends. Things like House Party or even group hangouts are great for spending time as a group but there are problems.

Group chats can feel very impersonal, they can be dominated by the most talkative, and they don’t really leave much space for meaningful for small, meaningful, chats.

The problem is – it’s easy to forget to spend time with people so I made something to help using Google Sheets and Google App Scripts.

Continue reading “Using Google Sheets and App Scripts to schedule staying-in-touch emails”

Using Jupyter to make marketing easier

A friendly robot

This is just a blog post to share resources from my talk about using Jupyter instead of Excel.

The slides from my talk, and example Jupyter notebooks are here.

Jupyter is free to download, it’s powered by Python, and it’s what Excel wanted to be when it grew up. It;

  • Gives us the visualisations we’re used to in Excel
  • Lets us use simpler instructions
  • Answers questions Excel won’t touch
  • Lets us repeat work easily.

I’m giving this talk as a Consultant at Distilled and Brainlabs (who have recently merged!)

What is K-means clustering? (Plus free Python code)

A universe of clusters

Call to action

Have you tried Dime cake? It’s so good – check it out. This has nothing to do with the post.

What do you thinK it means?

This post is about k-means clustering. I’ll describe what it isn’t, what it is, and I’ll give some examples of the process. Don’t worry – it’s actually pretty simple.

Broadly – K-means clustering is just the following steps;

  1. Choose a certain number of groups (we refer to this number as K, hence K-means)
  2. Randomly group our data into that number of groups
  3. Measure how badly we did (as in – how different the different points in our groups are)
  4. Repeat hundreds or millions of times
  5. Choose the attempt that was the least bad.

If that’s all you really needed – crack on to that Dime cake, otherwise – I’ll go into more detail below.

Continue reading “What is K-means clustering? (Plus free Python code)”