m88 asia
Daniel Gilbert – Search Engine Land News On Search Engines, Search Engine Optimization (SEO) & Search Engine Marketing (SEM) Fri, 12 Jul 2019 18:35:25 +0000 en-US hourly 1 https://wordpress.org/?v=5.2.2 Are your DSAs really outperforming standard ads? Find out with this ad copy length performance analysis script /are-your-dsas-really-outperforming-standard-ads-find-out-with-this-ad-copy-length-performance-analysis-script-319416 Fri, 12 Jul 2019 18:27:07 +0000 /?p=319416 Here's a script that pulls a report on ad performance based on copy length.

The post Are your DSAs really outperforming standard ads? Find out with this ad copy length performance analysis script appeared first on Search Engine Land.

]]>
I’m sorry to say it, but the rumors are true: size matters. Well, ad copy length does, anyway.

Why else would Google keep increasing character limits? Their research found that the new expanded ads got 15% more clicks than other formats.

But are you actually making use of the space that’s available to you?

If you’ve never tested this before, it’s high time to assess your ad performance based on copy length.

With this script, you can do just that… and more! It can compare the performance of standard ads against Dynamic Search Ads (DSAs) across your account so you can check whether DSAs are actually working for you. As much as I love Google, you shouldn’t always trust them blindly – testing is key!

What does the script do?

This script allows you to see the performance of your ads over the last month aggregated by the number of characters used in each part of your ad copy: headlines, descriptions, and paths. So you get aggregated statistics for headline 1 with 30 characters, 29 characters, and so on.

It downloads a report of the account in a Google spreadsheet and creates a number of tabs: Headline 1, Headline 2, Headline 3, Description 1, Description 2, Description 3, Path 1, Path 2, and Path 3. It also creates three tabs (Headline, Description, and Path) where it concatenates all the respective components.

For each one of these components, the report shows the number of ads with a certain character count, and then the sum of those ads’ clicks, impressions, cost, and conversions. It also shows an average cost per click, click-through-rate (CTR), and cost per acquisition (CPA).

In the headline tabs, DSAs are the ones shown having zero characters (though zeroes in descriptions and paths aren’t necessarily DSAs), so they’re easy to spot. By comparing them to the standard ads, you can check whether DSAs are really outperforming expanded text ads.

Why does it matter?

With more ad space, you can be more relevant to the search query and landing page. In other words, a better quality score (and who wouldn’t want that?).

For example, if your CTR performance is underwhelming for two headlines with 30 characters, you might want to consider adding a third headline or using your word count more effectively.

If you spot paths only a few characters long, you’re probably missing out on valuable space. Longer paths look more natural to users, and improve relevance by telling users exactly what to expect from the landing page.

You can also verify what percentage of your spend is coming from small ad space, e.g. old accounts with old ad formats that haven’t been updated yet.

How to get started

The setup for this one is super easy. First, create a blank spreadsheet. Then, copy the script below and paste it in the scripts section of Google Ads. Replace YOUR_SPREADSHEET_URL_HERE at the top with your blank spreadsheet’s URL, and you’re ready to run it. Easy peasy.

You can also play around with changing the date range and metrics if that works better for you. Here’s a link to the script. Have fun!

The post Are your DSAs really outperforming standard ads? Find out with this ad copy length performance analysis script appeared first on Search Engine Land.

]]>
Build your PPC campaigns with this mini campaign builder script for Google Ads /build-your-ppc-campaigns-with-this-mini-campaign-builder-script-for-google-ads-318210 Fri, 14 Jun 2019 12:00:24 +0000 /?p=318210 This script lets you build or add keywords to your Google campaigns following standard best practice.

The post Build your PPC campaigns with this mini campaign builder script for Google Ads appeared first on Search Engine Land.

]]>
Need to quickly build a campaign or add keywords to an existing one? This script will do the work for you!

All you need to do is input a few keywords and headlines in a spreadsheet and BAM! You’ve got yourself the beginnings of a great campaign.

I’m a firm believer in Single Keyword per Ad Group (SKAG) structure – it increases ad/keyword relevance and therefore improves quality score, makes CPCs cheaper, gets you a higher ad rank and a better CTR.

Sadly, building out SKAG structures is a pretty time-consuming endeavor. You can’t implement millions of keywords and ads without PPC tech powering your builds.

But if a client just needs a couple of new keywords after updating their site with new content, this script is a quick and easy solution.

