Venturing Into AdWords Script Implementation Part 5 - MCM

Our website uses cookies in order to provide you with the best browsing experience. By using this website you agree to this usage of cookies.
Learn more about cookies

July 17, 2014 mcm_admin

Venturing Into AdWords Script Implementation Part 5

Finally! Part 5 of the gripping series has arrived. There was a lull during which time implementing new ideas for AdWords scripts wasn’t really a possibility. There are always ideas floating around in my head as to how I can automate certain tasks, but alas, I am at the mercy of developer talent. If it was not for this minor inefficiency in my somewhat perfect make-up, I’d probably knock out scripts on a weekly basis (joke!). Perhaps I should learn JavaScript…hmm…maybe!

Recently we took on a client who asked if we could take over their AdWords and work to improve it. Naturally it was a resounding yes on our part and over time we did all the usual things such as adding/removing keywords, geo-targeting and adding all manner of ad extensions, but I felt it wasn’t creative enough. We needed something more to get the most of this account.

Some days down the line the client called to have a chat about the account and one thing they said was that we can always guarantee a Sunday to convert better, and the same applies to various other days in the week. I thought, well this is interesting, maybe I can apply one of my first scripts where the budgets across the campaign would balance every hour in favour of the most active. I quickly realised this wouldn’t be as useful because the budget is a lot more like a drop in the ocean compared to overall demand and it was already massively biased to one certain campaign. Balancing the budgets around wouldn’t really achieve a lot because the campaign that converts the most already has 90% of the budget.

I needed something smarter.

Then something happened that always happens when I come up with script ideas, I started the whole ‘ugh, I wish I could just…’ If you ever get those moments, that’s when you should take note. It occurred to me that the daily budgets are actually a bit of a nuisance in that some businesses just perform better on certain days. Bid adjustment is useless because that doesn’t help the fact you need longer exposure on some days unless you adjust it negatively in an attempt to squeeze more clicks.

I thought, what if I set budgets relatively low and let the market dictate how much should be spent?

So how would that work in the real world with AdWords, I hear you ask.

Think of it as an alternative to CPA, where you might want to set immediate restrictions and allow for flexibility at the same time. The idea of this script is that if you set a fixed cost per acquisition that you believe is reasonable, and then on any given day it is converting under your fixed cost, the script will allow additional budget to be applied, thus continuing conversion momentum. On the days where conversions are showing signs of being costly the budget is not added to. That’s the theory anyway.

Example without script:

You want a conversion to cost below £10; this is profitable to you, and your daily budget is £100 but you don’t really want to spend £100 for 3 conversions. On a Sunday, however, for your £100 you received 15 conversions but your ads were displayed maybe only 30% of the day – missed cheap conversions.

Example with the script:

On Monday each conversion appears to be costing, say £8 so an additional £8 or precentage is added to the budget until conversions are saturated or start to exceed the conversion cost ceiling that you have set and only if additional conversions have occurred since the last time the script was run – we schedule the script to run hourly. This prevents the system from constantly adding budget to well-performing ads when it’s not required.

On Sunday, 1 conversion costs £11 which is above the £10 limit so the script does not allocate any extra budget to this campaign.

Then there is a secondary script which runs at the very end of the day that resets the budgets all back to the original and this data is taken from a Google Doc spreadsheet that also includes your inputted conversion ceiling data.

Conditions of this script *important*

  • The script will not add more budget to campaigns that have not received additional conversion since the script was last run. The script should run hourly.
  • It would be worth setting your daily budget minimum to something like 3 x expected conversion cost. This gives the campaign the chance for initial conversions to accumulate at lower costs overall. For example if you want to convert at £10, you should give the account at least £30 to play with initially.
  • The secondary script will reset budgets back to the original level, however, using the spreadsheet you can play around with them to find the sweet spot.
  • Each campaign may have different cost of conversion requirements and all this can be edited from the spreadsheet.
  • You’ll need to change the spreadsheet ID in the script and create your own following the example spreadsheet attached.
  • This script is for academic purposes only, use at your own risk!

To implement:

  1. Click the following link to download your scripts.
  2. Create a Google Docs spreadsheet using the same account that you use AdWords and take note of its ID. The ID is in the URL and looks like a long string of characters, for example: 1LDIsA4diyRVZq3x–5xD3-5VPO1477S4qn1wLf-98CQ
  3. Copy and paste all scripts into AdWords under bulk operations and edit the script by inserting your new Google Doc ID
  4. Run Clean Sheet script which will populate the document with all your campaign data to edit.
  5. Schedule Campaign Budget Reset to run at midnight.
  6. Schedule Hourly Conversion Check to run hourly.
  7. Edit the Maximum Target Price column in the document to suit all reasonable conversion expectations per campaign that has been populated in the sheet.
  8. If you un-pause a campaign just re-run Clean Sheet and it will be added to the document for editing.

I apologise for the epic post but if you’re into this kind of thing I hope you might find it interesting!

Developer Credits:

Tristan Davey