[PPC Productivity] Lorem fill, your cure to form fatigue

Have you ever had to fill out a form tens of times just to test if conversion tracking is set up correctly?

Re-populating these empty input fields with dummy data, countless times…

Ugh.

Here’s the good news: with the Lorem Fill plugin you can skip the horror of these endless mouse-click-type repetitions.

This plugin allows you to complete all input fills in a single stroke.

Here’s what that looks like:

Here’s the link:

https://chromewebstore.google.com/detail/lorem-fill/jfjnfhfeibkcokofbeipmehclfdojpaa

– Nils

magical experiences

I just got back from my vacation.

A motorcycle road trip through Oregon and Idaho.

There’s something magical about motorcycle road trips.

You go where the roads take you.

You don’t know where you are going.

You don’t know where you’ll end up.

There’s no way to get lost.

If you are on a motorcycle you can’t get lost.

You are there.

I’ve created my best scripts while having the same magic feeling.

Not knowing where I am going.

Just open up the white space in the script editor and start scripting.

See where the code takes you.

It’s magical.

– Nils

reporting confession

I’ve got a confession to make.

In Wednesday’s mail, I told you I don’t do fancy reporting, and offered you a script to automate the very limited data that I do report. (Email repeated below for your convenience.)

It’s true; I do not send fancy reports to my clients.

However… I do advise many of my coaching clients to use a fancy reporting tool!

What’s that, Nils? You don’t eat your own consulting dog food?

No. And yes.

Here’s what happens.

Many of my coaching clients are small to medium-sized agencies that want to do more with less hands. I help them automate the work so they can increase revenue without increasing headcount.

They typically serve tens if not hundreds of clients.

One of the main things that takes my clients forever? Sending out monthly, or even weekly, reports to their clients!

Many agencies have clients that simply expect them to send detailed reports. On time, every time. If they don’t, the client starts dialing numbers.

Many agencies use detailed reports as an entry point to start a conversation. That conversation with the client increases client retention.

Many agencies simply promised it in their initial offering.

Many reasons. Many hours of tedious, labor-intensive data gathering, number crunching, dashboarding, writing summaries, sending out emails…

Many hours of wasted time.

Wasted? 

Yes. Because you can automate almost all of it, and I’ve got just the solution for you.

IF…

  • you are swamped with daily reporting tasks and are losing your mind over it
  • or, you’ve cobbled together some data source connectors that should work, but never do
  • or, you are fed up with time-consuming setups for each new client
  • or, you simply do not have the time to learn new complex tooling
  • or, you don’t have the money for overpriced reporting solutions

THEN…

your GO-TO solution is Swydo.

I’ve found Swydo to offer the best price-to-quality ratio when it comes to automated reporting, for these reasons:

  • it aggregates data from the major platforms
  • it has a very small learning curve (easier to implement than Looker Studio)
  • it offers a free trial with a great onboarding service (get your specific report running in 20 minutes!)
  • it allows for copy-paste templates you can use for each new client
  • it’s the cheapest solution out there unless you want to spend a lot of time on the plumbing and client setups
  • it is reliable and robust (reports go out on time, every time)

Don’t get me wrong, it won’t give you the flexibility of a custom reporting setup using Supermetrics, Big Query, and Looker Studio. If that’s what you need, go for it.

Swydo is low effort, low cost, and just good enough. And good enough is what most agencies need.

– Nils

PS: If you want a reliable and affordable solution to automate your performance reporting -> sign up for a free trial

When you are happy with the tool and ready to upgrade, mention “NilsRooijmans” during the upgrade to get a $100 discount. 

I’d still share these tips without the kickback, but a few extra bucks is nice!

Here’s the link again: https://www.swydo.com/?utm_source=nilsrooijmans&utm_medium=newsletter&utm_campaign=jun2024)

Lastly, as promised, here’s the email from Wednesday: https://nilsrooijmans.com/daily/google-ads-script-monthly-reporting-my-very-basic-version

Google Ads Editor freezing again: here’s my fix

One of the most annoying things in my PPC workday?

Google Ads Editor stalling.

It’s constantly freezing when downloading my account, not responding at all after multiple attempts. Again, and again. 

Yes, also after checking my internet connection, resetting my machine, downloading the latest version of the tool, and only selecting the basic download of a selection of the campaigns.

I’ve tried everything from signing in and out, removing temp files, disabling virus checkers, using VPN, and turning off Cloudflare… nothing works.

It still freezes.

Sounds familiar?

If so, try this solution for large accounts: you can force the download to finish by changing the download mode in Google Ads Editor! 