And that’s exactly what I love about PPC. There’s a special place in my heart for simple scripts anyone can use to achieve tasks that are otherwise repetitive or near-impossible.

What does the script do?

This tool will save a lot of time with small-scale builds where you know exactly which keywords and ad copy you need, for example when you’re adding a few keywords to an existing campaign.

You input your campaign name, keywords, headlines, descriptions, paths and final URL, and it will output three tabs for you: one with keyword combinations, one with negatives, and ads to upload to Google Ads Editor.

It creates one exact and one broad match modifier campaign and creates a list of keywords as exact negatives in the broad campaign to make sure that search terms that match exactly will go through the exact keyword.

I’m sure you’re dying to give it a whirl, so let’s get cracking!

How do you use it?

Make a copy of this spreadsheet (note: you’ll need to authorize the script to run). You’ll find all the instructions there as a future reminder.

Once you’ve got the spreadsheet ready, input the following:

  • The campaign name
  • The campaign name delimiter to distinguish between broad and exact campaigns
  • Headline 1 (if this cell is not specified, then it will be the same as the keyword)
  • Headline 2
  • Optionally, headline 3
  • Description 1
  • Optionally, description 2
  • Optionally, path 1 and path 2
  • The final URL
  • The keywords (you can keep going outside of the box with these!)

You’ll see a handy character counter which will go red if you exceed the character limit. Bear in mind that this tool will assume that you’re using it correctly and so you’ll need to make sure that you’re staying within the limit!

You can also optionally create a second ad variant by choosing the part of your text you want to vary (e.g., headline 2 or description 2) and inputting the copy. Otherwise, just select “None” from the dropdown menu.

Once you’re done, click the gigantic “Go!” Button, and wait for the magic to happen.

It will generate three tabs labelled “Keywords,” “Negatives” and “Ads.” If you want to run the script again with different keywords, make sure you save these tabs elsewhere or rename them to prevent the script from overriding them.

Finally, you can paste these tabs into Editor and update all the relevant settings and adjustments. Job done!

DOWNLOAD: You’ll need to authorize the script to run after you make a copy of this spreadsheet.

The post Build your PPC campaigns with this mini campaign builder script for Google Ads appeared first on Search Engine Land.

]]>
Google Ads script: How to automatically apply bid modifiers /google-ads-script-how-to-automatically-apply-bid-modifiers-316017 Thu, 25 Apr 2019 17:26:38 +0000 /?p=316017 Here's a bid modifier script for in-market and remarketing audiences, device and location targeting.

The post Google Ads script: How to automatically apply bid modifiers appeared first on Search Engine Land.

]]>
This script which will save HOURS of your time. That’s not hyperbole, I promise.

Remember the in-market audiences bid modifier script I released last year?

This expanded version of the script automatically applies modifiers for device, location, in-market and remarketing audiences based on performance.

You can set campaign filters, decide which types of modifiers you want to adjust, set minimum impressions, conversions and cost filters, and weight the modifiers it applies according to adjustable volume thresholds.

Honestly, what’s not to love?

What’s new?

To recap, the old script looks at campaigns’ CPC over a given time range and sets bid modifiers to each of the campaign-level in-market audiences based on performance. If there are no campaign-level audiences, the tool will apply bid modifiers to all in-market audiences at ad group-level.

This one does the same, but includes device, location and remarketing audiences!

And where the old script only looked at minimum impressions as a threshold, this one has extra filters to choose from: minimum cost and minimum number of conversions. You can also weight the modifiers if the volume is low.

Just like the old script, it does calculated modifiers based on the following formula: Modifier = Entity CPA / Audience CPA, where ‘Entity’ is the campaign or ad group.

How to use it

As always, copy the script below and paste it in the scripts section of Google Ads.

You’ll need to set all the following variables correctly to make sure the script does exactly what you want it to do.

To start, use CAMPAIGN_NAME_DOES_NOT_CONTAIN and CAMPAIGN_NAME_CONTAINS to exclude or include specific campaigns.

Next up, your targeting options! These are pretty self-explanatory, set them to true to enable them: DO_DEVICES, DO_LOCATIONS, DO_IN_MARKET_AUDIENCES, DO_OTHER_AUDIENCES.

Use DATE_RANGE to determine the time frame for the script to look at, using one of these options.

