Let’s fix these UTM parameters (Part 2)

Last week, I shared a write-up listing some tools that can help you consistently use UTM parameters in your tracking efforts. (I’ve provided a link for it below for your convenience.)

Today, I am here to tell you: PPC minds think alike!

Fellow member of the list Omru Levi and I both came up with a solution to easily check all the UTM parameters in your landing page URLs.

Let’s use Google Sheets to parse these parameters from the URLs!

Here’s what that looks like:

(Click image to enlarge)

And here’s how you can do it:

1) Download your expanded landing pages report from the Google Ads UI
2) Make a copy of this Google Sheet 
3) Copy and paste URLs from your report into the Google Sheet column A
4) Add the UTM parameters you want to extract in columns P, Q, and R 

Et voilà!

Here’s a link to my Google Sheet: https://docs.google.com/spreadsheets/d/1BBFcrKVsxNnAoY97TteqiZnF8Xpe3ySiYuu8tbZ5H_o/copy

And here’s a link to Omru Levi’s solution -> https://www.mediaflowzz.com/google-sheets-utm-extractor/

– Nils

PS: As promised, here’s a link to the earlier write-up -> https://nilsrooijmans.com/daily/lets-fix-these-utm-parameters-part-1

Let’s fix these UTM parameters (Part 1)

UTM parameters… you gotta love them.

They’re very powerful for tracking purposes, but they’re also as reliable as a chocolate teapot if you do things manually.

I had to install a bunch of them for a client today and came across these tools that helped me get the job done.

One day, they just might benefit you too 🙂

Google’s Campaign URL Builder
https://ga-dev-tools.google/ga4/campaign-url-builder/
This tool allows you to easily add campaign parameters to URLs so you can measure performance with GA4.

URL Decoder/Encoder
https://meyerweb.com/eric/tools/dencoder/
Handy for encoding URLs containing UTM parameters with wonky values (e.g., utm_campaign=”50% Off Summer-Sale NR#1″).

Express UTM Builder (paid)
https://utm-builder.com/ 
I really love this tool. It allows for easy and consistent (!) tagging by all members of my team (e.g., no more ‘utm_source=Facebook’ versus ‘utm_source=facebook’ mistakes). Watch the demo, it only takes 3 minutes! (Note, I am not affiliated in any way.) Here’s a link: https://www.youtube.com/watch?v=W6SAXmSsZzk

I hope these help you in your future tracking endeavours!

– Nils

[Google Ads Script] Tag your winning search ads

Here’s my catch of the day: a script by fellow PPC friend Kian N’jie.

SCRIPT: Winning Search Ad Tagger

URL: https://docs.google.com/document/d/1OTvluEAh9d8nt5B-sHcu5oyipu1jVqGd6bxuEyolWoI/view

What it does:
This script reviews all the RSAs within each enabled ad group, then labels the ad with the highest “conversions per impression (CPI)”, where CPI = CTR*Conv.Rate. It looks at data over the last 30 days and labels the winning ad ‘Current Winner’. This allows for easy filtering and organization via Google Ads Editor or any other tool. The script also updates these labels each time it runs when you schedule it to run regularly.

Why you care:
When you are A/B testing your ad copy, CPI is a key metric that shows the ratio between impressions and conversions.

I’ll let Brad Geddes explain:

When you consider ad testing, which combination is better?

A) A high CTR and a low conversion rate
   – Lots of people click on your ads, so your page gets a lot of visibility, but not many of those users convert

B) A low CTR and a high conversion rate
   – Not many people click on your ads, but of those that do, many of them convert

It’s impossible to say which is better since that information relies on two different metrics: CTR and Conversion rate.

What CPI does is combine these two different metrics to form one single metric that will show you which ad will receive the most conversions from the impression.

PRO TIP: Add CPI as a custom column in your Google Ads interface to easily see the different CPI values for your different ads.

– Nils

PS: This script would be even better if it only looked at ads that had gained a significant amount of impressions before choosing a winner. It currently looks at all enabled ads, irrespective of the number of impressions, which I think is a mistake. If you agree and want the version that does take a minimum number of impressions into account -> send me an email at nils@nilsrooijmans.com.

detecting automation opportunities

Everyone’s work involves tasks that are recurring.

Some take little time. Others take a lot of time.

How do you know how much time, exactly?

One way might be to look at your activities at the end of your working day, take note of the time it took to complete your tasks, and then ask yourself why you’re still doing this thing manually.

Do this for a week or two, and I think you might start to find great opportunities to automate some of those tedious tasks that seem to just take forever.

– Nils

PS: Free offer -> if you share your time tracking notes with me, I will point you to the right script(s) to get you started on the automation journey that can save you tons of hours. You can do this by sharing them with me via email at nils@nilsrooijmans.com.

[Performance Max] Compare product clicks from PMax vs Shopping… in only 2 minutes

