SlideShare a Scribd company logo
Christi Olson | @christijolson
Director of SEM | PointIt.com
A Non-Coders Guide to AdWords Scripts
It’s not as intimidating as you have thought!
Steve Hammer | @armondhammer
Founder | RankHammer.com
ABOUT CHRISTI
@armondhammer#HeroConf
FUR BABIESFAMILY!RUN &
CROSSFIT
POINT IT
Seattle Based
Digital Marketing
Agency
ABOUT STEVE
@armondhammer#HeroConf
FAMILY
What it’s all about
FOOD AND
WINE
Eating as an art
form?
HOCKEY
Go Stars
RANKHAMMER
Dallas Based
Internet Marketing
Agency
@ChristiJOlson#HeroConf
IT’S LIKE LEARNING A NEW
LANGUAGE…
Structure
Terminology
Basic rules
practice makes perfect
SCRIPTS ENABLE YOU TO
AUTOMATE all the things
THAT CAN BE DONE MANULLY
IN ADWORDS
@ChristiJOlson#HeroConf
Scripts can
MAKE CHANGES TO or REPORT
ON
any element of an AdWords account.
Account or MCC LEVEL
@ChristiJOlson#HeroConf
Anything you can do
scripts can do too
“Annie Get
Your Gun”
@ChristiJOlson#HeroConf
So why are so many
marketers
intimidated
by scripts?
@ChristiJOlson#HeroConf
THE
UNKNOWN
IS JAVASCRIPT.
It’s not part of the average SEM skill set.
@ChristiJOlson#HeroConf
@ChristiJOlson#HeroConf
@ChristiJOlson#HeroConf
XLS VS JAVASCRIPT: CALCULATE CPA
JavaScript Formula:
var D2 = 14539;
var F2 = 254;
var calculate-cpa = (D2/F2);
return (calculate-cpa );
XLS Formula:
where cells:
D2 = $14,539
F2 = 254
=D2/F2
@ChristiJOlson#HeroConf
SELECT Data
FROM reference table
WHERE filter conditions
GROUP
BY
aggregation
LIMIT # of records
SIMILAR TO JAVA, JUST
A DIFFERENT
LANGUAGE ENTITIES
OBJECTS
SELECTORS
LIMIT
@ChristiJOlson#HeroConf
LET'S START WITH SOME
STRUCTURE
NOTEPAD++ bit.ly/Notepad-plusplus
@ChristiJOlson#HeroConf
• Outlines code
• Makes it easier to
see what you are
doing
@ChristiJOlson#HeroConf
I LIKE COOKING MY
FAMILY AND PETS
Use proper PUNCTUATION and STYLE
the lives it saves might be your family's
STYLE MATTERS WITH CODING
SCRIPTS ARE CASE SENSITIVE AND
NEED TO BE WRITTEN IN camelCase
@ChristiJOlson#HeroConf
/* SINGLE FORWARD SLASH + ASTRIX
*SIGNIFIES COMMENTS THAT SPAN MULTIPLE
LINES.
*MULTI LINE COMMENTS END WITH */
(SLASH)
@ChristiJOlson#HeroConf
// IS A SINGLE COMMENT LINE IN JAVASCRIPT
// comments can start anywhere in a line and javascript will skip to the end of the line
// add as many or as few comments to your code explaining what it does
@ChristiJOlson#HeroConf
@ChristiJOlson#HeroConf
Spaces are only
Important
Inside “”
@ChristiJOlson#HeroConf
Always
PREVIEW a
script before
you run it
@ChristiJOlson#HeroConf
LET'S START WITH SOME
Building Blocks
YOU CAN DO THIS
@armondhammer#HeroConf
BREAK IT APART
@armondhammer#HeroConf
AND MAKE SOMETHING AMAZING
@armondhammer#HeroConf
STARTING SIMPLE, BUT COOL
@armondhammer#HeroConf
WORST SCRIPT EVER
@armondhammer#HeroConf
WORST SCRIPT EVER
The central program
@armondhammer#HeroConf
WORST SCRIPT EVER
A defined method
Selector
Iterator
} End
Begin {
@armondhammer#HeroConf
LOGGER
Bulk Operations >
Logs>
Details>
Logs>
@armondhammer#HeroConf
SELECTOR
Makes an array of the type
Filtered by conditions
Finished with get();
@armondhammer#HeroConf
SELECTOR
Conditions are AND
Connect with .
End with ;
@armondhammer#HeroConf
VARIABLES
Discreet
•5.23
•‘Office’
• 5+3
• ‘Today’ + variable
Arrays
•[4, 5, 7, 9]
•[‘Home’,’Office’,’Hotel’]
Objects
•{name:’Steve’,zip:75204,car:’Subaru’}
•{1:Array1,2:Array2}
ODD SELECTOR LOGIC
Values have to become strings
@armondhammer
ODD SELECTOR LOGIC
To make it flexible it has to be:
“Column Operator” + Value
'Name = "' + var + '"'
@armondhammer
SELECTABLE?
https://developers.google.com/adwords/scripts/docs/reference/adwordsapp/adwordsapp_adselector
@armondhammer#HeroConf
SELECTOR
Get all keywords
With a CTR greater than 0.01
For all time
@armondhammer#HeroConf
WE NOW HAVE
Selected every keyword
That has ever
Gotten a click
@armondhammer#HeroConf
ITERATOR
What does the work
@armondhammer#HeroConf
WHILE NEXT
Sets up the repeating
@armondhammer#HeroConf
PAYLOAD
Calls a method to make a change
@armondhammer#HeroConf
AVAILABLE METHODS
https://developers.google.com/adwords/scripts/docs/reference/adwordsapp/adwordsapp_ad
@armondhammer#HeroConf
ITERATOR
Find the maximum CPC
Add 1%
Set as new Max CPC
@armondhammer#HeroConf
WORST SCRIPT EVER
@armondhammer#HeroConf
CHANGE IT
@armondhammer#HeroConf
NEXT LEVEL
Prewritten Scripts
+
Code Snippets
@armondhammer#HeroConf
TYPICAL CODE ARCHITECTURE
Global Variables – Used by all
Other Functions
Main Function
Local Variables
@armondhammer#HeroConf
DEFINING A FUNCTION
Functions can return values to feed a
variable
Functions can also just be invoked, even
without parameters
@armondhammer#HeroConf
MULTIPLE FUNCTIONS
@armondhammer#HeroConf
SNIPPETS
https://developers.google.com/adwords/scripts/docs/examples/
@armondhammer#HeroConf
SCRIPT SOLUTIONS
bit.ly/ScriptSolutions
@armondhammer#HeroConf
NOT EXACTLY READY TO USE
@armondhammer#HeroConf
TWEAK THE SELECTOR
MORE JAVASCRIPT LESSONS
http://www.codecademy.com/tracks/javascripthttp://www.w3schools.com/js/default.asp
http://www.learn-js.org/
@armondhammer#HeroConf
EDITOR = DEBUGGER
OR
@armondhammer#HeroConf
REJOICE
@armondhammer
@ChristiJOlson#HeroConf
LET’S GET STARTED NOW WITH
PRE-WRITTEN SCRIPTS
@ChristiJOlson#HeroConf
SCRIPTS YOU CAN USE NOW:
bit.ly/ScriptsToUse
•Campaign & Keyword Performance Report, Written by Russ Savage
• Quality Score Tracker, Written by Martin Roettgerding
• Keyword Performance by QS & Position, Written by Google Developers
• Anomaly Detector, Written by Google Developers
• Broken URL Checker, Written by Google Developers & Russ Savage (FreeAdwordsScripts.com)
• Account Audit, Written by Russ Savage (FreeAdwordsScripts.com)
• Search Query Manager, Written by Marcela De Vivo (Gryffin.com)
@ChristiJOlson#HeroConf
RANKHAMMERS LIST OF AVAILABLE
SCRIPTS:
bit.ly/1Ho3LFi
90+ Scripts in an XLS document
@ChristiJOlson#HeroConf
SCRIPTS RESOURCES:
Optmyzr.com
FreeAdwordsScripts.com
▪ @RussellSavage
▪ @SiliconVallaeys
▪ @ArmondHammer
▪ @MarcelaDeVivo
▪ @BloomArty
▪ @SamuelDJames
@ChristiJOlson#HeroConf
LET'S GET COMFORTABLE WITH
EDITING SCRIPTS
@ChristiJOlson#HeroConf
START W/ SOMETHING BASIC
KEYWORD PERFORMANCE REPORT
@ChristiJOlson#HeroConf
KEYWORD PERFORMANCE REPORT
Wanted to add 2 additional data points:
Converted Clicks (CVR, CPA)
• Conversion Value (ROAS)
stats.getConvertedClicks() worked
stats.getConversionValue() kept giving me an error
getConversionValue() is not available with stats
it has to be pulled via a separate type of report

@ChristiJOlson#HeroConf
KEYWORD PERFORMANCE REPORT
Updated to include Converted Clicks
• Converted Clicks (CVR, CPA)
• Conversion Value (ROAS)
@ChristiJOlson#HeroConf
• RECIPIENT_EMAIL
• your email address
• SPREADSHEET_URL
• URL for the Google Spreadsheet
// Comma-separated list of recipients. Comment out to not send any emails.
var RECIPIENT_EMAIL = 'christio@pointit.com';
// URL of the default spreadsheet template. This should be a copy of http://goo.gl/cULxUX
var SPREADSHEET_URL = 'https://docs.google.com/spreadsheet/ccc?key=abc123#gid=0';
DON’T FORGET: UPDATE EMAIL/ URL (VAR)
@ChristiJOlson#HeroConf
KEYWORD PERFORMANCE REPORT
Added to the additional columns to Headers
function outputQualityScoreData(sheet) {
// Output header row
var header = [
'Quality Score',
'Num Keywords',
'Impressions',
'Clicks',
'CTR (%)',
'Cost',
'ConvertedClicks',
];
sheet.getRange(3, 2, 1, 7).setValues([header]);
This is an ARRAY
In this context it let you update specific data within a
spreadsheet. You’re telling it where!
getRange = (row to start on,
column to start on,
number of rows to include,
number of columns to include)
@ChristiJOlson#HeroConf
KEYWORD PERFORMANCE REPORT
Added to the additional columns to Headers
function outputQualityScoreData(sheet) {
// Output header row
var header = [
'Quality Score',
'Num Keywords',
'Impressions',
'Clicks',
'CTR (%)',
'Cost',
'ConvertedClicks',
];
sheet.getRange(3, 2, 1, 7).setValues([header]);
I added 1 columns
Increase # of columns from
6 to 7
Check for multiple instances
of arrays within the script!
@ChristiJOlson#HeroConf
KEYWORD PERFORMANCE REPORT
Added to the additional getStats()
// Compute data
var keywordIterator = AdWordsApp.keywords()
.forDateRange('LAST_WEEK')
.withCondition('Impressions > 0')
.get();
while (keywordIterator.hasNext()) {
var keyword = keywordIterator.next();
var stats = keyword.getStatsFor('LAST_WEEK');
var data = qualityScoreMap[keyword.getQualityScore()];
if (data) {
data.numKeywords++;
data.totalImpressions += stats.getImpressions();
data.totalClicks += stats.getClicks();
data.totalCost += stats.getCost();
data.totalConvertedClicks =+ stats.getConvertedClicks();
}
}
this pulls in the total
converted clicks into
the column
@ChristiJOlson#HeroConf
KEYWORD PERFORMANCE REPORT
YAY, it worked!
Now I’ve got to figure out how to speed up our account audit processes!
GOAL: AUTOMATE AUDITING PROCESSES
@ChristiJOlson#HeroConf
• Account set-up & settings
• SE Linked accounts audit
 My Business / Local
 Merchant Center
 Google Analytics
 Webmaster Tools
• Conversion tracking audit
• Goals & Events review
• Remarketing Audiences
• Shopping set-up
• Dynamic Search set-up
• Campaign settings & targeting
• Network settings & targeting
• Display settings & targeting
• Day Parting analysis
• Geo Targeting analysis
• Bid-modifier analysis
• Device Targeting analysis
• Ad delivery & rotation settings
• Ad extension audit
• Landing Page audit/analysis
• Campaign architecture
• Quality Score analysis
• Impression share analysis
• Keyword audit
• Negative keyword audit
• Match type audit
• Ad copy audit
• Display / Destination URL audit
• Missed Opportunity audit
• Performance audit
@ChristiJOlson#HeroConf
I LIKE THE ACCOUNT AUDIT SCRIPT
BUT… it wasn’t the format I wanted
@ChristiJOlson#HeroConf
I WANTED AN XLS SPREADSHEET
THAT WE COULD TRACK
(AND MONITOR PROGRESS)
FOR ALL CLIENT ACCOUNTS
But for now…
Use the account audit script as a
framework
to build out the more in-depth
audit
@ChristiJOlson#HeroConf
@ChristiJOlson#HeroConf
STEP 1: MAP THE SCRIPT
Why? To document what & where
@ChristiJOlson#HeroConf
STEP 2: ORGANIZE DATA
@ChristiJOlson#HeroConf
STEP 3: BREAK IT INTO BITE SIZED PIECES
1. Campaign & Ad Group Names
2. # of Keywords by Match Type & Negative
3. Location Targeting Audit
4. Extensions Audit
5. Budget Audit
@ChristiJOlson#HeroConf
STEP 4: CREATE REUSABLE CODE
Create Header Rows within Spreadsheet
Start with Campaigns
(because ad groups are within campaigns)
For Campaigns:
Get Campaign Names
Calculate total KWDs & Negative KWDs
For Ad Groups
Get Ad Group Names
Calculate total KWDs & Negative KWDs
Push everything to the Spreadsheet
Log 1 row per Campaign/Ad Group with Totals
@ChristiJOlson#HeroConf
STEP 4:WRITE REUSABLE CODE
CAMPAIGN & AD GROUP ITERATORS
http://bit.ly/PI-GetCMP http://bit.ly/PI-GetAG
@ChristiJOlson#HeroConf
STEP 4:WRITE REUSABLE CODE
CREATE & PUSH TO SPREADSHEET
bit.ly/PI-SpreadsheetScript
@ChristiJOlson#HeroConf
STEP 5: WRITE/EDIT CODE
CAMPAIGN & AD GROUP DATA
@ChristiJOlson#HeroConf
STEP 5: WRITE/EDIT CODE
CREATE & WRITE TO GOOGLE DOC
@ChristiJOlson#HeroConf
STEP 5: WRITE/EDIT CODE
COUNT KEYWORDS BY MATCH TYPE
This is the original code
from the audit doc
@ChristiJOlson#HeroConf
THE FINISHED PRODUCT – PART 1
bit.ly/PI-KWDauditSCRIPT
CONNECT WITH US
SOCIAL NETWORKS
Rank Hammer
Downtown Dallas TX
214-720-0044
POINT IT
Downtown Seattle WA
206-673-3064
LOCATED
support@rankhammer.com
info@pointit.com
QUESTIONS
TWITTER
WEBSITE
LINKEDIN
@armondhammer
@rankhammer
@ChristiJOlson
@point_it
rankhammer.com
pointit.com
linkedin.com/a/armondhammer
linkedin.com/in/ChristiJOlson
THANK YOU
APPENDIX
AKA… WE HAD TOO MANY SLIDES TO SHOW YOU!
THE BASICS YOU NEED TO KNOW:
@ChristiJOlson#HeroConf
OBJECTS……..… reference table
ENTITIES………. what your looking for
FUNCTIONS….. what the script is doing / formula
VARIABLES……. elements/items
METHODS……. how
SELECTORS..…. filters / refine results
ITERATORS…... find the next item (until there are no more)
LOGGERS…….. print the results
OBJECTS COLLECTION OF “ENTITIES”
AdWordsApp MccApp
SpreadsheetApp UrlFetchApp
ADWORDS
ACCOUNT
CONNECTS WITH
SPREADSHEETS
(FOR REPORTING)
ACROSS
YOUR MCC
COMMUNICATES
WITH OTHER
SERVICES &
APPLICATIONS
ENTITIES – ELEMENT/PROPERTY
List of
AdWords Entities:
bit.ly/1aeDxby
FUNCTIONS PERFORM
TASKS / PROCEDURES
@ChristiJOlson#HeroConf
{ } Curly Brackets define
the beginning & End of a
Function
@ChristiJOlson#HeroConf
VARIABLES (VAR) NAME & STORE DATA
WITHIN SCRIPTS
Variable are like a container to store “data”
@ChristiJOlson#HeroConf
ESTABLISH AN OBJECT AND SELECT AN ENTITY
TO QUERY
var keywords = AdWordsApp.keywords()
Object
Named
Variable Entity
Join an object and
entity with a PERIOD
METHODS ARE HOW SCRIPTS
INTERACT WITH OBJECTS
@ChristiJOlson#HeroConf
• retrieve information about an object (what it is)
• ask an object about itself (what campaign a kwd is in)
• tell the object to do something (change status)
EXAMPLES OF METHODS
@ChristiJOlson#HeroConf
getMaxCpc()
getQualityScore()
setDestinationURL()
when setting or specifying a values
enter it between the brackets ()
some methods require values.
most are left blank ()
SELECTORS REFINE THE LIST OF ENTITIES
@ChristiJOlson#HeroConf
• withCondition()
•withIds()
•forDateRange()
•orderBy()
•withLimit()
SELECTORS REFINE THE LIST OF ENTITIES
AND CAN ORDER IT
@ChristiJOlson#HeroConf
•withCondition()
(‘Entity > N’); Greater than
(‘Entity <N’); Less than
•forDateRange()
forDateRange(‘YESTERDAY’);
forDateRange(‘LAST_14_DAYS’);
•orderBy()
(‘Entity ASC’); Ascending Order
(‘Entity DESC’); Descending Order
ITERATORS RETURN THE NEXT ITEM
@ChristiJOlson#HeroConf
•like an array
• pattern based search
• come after selectors
hasNext()
objectNext()
LOGGER OUTPUTS THE DATA TO A
PREVIEW PANEL
@ChristiJOlson#HeroConf
•great for troubleshooting
• slows processing time
• recommend removing after
debugging

More Related Content

PDF
Amazon Sponsored Ads: Beyond Basics
PDF
Scaling Enterprise SEM Campaigns - SMX Muenchen 2016
PPTX
How to [Partially] Automate Your SEO Agency Using Google Sheets
PPTX
Better conversion with Intelligent Analytics
PPTX
How to Extend Your Client's Ad Reach - Brighton seo april2018_final
PPTX
Automate your SEO checks with Python 2017
PDF
Brighton SEO - Getting a competitive advantage on ebay
PPTX
UnGagged LA 2019 - The Business Value of Tech SEO - Jennifer Hoffman
Amazon Sponsored Ads: Beyond Basics
Scaling Enterprise SEM Campaigns - SMX Muenchen 2016
How to [Partially] Automate Your SEO Agency Using Google Sheets
Better conversion with Intelligent Analytics
How to Extend Your Client's Ad Reach - Brighton seo april2018_final
Automate your SEO checks with Python 2017
Brighton SEO - Getting a competitive advantage on ebay
UnGagged LA 2019 - The Business Value of Tech SEO - Jennifer Hoffman

What's hot (20)

PDF
The Toughest Battles in SEO are Internal - Rachel Costello, Technical SEO, De...
PDF
Smxl milan 2019 - Apps script for SEO
PPTX
Redefining relevance: links in 2018 - #LeedsLovesSearch
PDF
Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...
PPTX
Step Into The Future: Automate Your PPC With AdWords Scripts - Marcela De Vivo
PDF
Christoph Cemper - Advanced Link Audit & Google Updates
PPTX
Emily Mace BrightonSEO Talk September 2017
PDF
The Future of Technical SEO | Women in Tech SEO 2019 | Rachel Costello
PDF
Kostas Voudouris - BrightonSEO - Perfromance-based optimisation using Google ...
PDF
How to Succeed in B2B SEO
PDF
Advanced Tips, Tricks, & Tools for Conquering AMP Problems Today By Paul Shapiro
PDF
Brighton SEO Takeaways - April 2018
PDF
Jacob Kildebogaard - Web Juice (All Things Data 2015)
PDF
Surviving Seasonal SEO
PPTX
How a year of SEO split testing changed how I thought SEO worked
PPTX
Matching Keywords to Pages - Information Architecture
PDF
How to Survive & Thrive after Mobile First Indexing - Rachel Costello, Techni...
PDF
URL Funnel Optimisation: How to get budget for SEO - Michal Magdziarz, CEO, D...
PDF
Internationalizing Your SEO By Aleyda Solis
PDF
SEO predavanje sa ekonomskog fakulteta u Osijeku
The Toughest Battles in SEO are Internal - Rachel Costello, Technical SEO, De...
Smxl milan 2019 - Apps script for SEO
Redefining relevance: links in 2018 - #LeedsLovesSearch
Conflicting Website Signals & Confused Search Engines - Rachel Costello, Tech...
Step Into The Future: Automate Your PPC With AdWords Scripts - Marcela De Vivo
Christoph Cemper - Advanced Link Audit & Google Updates
Emily Mace BrightonSEO Talk September 2017
The Future of Technical SEO | Women in Tech SEO 2019 | Rachel Costello
Kostas Voudouris - BrightonSEO - Perfromance-based optimisation using Google ...
How to Succeed in B2B SEO
Advanced Tips, Tricks, & Tools for Conquering AMP Problems Today By Paul Shapiro
Brighton SEO Takeaways - April 2018
Jacob Kildebogaard - Web Juice (All Things Data 2015)
Surviving Seasonal SEO
How a year of SEO split testing changed how I thought SEO worked
Matching Keywords to Pages - Information Architecture
How to Survive & Thrive after Mobile First Indexing - Rachel Costello, Techni...
URL Funnel Optimisation: How to get budget for SEO - Michal Magdziarz, CEO, D...
Internationalizing Your SEO By Aleyda Solis
SEO predavanje sa ekonomskog fakulteta u Osijeku
Ad

Viewers also liked (8)

PDF
How to Lose Your B2B PPC Account - PPCKirk Hero Conference London
PDF
PPC Hero Conference Performance Segments
PPTX
The Race to Marketing Mastery
PPTX
Hero Conf London 2016 - The Definitive Framework for Bidding in AdWords
PDF
Hero conference 2016 - advanced bidding
PPTX
PPTX
Hero Conf Portland 2015 - PPC Audits - AdWords Scorecard
PPTX
Everything You Need To Know About AdWords Ad Extensions - Updated
How to Lose Your B2B PPC Account - PPCKirk Hero Conference London
PPC Hero Conference Performance Segments
The Race to Marketing Mastery
Hero Conf London 2016 - The Definitive Framework for Bidding in AdWords
Hero conference 2016 - advanced bidding
Hero Conf Portland 2015 - PPC Audits - AdWords Scorecard
Everything You Need To Know About AdWords Ad Extensions - Updated
Ad

Similar to PPC HERO Introduction to AdWords Scripts: Christi Olson & Steve Hammer (20)

PDF
[Webinar] A Non-Coders Guide to AdWords Scripts
PDF
Become a Google Analytics Ninja
PPTX
PubCon Last Vegas 2015 - Editing AdWords Scripts
PPTX
Fixing Quality Score Unbounce Conversion Road Trip
PPTX
SEO Reporting in the Enterprise: Information is Power by AJ Mihalic - #SEJSum...
PPTX
SEO Reporting in the Enterprise - AJ Mihalic - AYIMA
PDF
[GrowthHacker Conference '16] Willix Halim, SVP Growth at Freelancer.com: Cre...
PDF
Growth Hacking Strategies For Rapid Growth
PDF
Be a Google Analytics Ninja – Advanced Google Analytics
PPTX
Tools of the Trade for Running SEO Audits - SMX East 2015: Essential Steps fo...
PPTX
Competitive Intelligence and Research in Paid Search
PDF
Sales Acceleration with Marketing Automation
PPTX
When Abandoning Best Practices is the Right Thing To Do
PPT
Advanced Excel - HeroConf Philadelphia
PDF
Inside the Force.com Query Optimizer Webinar
PDF
Online SEO Meetup
PPTX
Click to Close: PPC Lead Gen Strategies for All Stages of the Funnel
PDF
Click to Close: Lead Generation Strategies for the Full Marketing Funnel
PDF
Content Commerce + Growth Strategies For Online Retailers
PPTX
Internal Search Optimization (iSEO): Creating Promoted Search Results Improv...
[Webinar] A Non-Coders Guide to AdWords Scripts
Become a Google Analytics Ninja
PubCon Last Vegas 2015 - Editing AdWords Scripts
Fixing Quality Score Unbounce Conversion Road Trip
SEO Reporting in the Enterprise: Information is Power by AJ Mihalic - #SEJSum...
SEO Reporting in the Enterprise - AJ Mihalic - AYIMA
[GrowthHacker Conference '16] Willix Halim, SVP Growth at Freelancer.com: Cre...
Growth Hacking Strategies For Rapid Growth
Be a Google Analytics Ninja – Advanced Google Analytics
Tools of the Trade for Running SEO Audits - SMX East 2015: Essential Steps fo...
Competitive Intelligence and Research in Paid Search
Sales Acceleration with Marketing Automation
When Abandoning Best Practices is the Right Thing To Do
Advanced Excel - HeroConf Philadelphia
Inside the Force.com Query Optimizer Webinar
Online SEO Meetup
Click to Close: PPC Lead Gen Strategies for All Stages of the Funnel
Click to Close: Lead Generation Strategies for the Full Marketing Funnel
Content Commerce + Growth Strategies For Online Retailers
Internal Search Optimization (iSEO): Creating Promoted Search Results Improv...

More from Christi Olson (15)

PDF
DigitalDealer27 - Voice Search Optimization and 2019 Voice Report
PDF
Ultimate Search Audience Development Guide
PDF
Ms inspire odr02_digital-marketing-growth
PPTX
The Role of Search in Media Mix SEMPO Cities Houston
PPTX
DDWNE: Understanding Attribution Models & Audience Remarketing
PDF
New Era of Search - Bing Ads - Christi Olson
PDF
Behind the Scenes With Bing Ads - SEWConnect Miami 2016
PPTX
International PPC, The Final Frontier; DFWSEM State Of Search 2015
PPTX
TADA CDDC8 Developing a Digital Marketing Strategy
PPTX
Digital Dealer 18: An Intro to Paid Search & Managing an Agency Relationship
PPTX
SMX West 2014: Breathing Life Into A Tired Campaign
PPTX
SMX West 2013: Google Goes Pay For Play (Google PLAs/ Google Shopping)
PPTX
Maininting Work-Life-balance
PPTX
SMX West 2015: Bing Ads UET
PPTX
eCommerce 2014 Holiday Planning for Slackers
DigitalDealer27 - Voice Search Optimization and 2019 Voice Report
Ultimate Search Audience Development Guide
Ms inspire odr02_digital-marketing-growth
The Role of Search in Media Mix SEMPO Cities Houston
DDWNE: Understanding Attribution Models & Audience Remarketing
New Era of Search - Bing Ads - Christi Olson
Behind the Scenes With Bing Ads - SEWConnect Miami 2016
International PPC, The Final Frontier; DFWSEM State Of Search 2015
TADA CDDC8 Developing a Digital Marketing Strategy
Digital Dealer 18: An Intro to Paid Search & Managing an Agency Relationship
SMX West 2014: Breathing Life Into A Tired Campaign
SMX West 2013: Google Goes Pay For Play (Google PLAs/ Google Shopping)
Maininting Work-Life-balance
SMX West 2015: Bing Ads UET
eCommerce 2014 Holiday Planning for Slackers

Recently uploaded (20)

PDF
E_Book_Customer_Relation_Management_0.pdf
PDF
You Need SEO for Your Business. Here’s Why..pdf
PPTX
SaaS intelligence platform for B2B founders and marketers - Toksta
PDF
Biography of Brady Beitlich
DOCX
procubiz_modern digital marketingblog.docx
PPTX
hnk joint business plan for_Rooftop_Plan
PDF
Digital Marketing Agency vs Freelancers and VAs: Which Should You Hire in 2025
PDF
20K Btc Enabled Cash App Accounts – Safe, Fast, Verified.pdf
PPTX
CH 2 The Role of IMC in the Marketing Process (combined)
PDF
Mastering Content Strategy in 2025 ss.pdf
PPT
Market research before Marketing Research .PPT
PDF
DigiBrandX: Crafting Identities That Resonate
PPTX
Tea and different types of tea in India
PDF
Instagram Marketing Agency by IIS INDIA.pdf
PPTX
B2B Marketplace India – Connect & Grow..
PDF
Nurpet Packaging Company Profile (Basic)
PPTX
Strategic Sage Digital-The Professional Digital Marketing Company in Mohali.pptx
PPTX
Fixing-AI-Hallucinations-The-NeuroRanktm-Approach.pptx
PDF
The Role of Search Intent in Shaping SEO Strategies in 2025
PDF
Best digital marketing company in Mumbai
E_Book_Customer_Relation_Management_0.pdf
You Need SEO for Your Business. Here’s Why..pdf
SaaS intelligence platform for B2B founders and marketers - Toksta
Biography of Brady Beitlich
procubiz_modern digital marketingblog.docx
hnk joint business plan for_Rooftop_Plan
Digital Marketing Agency vs Freelancers and VAs: Which Should You Hire in 2025
20K Btc Enabled Cash App Accounts – Safe, Fast, Verified.pdf
CH 2 The Role of IMC in the Marketing Process (combined)
Mastering Content Strategy in 2025 ss.pdf
Market research before Marketing Research .PPT
DigiBrandX: Crafting Identities That Resonate
Tea and different types of tea in India
Instagram Marketing Agency by IIS INDIA.pdf
B2B Marketplace India – Connect & Grow..
Nurpet Packaging Company Profile (Basic)
Strategic Sage Digital-The Professional Digital Marketing Company in Mohali.pptx
Fixing-AI-Hallucinations-The-NeuroRanktm-Approach.pptx
The Role of Search Intent in Shaping SEO Strategies in 2025
Best digital marketing company in Mumbai

PPC HERO Introduction to AdWords Scripts: Christi Olson & Steve Hammer