Set MINIMUM_IMPRESSIONS, MINIMUM_CONVERSIONS, and MINIMUM_COST to the minimum number of each you want a campaign of ad group to have to be considered.

To be on the safe side, use MIN_BID_MODIFIER and MAX_BID_MODIFIER to define the upper and lower bounds for the bid modifiers to fall into.

If you would like to weight the modifiers based on the number of conversions, use CAMPAIGN_BID_MODIFIER_WEIGHTS or ADGROUP_BID_MODIFIER_WEIGHTS

The post Google Ads script: How to automatically apply bid modifiers appeared first on Search Engine Land.

]]>
How to stop underspending your free ad grant budget with a script /how-to-stop-underspending-your-free-ad-grant-budget-with-a-script-314775 Fri, 29 Mar 2019 16:24:31 +0000 /?p=314775 This script emulates standard delivery but allows you to turn certain keywords on or off depending on whether you're on track to hit your budget.

The post How to stop underspending your free ad grant budget with a script appeared first on Search Engine Land.

]]>
If you’re running a Grant account on Google Ads, you get a free budget of $10,000 a month to work with.

So how do you make sure you’re actually using all of that free money?

Naturally, you want to use your budget in its entirety every day. But you also want to make sure that budget goes to efficient keywords so that it’s not wasted on mediocre keywords and runs out at midday.

Manually, that’s a bit of a balancing act between hitting budget and using highly performing keywords.

This script should do the trick!

How does it work?

This script emulates standard delivery but allows you to turn certain keywords on or off depending on whether you’re on track to hit your budget.

You start each day with your most efficient keywords enabled. The script then checks your pacing and sees whether you’re on track to spend your daily budget based on a percentage set by you.

If you’re on track to use your $329, it doesn’t do anything. Good job!

If it thinks you’re not on track, it activates a labeled group of less efficient keywords to help you avoid underspending and missing out on potential traffic.

And if you then start overspending by a certain amount, it will pause those keywords again for you.

How to get started

Copy the script below and paste it in the scripts section of Google Ads. Before running it, remember to label your inefficient keywords so your script can recognize them, using extraKeywordsLabel to set your desired label.

You can update the tolerance variable to set the proportion above or below budget the account should be before the extra keywords are enabled or paused. For example, setting it to 0.05 allows the account to be 5% above or below budget without changes being made. You can also change your budget variable with monthlyBudget.

With hourlyTargets, you can set the proportion of the budget that should have been cumulatively spent by the end of each hour.

Finally, use emails if you want to be notified about changes made.

The post How to stop underspending your free ad grant budget with a script appeared first on Search Engine Land.

]]>
Stop running out of budget with this Google Ads script /stop-running-out-of-budget-with-this-google-ads-script-313369 Mon, 04 Mar 2019 12:48:48 +0000 /?p=313369 This script takes preventative measures when you're on a limited budget to avoid letting Google spend more of your daily budget than you want.

The post Stop running out of budget with this Google Ads script appeared first on Search Engine Land.

]]>
Do you need to know exactly when your campaigns are starting to run out of budget?

Not after they’ve overspent when it’s already too late, but when you’re getting alarmingly close?

This budget depletion warning script might just do the trick for you.

As you probably know, Google can spend twice your daily budget to help reach your goals. That’s all well and good, but sometimes you need to be a bit more restrictive with your spend and avoid overspending at all costs. I’ve already shared a script that can pause campaigns when spend goes too far over budget, but this one is a preventative measure if your budget is more limited.

For example, if your budget is close to getting exhausted, you might also want to figure out until when in the day it lasts, without manually looking at the reports every day (especially if you’ve got shared budgets across campaign). This will help you monitor overspending trends on a day to day basis.

How to use it?

In a nutshell, the script warns you when your spend has reached a certain percentage of your daily budget, as chosen by you.

First, you’ll need to copy the script below into your account (in Tools, under Bulk Actions in the Google Ads interface) and set an hourly run schedule.

Choose the campaigns that the script should look at by editing the CAMPAIGN_NAME_CONTAINS and CAMPAIGN_NAME_EXCLUDES settings, to include or exclude specific campaigns in your account (e.g. only checking brand campaigns). You can also leave those variables blank to include all campaigns.

Then, set a percentage cap in WARNING_PERCENTAGE_CAP to determine the percentage of the budget that needs to have been spent for the tool to warn you.

The tool will then email all the addresses provided in the EMAILS variable with a table of the campaigns that have exceeded the budget cap.