Did you know you can easily compare product clicks from PMax vs Standard Shopping? You can do so in only 2 minutes!

Here’s how:
1. Open Google Ads UI
2. Navigate to Reports (keyboard shortcut: G + T + ‘report’)
3. Click ‘Create’ to create a custom report
4. Add ‘MC ID’ (merchant center ID) to Row data
5. Add ‘Campaign type’ to Row data
6. Add metrics as Columns 

Here’s what this report will look like (click image to enlarge):

NOTE: Not all product clicks from PMax campaigns are clicks from Google Shopping Product Listing Ads. PMax may also show your products in dynamic remarketing or other exotic locations it is hiding from us.

– Nils

[PPC Productivity Hack] Best investment of the year so far

Here’s my best ‘PPC Productivity Investment Of The Year’ so far:

1) I got a new laptop with an 8-core CPU (max turbo frequency of 4.8 GHz) + 48GB RAM. All this power to render the sluggish Google Ads UI.

2) I’ve set up a big high-res widescreen monitor so I can see all my columns at once without horizontal scrolling.

3) I then placed the displays side-by-side.

When I conduct an audit, Google Ads is displayed on the monitor. Next to it, on my laptop screen, I can edit the audit report.

Let’s go!

– Nils

[Performance Max] You can exclude spammy placements, and here’s how

Do you want to protect your brand and save some money from irrelevant clicks in your PMax campaigns?

If so, head over to the ‘Performance Max Campaigns Placement’ report, identify spammy placements, and exclude them.

How? Simply follow these 4 steps:

1. Go to Report Editor => Predefined Reports => Other => Performance Max Campaigns Placement

2. Download the list and check the MOZ spam score with a tool like https://reviewgrower.com/tools/spam-score-checker/

3. Make a list of the top spammy websites, then…

4. Exclude them at the account level in Google Ads. Here’s how you can do so: Go to Tools and settings => Content suitability => Advanced settings => Excluded placements 

Go ahead, save yourself some fraudulent clicks. It only takes 5 minutes!

– Nils

PS: If you want me to create a script to automate this PMax optimization process for you, send me an email at nils@nilsrooijmans.com.

remove annoying Draft campaigns in just 3 secs

Are these annoying Draft campaigns at the top of the campaign view driving you crazy?

I’ve tried to delete them at least a thousand times but couldn’t figure out how. It seems I haven’t been alone in this. Thankfully, our PPC Chat friends at X/Twitter found a solution:

1) In the Google Ads UI, go to the Overview page (use keyboard shortcut G+O)
2) Go to “Draft campaign” overview card
3) Mouse over the draft campaign, then click remove

Source: https://twitter.com/AndrewLolk/status/1747677445028012071

– Nils

Are your high-CPC keywords having quality score issues due to below-average relevance? Here’s your fix.

Let’s say you’re in lead gen, and you’re working in a niche that is notorious for absurdly high average CPCs. Let’s say car insurance.

80% of your leads come from only 20 keywords. Three keywords in your top 5 suffer from low quality scores due to ‘Ad Relevance’ scores ‘Below average’. Sounds familiar?

Let’s say you’ve also already applied all the PPC 101 tricks to improve ad relevance:

1. Include keyword in headline
2. Include keyword in description
3. Include keyword in display path
4. Make sure the ad copy resonates with the search intent behind the keyword

Yet, still… Google tells you your ‘Ad Relevance’ scores are ‘Below average’.

What do you do?

You watch Ed.

URL: https://www.youtube.com/watch?v=0s8mCdxvorU

Yep, that’s Ed Leake again and in this video he shows you how you can leverage Google’s Natural Language API to increase your ad relevance score.

– Nils

PS:

Ed actually has at least 23 more tips to improve your ad copy. They are part of the God Tier Ads Framework. If you want to simplify account management, take back control, and improve results (or your money back) -> sign up for Ed’s God Tier Ads.

Use my discount code “NILS100” at checkout for $100 off. Pay once, get lifetime access to everything.

I’d still share these tips without the kickback. Ed’s pro tips have made me way more money than I’ll ever see from commissions, but a few extra bucks is nice! Here’s the link again: https://app.godtierads.com/gta-bonus-bundle/apnnu

how to get better results

As we dive into the new year, let’s remember: 

New PPC goals don’t necessarily deliver better results. 

The proper execution of better strategies does.

Also, the execution of a PPC strategy is a process, not an outcome. By refining and improving this process, you’re not simply chasing results – you’re building a pathway to achieve them consistently.

Improve the process, and results will follow.

– Nils

Unlock the Google Ads Script Vault: Top 5 of 2023 & More!

Last week, I shared my Top 5 Google Ads Scripts of 2023.

ICYMI, here’s the link to the blog post with all 5 scripts:
https://nilsrooijmans.com/the-best-google-ads-scripts-of-2023/