For Windows:

  • Select Start > Run, then type cmd.
  • Press Enter.
  • Enter the following command: cd “C:\Users\%USERNAME%\AppData\Local\Google\Google Google Ads Editor”
  • Press Enter.
  • Enter the following command: start google google_ads_editor_launcher.exe -dlMaxRequests
  • Press Enter.
  • Restart the account download.

FINALLY! I got the complete account downloaded in Editor again. (It still took 3 hours, though.)

Here’s a bunch of additional resources that will help you get the job done and Google Ads Editor back up to speed:

Uninstall and remove temp files:
https://support.google.com/google-ads/editor/answer/30515?hl=en

Download and install the latest version:
https://support.google.com/google-ads/editor/answer/30513

Select a portion of the account and download only basic data:
https://support.google.com/google-ads/editor/answer/30542

Make sure to not download images and videos:
https://support.google.com/google-ads/editor/answer/38872?hl=en

Log diagnostics to see what went wrong:
https://support.google.com/google-ads/editor/answer/94249?hl=en&ref_topic=9314

Hope this helps,

– Nils

[Google Ads Script] Monthly reporting: my very basic version

I don’t do fancy reporting.

In the end, there are only 4 numbers that matter:

  1. Google Ad Spend
  2. Gross Profit (from Google Ad Spend)
  3. My Google Ads Management Fee
  4. Your Net Result (‘net result’ = ‘profit’ – ‘ad spend’ – ‘management fee’)

Here’s what that looks like:

Here’s how I automate that via Google Ads Scripts: https://nilsrooijmans.com/google-ads-monthly-reporting-script-my-very-basic-version/

Go ahead, try the script right now!

It only takes 5 minutes to set up, and your clients will love you for the simplicity.

Happy scripting!

– Nils

help me decide the next course?

I am recording a video course on Google Ads Scripts this summer.

Can you help me decide on the exact contents?

I’ve prepared 3 different courses for different levels and need some advice on which one to start with:

A) Google Ads Script Tutorial for Absolute Beginners

  • Learn the absolute basics. 
  • At the end of this tutorial, you’ve learned just enough to comfortably install, test, and run your Google Ads Scripts, AND you’ve installed the 5 best scripts for your account.
  • Contents: 5 15-minute videos + 5 exercises
  • Your total workload: 4h
  • Price: ~$170

B) Google Ads Script Training for Beginners

  • Learn to create basic scripts.
  • At the end of this training, you will be able to read and understand almost any Google Ads script out there, understand basic Javascript concepts AND you’ve created your first, very own, Google Ads Script from scratch. 
  • Contents: 8 15-minute videos + 8 exercises
  • Your total workload: 8h
  • Price: ~$470

C) Google Ads Script Course for Intermediates

  • Learn to fix and write Google Ads Scripts for any task.
  • At the end of this course, you’ll know about all Google Ads Scripts concepts and how to use them. You’ll be able to fix and write scripts for almost any task in Google Ads.
  • Contents: 12 15-minute videos + 12 exercises
  • Your total workload: 20h
  • Price: ~$1470

D) Other, namely…

For A, B, and C, please rate your level of interest in each on a scale of 1 (least interested) to 7 (most interested).

If you respond in the next 48 hours, you will get access to an early bird discount.

Thanks a ton for your help!

– Nils

[Google Ads Script Review] PMax Shopping Spend Drop Alert

Are you running PMax campaigns and do you hate wasted ad spend?

If so, here’s another Google Ads Script for you. 

What it does:
This script monitors Performance Max campaigns across multiple Google Ads accounts under an MCC. It checks if these campaigns were served in Google Shopping the previous day and if their spend meets a specified threshold. If any campaigns do not meet these criteria, the script sends a warning via email.

Why you’d care:
For most advertisers running PMax campaigns, clicks from the Shopping PLAs are the main revenue driver. Spending the budget on other channels like Display and YouTube mostly tanks results. If, for some reason (*), PMax stops generating clicks from Shopping and/or starts spending much more on Display or YouTube, you want to be in the know.

(*) Potential reasons for PMax dramatically shifting spend to non-Shopping channels:

  • Main products go out of stock
  • Main products get disapproved
  • Settings mistakes: wrong exclusion settings in product groups (e.g., custom label filters), too low/high ROAS targets, budget too high
  • Sudden change in actual ROAS performance due to: sale promotions, seasonality, competitor pricing, increased brand traffic
  • Google’s greed to make more $$$

Why I like it:
This script will help you monitor PMax behavior and make sure performance stays on par. It is another great example of how I like to use scripts to Keep an Eye on Google’s AI.

URL: https://drive.google.com/drive/u/0/folders/1GsgWS3GYeIXxTBvHyxJrkY-Za3FD1Vd8