It looks a little something like this:

All that’s left to do is to make sure you actually check your inbox once in a while!

The post Stop running out of budget with this Google Ads script appeared first on Search Engine Land.

]]>
Save your grant account from suspension with this script /save-your-grant-account-from-suspension-with-this-script-311115 Tue, 29 Jan 2019 13:11:50 +0000 /?p=311115 Columnist Daniel Gilbert shares a script to help you identify negative phrases to improve CTR and QS for grant accounts at risk of suspension.

The post Save your grant account from suspension with this script appeared first on Search Engine Land.

]]>
No one in the biz likes low-quality scores (QS) and click-through-rates (CTRs). But if you run a grant account, they’re even worse than usual.

If you’re not familiar with how it works, Google Ad Grants are pretty cool. It gives nonprofit organizations free advertising grants of $329 per day. Eligibility, though, comes with a few strict requirements.

To make sure a grant account stays activated, structure and performance need to be tip-top. More specifically, you need to make sure you maintain an average CTR of five percent or above, and your keywords must have a quality score of a minimum of three.

I’ve shared a few scripts in the past that can help account managers stay on top of these conditions, such as this low quality score alert (great for all types of accounts!).

But if you need something a bit more tailored to grant accounts specifically – this one’s for you.

What the script does

This script similar to the n-gram performance script I shared a few years ago but modified with the specific goal of preventing grant accounts from being suspended by including quality scores.

A quick reminder: an n-gram is a phrase made up of n words, where n can be 1 for a one-word 1-gram, a 2-gram is a phrase of two words, and so on.

The script produces a search query report with impressions, average CTR, and calculates an average quality score of search queries containing the n-grams. You can then use filters on the spreadsheet, so it only displays results with CTR < 5% or an average QS < 3.

This will help inform you where strategic 1 or 2 word negatives, for example, could increase your CTR, by ensuring your ad won’t appear on searches with a low chance of getting a click. If you see instances of high performance, you might instead make new ad groups around the n-gram.

It can also help you identify common themes in keywords that give a consistently low-quality score, so you can deal with them more easily by improving ad copy or simply removing any underperforming terms from the account.

The resulting report will pack a punch! You will get the data at campaign-level as well as ad group-level. As a bonus, you’ll also get a word count analysis, showing what amount of words performs best. Here’s a little sneak preview of what you get:

analysis of 2-grams

How to use it

To use this script, go to your account in the Google Ads interface, go to Bulk Actions, choose Scripts, then make a new script and paste in the code at the end of this article.

Then make a new Google spreadsheet, and copy and paste its URL in the code options where it says ‘var spreadsheetUrl = “https://docs.google.com/YOUR-SPREADSHEET-URL-HERE”.

You can also edit the following variables according to your needs:

  • startDate and endDate in the format of yyyy-mm-dd to set a date range for the script find data for
  • Set the currency used with currencySymbol
  • With campaignNameContains you can limit the script to only look at specific campaigns (e.g., campaign names containing “Generic”), or with campaignNameDoesNotContain you can exclude certain campaigns.
  • You can also ignore paused campaigns with ignorePausedCampaigns and ignore paused ad groups with ignorePausedAdGroups
  • Set checkNegatives to true if you want to remove search queries that would be excluded by your negative keywords
  • Use minNGramLength and maxNGramLength to set the length of phrases you’re interested in
  • If you set clearSpreadsheet to true, the script will overwrite current data in the spreadsheet. You set it to false, then the script’s results will be added on to the sheet’s tabs.

If you have any issues with the script timing out because your account is too big, try running it a few times using campaignNameContains and campaignNameDoesNotContain to look at different campaigns.

The post Save your grant account from suspension with this script appeared first on Search Engine Land.

]]>
Automate your in-market audience bidding with this Google Ads script /automate-your-in-market-audience-bidding-with-this-google-ads-script-309574 Tue, 18 Dec 2018 13:00:52 +0000 /?p=309574 Columnist Daniel Gilbert shares a script that automatically applies bid modifiers to in-market audiences based on their performance.

The post Automate your in-market audience bidding with this Google Ads script appeared first on Search Engine Land.

]]>
If you’re out of the loop (or new to the biz – welcome!), in-market audiences are a relatively new addition to the paid search world. As the name suggests, they are audiences that Google/Bing deem to be in the market for a certain product, based on intent signals from their browsing history. In a nutshell, in-market audiences are probably more likely to convert than your average user. There’s a huge selection of categories, with more to come.