And if that doesn’t whet your appetite, here are 5 more lists featuring the best scripts from previous years:

Happy scripting!

– Nils

How to exclude automated changes from your change history alerts

One of my email newsletter subscribers Merlijn Schroten asked me a question last week (shared with permission):

I always make happy use of your script ‘alert for when someone outside of the team makes changed into the google ads account’.

However, I keep on receiving messages where the client type is not an e-mail address, but: GOOGLE_ADS_AUTOMATED_RULE

Do you have any idea how to exclude this ‘user’?

Great question, and good news: there’s an easy fix for that!

If you do not want to receive alerts when Google Ads’ Automated Rules make changes to your account, simply add the user ‘Bulk Actions’ to the IGNORE_USERS array in Line 21 in the script.

Example: 

    var IGNORE_USERS = [ 'john@doe.com', 'Bulk Actions'];

After that, you won’t receive any alerts from changes by John, or changes from any Bulk Actions.

Here’s a copy of the script, for your convenience:

Change History Alerts

URL: https://nilsrooijmans.com/google-ads-script-change-history-alerts/

What it does: The script checks all the entries in the Google Ads change history of your account, and if there is a change by a user outside of your list of ‘recognized’ users, you will get an alert via email. The alert mail contains the number of changes as well as a link to the Google Sheet that lists all changes by unrecognized users.

Why you care: It is all too often people outside your team (or Google) make changes to the Google Ads accounts you manage. You want to make sure these changes are in line with your strategy asap. This script ensures you do.

Happy scripting!

– Nils

Track the quality of your leads

You know what’s better than good leads? 

Sales.

The quickest way to get more sales is to track the quality of your leads.

How do you track the quality of your leads?

By qualifying a lead in each and every step of your funnel, AND communicating this qualification back into Google Ads.

Here’s the thing: If you don’t know (measure!) the quality of your leads, your odds of delivering sales go way down.

And if you aren’t delivering sales, after a while it gets pretty hard to believe in the quality of your leads.

– Nils

brand restrictions for search campaigns

Are you running separate search campaigns for your brand keyword? (You should!)

And, because of Google’s dance with the keyword match types, are you increasingly seeing non-brand search terms being matched to your brand keywords? (Don’t we all?!)

If so, Google’s ‘brand restrictions for search campaigns’ may be just what you need. Brand restrictions allow you to restrict your campaign’s traffic to Search queries that contain specific brands. 

NOTE: Enabling brand restrictions for Search requires the campaign to have the broad match campaign setting enabled.

More info here: https://support.google.com/google-ads/answer/13721847?hl=en

I haven’t tested this feature myself and prefer to use a script to retroactively add non-brand search terms as negative keywords.

– Nils

PS: If you have used this feature, I’m curious to hear your thoughts on it. You can email me about them at nils@nilsrooijmans.com.

Is your analytics firing on dead pages (404’s)?

Currently, I am in the process of onboarding a new client that sells some interesting stuff: first aid kits for dogs. It’s a pretty popular type of first aid kit too! Who would have known? 

Anywayz… 

The thing is: the client’s website shows some weird behavior:
Final URLs that include UTM parameters are working 100% ok.
Yet, the same URLs without UTM parameters  -> crickets. As in, redirect to HTTP 404 response page.

So, I wondered what percentage of site visitors had to ‘play fetch with a ghost bone’. I went into Analytics to find the number of visits to this 404 page.

ZERO!

Hmmm…

That can’t be right now, can it?

Nope. It can’t and it isn’t.

Problem: the GA tag is not firing on the 404 page. So it’s not easy to find out how many visitors leave the shop because of this terrible user experience, and thus how important it is to fix this.

Unfortunately, this scenario is not uncommon. In fact, it is one of the things I’ve learned to check when onboarding new clients.

Truth be told, I’ve learned to check 404 pages from Ed Leake’s GTA Framework.

Here’s how Ed brings it: 

(Click image to enlarge)

Note the pro tip in yellow: you can set an alert/custom insight in Analytics/GA4. 🙂

I really like that one. Thanks to the alert, I am always in the know if 404’s are skyrocketing for some reason. (IT guys deploying on Friday afternoon? Anyone?)

 – Nils

PS:

Ed actually has over 400 practices in his PPC Framework that will help you onboard a new client. They are part of the God Tier Ads Framework.

If you want to simplify account management, take back control, and improve results (or your money back) -> sign up for Ed’s God Tier Ads.  

Use my discount code “NILS100” at checkout for $100 off. Pay once, get lifetime access to everything.

I’d still share these tips without the kickback…Ed’s pro tips have made me way more money than I’ll ever see from commissions, but a few extra bucks is nice!

Here’s the link again: https://app.godtierads.com/gta-bonus-bundle/apnnu