Note on the installation:

Be sure to read the instructions in the Google Drive folder.

PRO TIP:
Learn about 15 other scripts I use to optimize PMax campaigns by watching the recording of my SMX Advanced session on “Mastering Performance Max campaigns using scripts.”

Happy scripting!

– Nils

What role do I want my work to play in my life?

When you consider a new client or job opportunity, one of the first questions to ask is: 

“What role do I want my work to play in my life?”

Make as few decisions as possible that violate your answer.

Here’s the thing:

Many opportunities are disguised in excitement but actually give you less of the life you want.

– Nils

betting to grow

In PPC, every decision is a gamble.

When you decide on a course of action, you’re betting that your decision will pay off.

It might work, or it might not work.

You don’t know in advance.

You CAN’T know in advance.

You have to test.

You have to take a chance. 

As with all bets, you must put some “chips on the table” for a chance to “win the pot.”

The trick to making good decisions over the long term is to consistently try to maximize your payoff and minimize losing what you put at risk.

In other words, don’t “bet the total monthly budget” on a long shot that is highly unlikely to pay off.

Instead, make lots of small bets that have the potential of paying off big.

Placing small bets on new products, new keywords, and new audiences.

That’s how you grow your PPC accounts.

– Nils

Join me at SMX Advanced: free session on Mastering Performance Max using Scripts

Are you having trouble getting consistent results from PMax?

Do you feel PMax is wasting your spend?

Or does scaling PMax campaigns feel like a hit-and-miss to you?

If so, please join me in my session about ‘Mastering Performance Max using Scripts’. Coming up at SMX Advanced next week!

You will learn (1) how Google Ads scripts can open up the black box that PMax is, and (2) how you can use scripts to automate PMax optimizations that would not happen without them.

Hope to see you there!

Session Title: ‘Mastering Performance Max using Scripts’ 

Date and Time: June 11, 12.30 PM – 1.30 PM (EDT) / 18.30 – 19.30 (CEST)

Register for free: https://searchengineland.com/smx/advanced/agenda

should you increase your impression share?

Last week, one of my coaching clients asked how they could improve impression share for good-performing keywords.

Here’s my answer:

I am not sure if a “better impression share” is really what you are after; sometimes “worse” impression share leads to more profits.

The reason for this is that Impression Share (IS) includes all auctions where your ad showed (impressions), and all auctions where your ad is competitive enough to enter the auction (total eligible impressions).

NOTE: The total volume of searches out there might be much higher than your number of total eligible impressions because of your targeting and/or budget and bidding settings preventing you from entering the auction.

Impression share (IS) is the percentage of impressions that your ads receive compared to the total number of impressions that your ads could receive. Here’s an example:

Impression share = impressions (47) / total eligible impressions (100)

Thus, IS = 47%

It might very well be that with a CPC bid that is 200% of your current bid, you achieve an IS of 72%. However, your CPA might increase drastically because of your higher spend on acquisition.

That being said, there are some cases where it makes sense to try to increase your IS. Here’s how:

1) If you are happy with the current CPA, AND your campaign is limited by budget, meaning ‘Search lost IS (Budget)’ > 0% —> simply increase budget (I recommend steps of 20%)

2) If your current CPA is below your targets, AND your campaign is NOT limited by budget —> try increasing your CPA target (again, I recommend steps of 20%)

3) If your current CPA is around your target or higher —> 
   3.1) improve your targeting (add negatives, exclude low-perf placements, exclude low-perf locations, exclude low-perf audiences, exclude low-perf demographics) 
   3.2) improve your ad quality. Also see: https://support.google.com/google-ads/answer/6167130?visit_id=638516356303037699-3656695430&rd=1

– Nils

create an edge

One of the characteristics of Google Ads Scripts that I probably don’t talk about enough is this:

Google Ads Scripts give you an edge over your competition.

Here’s why:

In an AI-driven world, where Google is trying to automate everything for the average advertiser, scripts allow you to automate the stuff at the edges.

It is at the edges where you make the difference and discriminate yourself from your competitors.

Here’s the thing:

Google Ads Scripts allow you to create automations that are unique for you and your clients.

(And the more uniqueness you create, the better you position yourself for this AI-driven future that levels our playing field.)

– Nils

underused but useful feature

Here’s a feature I often receive a great deal of praise for when I demonstrate it during my coaching sessions:

Segment by Conversion Action.

It’s an easy way to quickly discover the exact type of conversions generated by your campaigns.

Here’s what that looks like:

(click image to enlarge)

Notice how, in this example, the third campaign seems to generate a completely different mix of conversion actions than the first two.