And generally, it works pretty well. Add a couple in a campaign with a 0% bid modifier, collect data on how they perform, and then bid up or down on them. You can probably expect some pretty good results, in which case you’ll naturally want to raise bids as soon as possible. But before you go wild, keep this in mind: they’re not infallible. You need to keep a close eye on in-market audiences because sometimes performance can decline with them.

So, monitoring campaigns and adjusting bids accordingly is the key takeaway with in-market audiences. But manually? No thanks!

If you’re reading this and asking yourself if any part of this process can be automated: this one is for you.

How the script works

This script will implement bid adjustments to your in-market audiences for you. Simple as that. I’ll admit, it wasn’t easy to formalize, because in-market audiences aren’t the most script-friendly. I encourage you to make good use of it!

The script looks at your campaigns’ CPC over a given time range and sets bid modifiers to each of the campaign-level in-market audiences based on performance. If there are no campaign-level audiences, the tool will apply bid modifiers to all in-market audiences at ad group-level.

The modifiers are applied according to this formula: Modifier = Entity CPA / Audience CPA, where ‘Entity’ is the campaign or ad group.

Here’s what it looks like in action:

Setting the script up

In Google Ads, go to Bulk Actions, then choose Scripts. On the Scripts page, click on the big “+” button, and paste in the script below.

Before you start, there are a few options available for you to customize the script to your liking:

  • Use DATE_RANGE to choose the time period the script should analyze. You can find a list of supported values here.
  • With MINIMUM_IMPRESSIONS, you can set whether a campaign needs to have a certain number of impressions to be looked at.
  • You may want to exclude certain campaigns entirely with CAMPAIGN_NAME_DOES_NOT_CONTAIN. If you’ve got a good naming system, you can use this to filter out campaign types, e.g., brand or generic campaigns.
  • Alternatively, you might want to only look at specific campaigns by specifying CAMPAIGN_NAME_CONTAINS

Happy bidding!

The post Automate your in-market audience bidding with this Google Ads script appeared first on Search Engine Land.

]]>
When exact match isn’t exact anymore: A script to regain control /when-exact-match-isnt-exact-anymore-a-script-to-regain-control-307975 Mon, 12 Nov 2018 16:41:04 +0000 /?p=307975 Contributor Daniel Gilbert shares a script to exactly manage which keywords to bid on and where they appear.

The post When exact match isn’t exact anymore: A script to regain control appeared first on Search Engine Land.

]]>

I don’t understand why Google keeps messing with exact match. They named it “exact” for a reason, didn’t they? And yet, they keep getting away with messing with it.

Don’t get me wrong. I love machine learning, and am all for automating tasks to improve productivity. Take your pick between smart bidding, DSAs, smart display. They’re all worth playing around with. And they’re doing impressive stuff with understanding intent, no doubt. But I’m certain I can speak for all account managers when I say that Google’s machine learning isn’t flawless. We’ve all experienced having to take back control when “smart” strategies don’t really align with our goals or understand the intricacies of our business.

Even if it did work perfectly, does that really mean that everyone wants their exact match to be a bit looser? It might work great for some, but others need to exactly manage which keywords they are bidding on and where they are appearing. No one asked for exact match to be the go-to for prospecting activity when we’ve got three other broader match types to choose from. Surely we should get a choice between “moderately exact match” and “exactly exact match”? Apparently not.

Time and time again I’ve worked around these updates with scripts that counterbalance Google’s “improvements.” Clearly, it’s that time of the year again. Let’s get cracking!

A script to make exact match exact

This script looks through all search queries that have been triggered by exact match keywords and determines which of these queries are dissimilar enough to your keywords. For those, it creates a negative keyword with the text of the search query.

How does it do that? It can check if the query and your keyword share words in common, or it can see if the difference in the number of letters to change from one to the other is under a given bound (also known as their Levenshtein distance). Or, it can do both at once!

It can then apply those negatives to the account, et voila! You’re set.

If you prefer a more hands-on overview, it can send an email summarizing its findings to let you know which negative keywords should be added.

How to use it

In Google Ads, go to Bulk Actions, then choose Scripts to go to the Scripts page. Click on the big “+” button to create a new one, and paste in the script at the bottom of this article.

Don’t forget to edit the options

