a three man approach to mastering adwords scripts by steve hammer, russell savage, & frederick...
DESCRIPTION
"From the SMX East 2014 Conference in New York City, NY. SESSION: Mastering AdWords & Scripts. PRESENTATION: A Three Man Approach to Mastering AdWords Scripts - Given by Steve Hammer, @ArmondHammer, President - Rank Hammer. #SMX #32B"TRANSCRIPT
A Three Man Approach to Mastering AdWords
Scripts SMX East
Steve Hammer Russell Savage
Frederick Vallaeys
A family restaurant with a huge sandbox
2 Steve Hammer, @armondhammer Rankhammer.com
Looks like this when it rains
3 Steve Hammer, @armondhammer Rankhammer.com
Ads via XML
4 Steve Hammer, @armondhammer Rankhammer.com
Pricing that changes, hourly
5 Steve Hammer, @armondhammer Rankhammer.com
A marketers dream
6 Steve Hammer, @armondhammer Rankhammer.com
But a Warning: Scripts can’t fix bad
7 Steve Hammer, @armondhammer Rankhammer.com
8
About Me
FAMILY What it’s all about
FOOD AND WINE Ea8ng as an art form?
HOCKEY Go Stars
RANKHAMMER Dallas Based Internet Marke8ng Agency
Steve Hammer, @armondhammer Rankhammer.com
Our Agenda
• Use Cases for Scripts – Frederick Vallaeys • The Language of Scrip8ng – Russell Savage • Modifying Scripts – Steve Hammer • Advanced Performance of Scripts – Russell Savage
9
+Frederick Vallaeys
@SiliconVallaeys
@SiliconVallaeys OPTMYZR.com
What Can AdWords Scripts Do?
AW Scripts can create reports and make changes in accounts. Supported en88es:
• Shopping Product Groups (NEW!) • Ad extensions (NEW!) • Budgets (NEW!) • Labels • Keywords • Bids • Ads • Ad Groups • Campaigns • Targe8ng • Bid modifiers
@SiliconVallaeys OPTMYZR.com
AdWords Scripts vs API
Scripts API
Hos.ng Hosted by AdWords, just like Google Docs
You need a server
Skills needed Copy-‐and-‐Paste Install the code, some SDKs or libraries, …
Scheduling Set your schedule inside AdWords
Maintain cron jobs on your server
Capabili.es Can’t manage everything Almost everything in AW
Strengths Quick to test something out Beber for large accounts
Bo;om Line: With Scripts, you don’t need to be an engineer to automate AdWords
@SiliconVallaeys OPTMYZR.com
AdWords Scripts vs Automated Rules
Scripts Automated Rules
Scheduling As ocen as hourly As ocen as daily
Capabili.es Highly customizable Limited predefined rules
Bo;om Line: Scripts are more flexible than Automated Rules
@SiliconVallaeys OPTMYZR.com
Use Case Examples
@SiliconVallaeys OPTMYZR.com
Scripts Work In MCC Accounts
• Benefits • Maintain fewer copies of scripts
• Hide scripts from clients
Script for All accounts
Script for Auto accounts
@SiliconVallaeys OPTMYZR.com
MCC Example
Get all anomaly alerts in one place
VS
@SiliconVallaeys OPTMYZR.com
More MCC Script Ideas
• Add the same nega8ve keyword lists to all accounts in a par8cular ver8cal
• Create aggregated reports across mul8ple accounts
@SiliconVallaeys OPTMYZR.com
Scripts Talk With Your Data
• Scripts can talk to external data sources • Google Sheets, Google Drive, Gmail, arbitrary URLs (APIs).
Weather Data Movie
Data
Company Data API
@SiliconVallaeys OPTMYZR.com
External Data Example
Automa8cally create ads when adding a new product to a spreadsheet
@SiliconVallaeys OPTMYZR.com
Save Reports To Your Computer
• Save reports to your computer automa8cally
@SiliconVallaeys OPTMYZR.com
More Examples Of Using External Data
• Pause ads for an ice cream shop when temperature goes below 70 degrees
• Pause ads when the landing page is not working (404 error)
@SiliconVallaeys OPTMYZR.com
Scripts Can Access All Reports
Account Performance
Account Reach Frequency
Ad Performance
Ad Extensions Performance
Ad Group Performance
Ad Group Reach Frequency
Age Range Performance
Audience Performance
Automa8c Placements Performance
Bid Goal Performance
Budget Performance
Call Metrics Call Details
Campaign Performance
Campaign Ad Schedule Target
Campaign Loca8on Target
Campaign Nega8ve Keywords Performance
Campaign Nega8ve Loca8ons
Campaign Nega8ve Placements Performance
Campaign Plaiorm Target
Campaign Reach Frequency
Campaign Shared Set
Click Performance
Crea8ve Conversion
Criteria Performance
Des8na8on URL
Display Keyword Performance
Display Topics Performance
Gender Performance
Geo Performance
Keywordless Category
Keywordless Query
Keywords Performance
Paid and Organic Query
Placeholder Feed Item
Placement Performance
Product Par88on
Search Query Performance
Shared Set Criteria
Shared Set
Shopping Performance
URL Performance
@SiliconVallaeys OPTMYZR.com
Scripts Can Merge Data Any Way You Want
Iden8fy a trend before your client does
VS
@SiliconVallaeys OPTMYZR.com
Scripts Make Aggrega8ng Data Easy
• Performance by keyword match type
@SiliconVallaeys OPTMYZR.com
Ad Template Performance
• What is the best text for Descrip8on Line 1?
@SiliconVallaeys OPTMYZR.com
More Repor8ng Ideas For Scripts
• Calculate account level Quality Score
• Report performance of 1 word, 2 word, 3 word keywords, etc.
• Find the best ad text for each keyword
@SiliconVallaeys OPTMYZR.com
Scripts Can Send Emails
@SiliconVallaeys OPTMYZR.com
Scripts Can Add Results to Google Sheets
@SiliconVallaeys OPTMYZR.com
Scripts Can Add Results to Dashboards
• Push data into dashboard widgets, e.g. Cyfe.com
@SiliconVallaeys OPTMYZR.com
Some Notes About Javascript
Russ Savage, FreeAdWordsScripts.com 30
Russ Savage, FreeAdWordsScripts.com 31
About Me Free
AdWords Scripts
Why Does This Javascript Look Different?
Russ Savage, FreeAdWordsScripts.com 32
VS
Sever Side vs Client Side
• What Won’t Work • Anything with the Window object • Any web libraries like jQuery or Prototype • Ajax, alert(), popups, anything involving UI • Event handling (click events, loading, etc.)
• What Will Work • Standard Javascript constructs such as Arrays, Maps, Loops, Func8ons • Special Google Objects (AdWordsApp, SreadsheetApp, MccApp, UrlFetchApp) • Javascript eval • JSON object
Russ Savage, FreeAdWordsScripts.com 33
Style Is Important
Russ Savage, FreeAdWordsScripts.com 34
Choose a Style and Stick With It
• Google Javascript Coding Style • hbps://google-‐styleguide.googlecode.com/svn/trunk/javascriptguide.xml
Russ Savage, FreeAdWordsScripts.com 35
Arrays and Maps
• Access elements of an Array using an index • Access elements of an Object using a key • Elements of Arrays or Maps can be anything, even func8ons
Russ Savage, FreeAdWordsScripts.com 36
Functions
• Use func8ons to execute the same code mul8ple 8mes • Don’t Repeat Yourself (D.R.Y.) • Each func8on does one thing, and one thing only
Russ Savage, FreeAdWordsScripts.com 37
Where to Learn More
• Intros to Javascript • hbp://autotelicum.github.io/Smooth-‐CoffeeScript/literate/js-‐intro.html • hbp://www.tutorialspoint.com/javascript/
• Code Academy Course for Beginners • hbp://www.codecademy.com/tracks/javascript
• StackOverflow Javascript • hbp://stackoverflow.com/ques8ons/tagged/javascript
38 Russ Savage, FreeAdWordsScripts.com
Programming?
Steve Hammer, @armondhammer Rankhammer.com 39
40 Steve Hammer, @armondhammer Rankhammer.com
Getting Started in the Interface
41 Steve Hammer, @armondhammer Rankhammer.com
A first simple script – Bid changes
42
Log “Hello World”
• Had a CTR greater than 0.01 • For all dates
Find Keywords that
• While iterates one at a 8me Go through the keywords
• Based on Maximum CPC * 1.01 Set a new CPC
Go broke
Steve Hammer, @armondhammer Rankhammer.com
Tweaking the script – to something almost useful
43
Log “Hello World”
• Had a CTR greater than 0.01 • For all dates
Find Keywords
that
• While iterates one at a 8me Go through
the keywords
• Based on Maximum CPC * 1.01
Set a new CPC
Go broke
Log “Raise on Conversion”
• Had conversion rate > 10% • With more than 10 clicks • Over the last 30 days
Find Keywords that
• While iterates one at a 8me Go through the keywords
• Based on Max CPC * 1.05 Set a new CPC
Go slightly less broke
Steve Hammer, @armondhammer Rankhammer.com
End Result
44 Steve Hammer, @armondhammer Rankhammer.com
Snippets and functions build the building
45 Steve Hammer, @armondhammer Rankhammer.com
A simple framework – talk your idea
46
Metric When bounce rate
Target Exceeds 50%
Ac8on Reduce bid 10%
Steve Hammer, @armondhammer Rankhammer.com
What can be changed?
Easy • Ready made snippets • Methods used, especially same type • Condi8ons • Outputs (stats)
Moderate • Output type • Data Sources
Hard • Repor8ng + En88es (But beber to do) • Large Accounts
47 Steve Hammer, @armondhammer Rankhammer.com
Code Snippets
48
• Any published script • Freeadwordsscripts.com
Func8ons
• hbps://developers.google.com/adwords/scripts/docs/examples/
Steve Hammer, @armondhammer Rankhammer.com
Code Snippets - Example
49 Steve Hammer, @armondhammer Rankhammer.com
Method List
50
hbps://developers.google.com/adwords/scripts/docs/reference/adwordsapp/adwordsapp
Steve Hammer, @armondhammer Rankhammer.com
Selector Conditions
51
hbps://developers.google.com/adwords/scripts/docs/reference/adwordsapp/adwordsapp_labelselector#withCondi8on_1
Steve Hammer, @armondhammer Rankhammer.com
Stats
52
hbps://developers.google.com/adwords/scripts/docs/reference/adwordsapp/adwordsapp_stats
Steve Hammer, @armondhammer Rankhammer.com
Output Type
53
hbps://developers.google.com/adwords/scripts/docs/examples/reports
Steve Hammer, @armondhammer Rankhammer.com
Changing Data Source
@armondhammer 54
hbps://developers.google.com/apps-‐script/reference/url-‐fetch/ hbps://developers.google.com/adwords/scripts/docs/solu8ons/bid-‐by-‐weather
hbp://www.rankhammer.com/blog/1261/adwords-‐scripts-‐twiber-‐followers
Live Twitter Followers – same idea, new source
Steve Hammer, @armondhammer Rankhammer.com
Advanced Optimizations
Russ Savage, FreeAdWordsScripts.com 56
If You Can Pull It From A Report, Do It
Russ Savage, FreeAdWordsScripts.com 57
Read and Write All Related Entities Together
Russ Savage, FreeAdWordsScripts.com 58
Logging Is Slow
59 Russ Savage, FreeAdWordsScripts.com
Logging Is Slow
60 Russ Savage, FreeAdWordsScripts.com
Thank you