Here’s the thing: segmenting by conversion action might give you insights that you would have completely missed if you only looked at the totals (and you have more than one Primary conversion action).

PRO TIP: If you try this and notice valuable insights, add custom conversion columns for each conversion action, and add them to your column set. Here’s how -> https://support.google.com/google-ads/answer/11305866?hl=en

Your 5-minute action for today: if you have more than one primary conversion action, segment by conversion action and have a look at the results.

Do it now, the numbers just might surprise you!

– Nils

Should you configure MCC scripts via a Google Sheet?

Here’s a question that rolled in from one of the participants of my last webinar on Google Ads scripts:

“If you manage more than 20 Google ads accounts, would you recommend to make use of MCC scripting via a Google spreadsheet where you can add the accounts IDs and thresholds? If so, what are the steps to realise this as it is an advanced method?”

Yes. Using a Google Sheet to manage the client accounts on which your script should run is a great way to keep your scripts setup organized.

For the scripts that run in my manager account, I like to use a Google Sheet that has a ‘config’ sheet inside the spreadsheet.

The config sheet has multiple columns, typically organized as follows:

  • Column A: holds the IDs of the client accounts on which your script should run (REQUIRED)
  • Column B: holds the label for campaigns in the client accounts on which your script should run (OPTIONAL)
  • Column C: holds an additional filter for the campaigns; it holds a REGEXP to match campaign names for campaigns in the client accounts on which your script should run (OPTIONAL)
  • Column D…N: hold the configuration variables for the script logic. Examples: click thresholds, ROAS targets, ‘out-of-stock’ strings landing page HTML, third-party API keys
  • Column O: holds the spreadsheet URL for the output report
  • Column P: holds the email addresses where the output should be sent

Here’s an example:

When the script in my manager account runs, it first reads all the information in this ‘config’ sheet inside the spreadsheet.

Then, it executes (in parallel) the script logic, for each individual client account in column A, using the config variables in that row for that specific client ID.

Everything is nicely organized in this one sheet.

No more tinkering with multiple settings in multiple client accounts!

Happy scripting 🙂

– Nils

explicit needs, implicit desires

Yesterday, I wrote about the “three words for maximum PPC growth”: Maximise Relevant Impressions

Many of you responded with a question:

“Hey Nils, what do you consider a relevant impression?”

My take on relevance is this: your ad impression should address (A) an explicit need, or (B) an implicit desire.

The best ads do both.

Here’s an example:

user query = “cheap VPN provider”

– Nils

PS:

This example is taken from the PDF ’23 Pillars of Great Ad Copy’. It’s a playbook to get more clicks and conversions from relevant ads. The PDF is part of GTA.

If you want to simplify account management, take back control, and improve results (or get 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

Google Ads Scripts Webinar with White Shark Media

ICYMI: two weeks ago, I was invited by our friends from White Shark Media to join them for a webinar on the power of Google Ads Scripts.

We talked about how I got started with scripts and use them for the day-to-day management of accounts in my agency.

If you are new to Google Ads Scripts, it’s a great introduction.

WATCH NOW >>

Even if you’re already using scripts in your accounts, I think you’ll still find the discussion useful.

Sharing is caring!

If you have a friend who you think might benefit from this webinar, please consider forwarding them this email. Thanks!

– Nils

test your PROFIT curve

“Only those who will risk going too far can possibly find out how far one can go.”

T.S. Eliot

How far should you reduce or increase your (ROAS/POAS/CPA) targets?

To maximize your absolute PROFITs, you really need to test different target values in your smart bidding campaigns. 

Why? 

Because your targets directly influence your bids. And your bids influence the number of impressions, your ad position, the number of clicks, and ultimately your total conversion value.

This influence isn’t a linear relation though, it more or less follows a profit curve like this:

Here’s the thing: the exact shape of this curve differs per account, per campaign, and per time period.

To get to know the shape of this curve, we need to do some testing.

Here’s how I like to discover the shape of this curve for the campaigns in my account:

1. Create two versions of the same campaign (geo split, or run campaign experiment, 50-50 split)
2. Change ROAS/CPA target for the experiment  (+/- 20% change compared to the original)
3. Create a custom column that reports profit to easily monitor the difference in performance from the campaign view
4. Keep this experiment running for at least 14 days, and at least until the total number of conversions of both campaigns reaches 60
5. Re-adjust the target for the campaign that showed the least profit and go back to step 4

NB: if you are not already tracking profit in your account, you can create a custom column that uses this formula to report the profit estimate. Here’s how:

(click image to enlarge)

Replace 0.3 with your average profit margin.

Then, this is what the result will look like:

(click image to enlarge)

– Nils