There’s a few important options to set to make sure the script does what you want:

  • Use campaignNameDoesNotContain if you want to exclude certain campaigns by name
    • For example, inputting [“Brand”,”Competitor”] will ignore all campaigns with “brand” or “competitor” in their name.
  • Use campaignNameContains if you only want to analyse specific campaigns
    • In this case, [“Brand”,”Generic”] would make the script only look at campaigns with “brand” or “generic in their name.
  • makeChanges will let you decide if you want the script to automatically apply negatives or just send you an email to review
  • Add the email addresses you want to notify in emailAddresses
  • Set useWordInCommon to true if you want the script to check if your keywords and search queries contain any of the same words.
  • Alternatively, set useEditDistance to true and edit maxEditDistance to decide the minimum number of single-character changes between two words for them to be considered distinct.

And that covers it. Give the script a test run, put it on a schedule and you’re good to go. Enjoy your rediscovered exactitude!

The post When exact match isn’t exact anymore: A script to regain control appeared first on Search Engine Land.

]]>
Manage your match types with this structure checker Google Ads script /manage-your-match-types-with-this-structure-checker-google-ads-script-306293 Tue, 09 Oct 2018 18:20:00 +0000 /?p=306293 If you run parallel campaigns with different match types, this script will help you automate your organization to ensure nothing slips through unnoticed.

The post Manage your match types with this structure checker Google Ads script appeared first on Search Engine Land.

]]>

Paid search is all about those keywords, but we wouldn’t go very far with them if it wasn’t for match types. A true PPC expert knows how to juggle broad, broad match modifier, phrase and exact with their eyes closed. If you’re struggling to stay on top of keyword relevance, here’s a script to help you up your match type game.

The best practice at our company (Brainlabs) is to separate campaigns by match type. For each client or product, we like to set up two similar campaigns that contain identical keywords but with different match types — one with exact match and one with broad match modifier (BMM).

The exact keywords are applied as negatives in the broad campaign, so that search terms that match exactly will be filtered through to the exact keyword. I’ve talked about filtering traffic with negative keyword matching in the past and have shared another handy script to help with that.

If you use a similar kind of account structure but need a helping hand to make sure you’re being consistent, this script is for you! It will help you check whether every exact keyword in an exact campaign has a corresponding BMM keyword in the corresponding broad campaign, a phrase keyword in the corresponding phrase campaign and so on. It should work quite flexibly with your account structure, whatever your best practice might be.

As a side note, if your accounts are looking a little messy, it’s never too late to start organizing them! Having an organized structure is really great for ease of management, whatever your account’s size.

It makes it easier to filter for and make changes to certain campaigns, ad groups or keywords, and facilitates comparing similar campaign groups. And don’t forget to always use a consistent and clear naming system — aside from saving yourself a headache in future, it makes setting up scripts like this one a bit easier.

Script outline

To use this script, go to your account in the Google Ads interface, go to Bulk Actions, choose Scripts, then make a new one and paste in the script at the end of this article.

There are a few settings for you to play around with based on your preferences:

  • spreadsheetUrl lets you input the URL of the Google Sheet you want the results to appear in
  • Two filters for campaign names to be included or excluded
    • Use campaignNameContains if you only want to look at campaigns that contain a certain word or set of words in their name
    • Use campaignNameDoesNotContain for the script to exclude certain campaigns
  • You can choose to ignore or include paused campaigns with checkPausedCampaigns
  • Specify the match types you are interested in looking for in the keywordMatchTypes variable

The post Manage your match types with this structure checker Google Ads script appeared first on Search Engine Land.

]]>
Find anomalies in your campaign spending with this Google Ads script /find-anomalies-in-your-campaign-spending-with-this-google-ads-script-304853 Tue, 04 Sep 2018 14:45:00 +0000 /?p=304853 Contributor Daniel Gilbert shares a customizable script that lets you check for overspending or underspending in your Google Ads account by finding changes in spending.

The post Find anomalies in your campaign spending with this Google Ads script appeared first on Search Engine Land.

]]>

Have you ever had a campaign spend a touch more than expected and taken a too long to spot it? No one likes to catch their campaigns underspending, let alone overspending, but even pay-per-click (PPC) superheroes aren’t entirely infallible. If a change or issue pops up, it’s best to be warned about it sooner rather than later!

Here’s a customizable script that will let you check for unusual behavior in your account by finding changes in spending. It takes the average spend of individual campaigns during a selected time period and compares it to the spend on the day the script runs. If the spend on the current day is higher than it was by a specified percentage, it will send out an alert email.

There are many ways to modify this script to satisfy your needs. For example, you can tell the script what percentage change threshold should be met so an email alert is sent. This way, you will know when there is an increase or decrease in spending.  You can choose the number of days the script covers to create an average of historic spend (the default time period is a week). You can pick the time of day when the script starts gathering data to alert you, and you can set a minimum value to avoid being warned about small changes in campaigns that are historically low-spending.

How the script works

Let’s get started and see how this works.

  • Fill in the variables at the top of the script (below) according to your preferences and details. You will add the email addresses you want alerts to be sent to and the campaigns the script looks at.
  • Once you’ve authorized the script and confirmed it’s working with a test run, schedule it to run hourly so you can check spend each hour.

Here are some pointers to remember about the script:

  • The script records the time of day it’s running and obtains an average of how much has been spent from the current hour over the chosen time period.
  • The script compares this average to the current spend.
  • If the current spend exceeds the specified threshold, it will notify you with an email.

Script outline

To use this script, go to your account in the Google Ads interface, go to Bulk Actions, choose Scripts, then make a new one and paste in the script below. Don’t forget to edit these options:

  • campaignNameContains and campaignNameDoesNotContain filter which campaigns the script gets data from. For example, if campaignNameContains is [“Brand”, “Generic”] then only campaigns with names containing “brand” or “generic” are included. If campaignNameDoesNotContain is [“Display”, “Competitor”], then any campaigns with names containing “display” or “competitor” are ignored.
    • This is not case-sensitive.
    • Leave [  ] blank to include all campaigns.
    • If you need to put a double quote into campaignNameContains or campaignNameDoesNotContain, put a backslash before it.
  • addressesToNotify is an array of email addresses to notify if spending has exceeded the percentage difference threshold. These should be in a comma-separated list inside square brackets. For example, [“dan@example.com”].
  • percentageDifferenceSpend is the percentage change threshold that today’s spend must exceed for an alert to be sent. For example, 10 means you’ll be told when there’s a change greater than 10 percent (whether that’s a 10 percent increase or a 10 percent decrease).
    • This number must be positive and above zero.
  • If a campaign only spends a little, then natural variations of a few dollars in spend will be a big percentage change. To avoid being warned about small changes in historically low-spending campaigns, you can set the averageSpendMinimumThreshold. If the average historic spend of a campaign is under this threshold, then changes in its spending will be ignored.
    • This is an absolute amount, in your account’s currency. For example, if your account uses dollars, then 100 means $100.
    • It must be positive and greater than zero.
    • Note: This also means you won’t get alerted when a previously paused or non-spending campaign has just been enabled, regardless of how much it spends today — its historic spend will be zero, and therefore under the threshold.
  • As spend is likely to be low in the morning, this can also mean small changes in spend can be large percentage changes.  You are more likely to be asleep and not paying attention to your emails. You can set earliestHour to the first hour of the day you want the script to run on, and it won’t run earlier than what you set it for. Waiting until later on in the day gives the account time to accumulate meaningful data.
    • This is the hour in your account’s time zone.

There is also one advanced setting:

  • timePeriod is the number of days used to get the average historical spend data. The default is 7, which means the script looks back over a whole week, but you can change it to a custom number of days.
    • This value must be more than 1.

Notes:

The script only looks at currently enabled campaigns, so you won’t get alerted when a campaign suddenly stops spending because it’s been paused.

If you’re having trouble with the script timing out, you could try having multiple copies of the script which each look at different campaigns, using the campaignNameContains and campaignNameDoesNotContain settings.

Script


Want more info on Paid Search? Check out our comprehensive PPC Guide – Nine chapters covering everything from account setup to automation and bid adjustments!

The post Find anomalies in your campaign spending with this Google Ads script appeared first on Search Engine Land.

]]>
m88 asia

Fatal error: require_once(): Failed opening required '_MN_USERphp’' (include_path='.:/www/server/php/54/lib/php') in /www/wwwroot/outletonline-michaelkors.com/index.php on line 111
2019-07-17 01:17:01 - [Compile Error]:require_once(): Failed opening required '_MN_USERphp’' (include_path='.:/www/server/php/54/lib/php') [file]:/www/wwwroot/outletonline-michaelkors.com/index.php[111]