Deck from SMX West 2018. Targeting customers on their mobile devices during every regular season MLB game. Finding just the right users at just the right time.
No Cookies No Problem - Steve Krull, Be Found Online
Real Time Customized Messaging + Hyperlocal Targeting
1. #SMX #32B @GoodStoryKris
Real-Time Customized Messaging + Hyper Local Targeting
TITLE SLIDE –
WRITE A
COMPELLING
HEADLINE
FOR SOCIAL
SHARING
Target Us AtThe Ballgame
2. #SMX #32B @GoodStoryKris
Sr. Director Digital Marketing Strategy
Kris Belau
Who I am
• 10+ Years Paid Media
• Liberal Arts Undergrad
• MBA
• Search Geek
• Geek
3. #SMX #32B @GoodStoryKris
The Challenge
Mr. Business
“We want to target customers while
searching on their mobile devices at the
stadium during a baseball game. We
want ads that are customized to their
experience at the game. We don’t want
to pay anything for this, and you’ll be
doing all of the operations work”
- Mr. Business
7. #SMX #32B @GoodStoryKris
Step Two – Create Your Business Data Feed
Pro Tip #2: Don’t Overthink It.
Code Counter
296 Lines
8. #SMX #32B @GoodStoryKris
Step Three – Build Out Your Campaigns
Pro Tip #3: Campaign Names & Labels.
Code Counter
339 Lines
9. #SMX #32B @GoodStoryKris
Step Four – Automate Your Flighting
Pro Tip #4: Script timing isn’t precise.
Code Counter
375 Lines
10. #SMX #32B @GoodStoryKris
Step Five – Build Your Ad Customizers
Pro Tip #5: Add at least one static ad.Code Counter
375 Lines
11. #SMX #32B @GoodStoryKris
Limitations
Scripts can only run hourly --- Scores (hopefully) change more often.
Location-based ad customizers aren’t available in AdWords Scripts.
Business Data approval process creates additional delays on new rows.
No good solution to mirror on Bing.
Enhancements
Handling for rain delays and other unscheduled events.
More game information (Inning, Player Stats, etc.)
Use AdWords API for closer to real time updates.
12. #SMX #32B @GoodStoryKris
We’re Hiring
• Paid Marketing
• SEO
• Developers
• Copywriters
• Analysts
• Art Director
• Project Managers
• Events Managers
• Designers
• Strategists
13. #SMX #32B @GoodStoryKris
Share these #SMXInsights on your social channels!
#SMXInsights
AdWords Scripts + Ad Customizers
- Feed real time information into Ad Copy
AdWords Scripts + Location Targeting
- Large scale campaigns 1km at a time.
Google Apps Scripts + Google Sheets
- Near real-time data for anything with an API
Editor's Notes
Hey everyone, my name name is Kristoffer Belau. I’m Sr. Director of Digital Marketing strategy and Firewood Marketing.
<SLIDE>
I’ve been managing paid media campaigns for about 10 years moving from the in-house world to the agency world, but I’m no developer.
<SLIDE>
I have a liberal arts background. My undergrad majors were the ohhh-so-useful political science and philosophy then
<Slide>
I decided that I needed to get my MBA. Which while very useful in no way qualifies me to be talking to you today, but what I am is
<SLIDE>
A Total search geek. I don’t mean that I just really enjoy managing paid search, but that I love to get deep into the weeds of paid search campaigns and that’s why I’m here.
<Slide>
I’m also just a normal geek just in case anyone wants to discuss Game of Thrones after the the panel.
So in order to make this real and interesting I wanted to put it in a a case study, unfortunately I didn’t have an example of this that I could share publically so… I’ll just make something up. --
Mr Business at the Hypothetical Jersey Company came to Firewood with a new brilliant idea. You see, he believes that his customers are far more likely to buy his new line of officially licensed baseball jersey the while they are at a baseball game. He also wants his ads to stand out by bringing in the customer’s experience at the game to customize his ad copy. He assumes that this should be a totally easy thing to do and doesn’t understand why we were looking at him like that. Also, he doesn’t have a very large budget so paying for any kind of additional software or data is out of the question.
So the task is simple right? We just need to have people watch every single baseball game during the regular season with AdWords open. We’ll manually turn on the campaigns when the game starts and we’ll turn it off when the game ends (or if there’s a rain delay or other such game stoppage). Every time a team scores we’ll update the ad copy across all of our ad groups targeted to that game… Yep, we’ll do that for all 2,430 games…
But here’s the thing. I hate baseball. It’s a terrible and boring game where most of the game is just wanting people stand there. If I have to watch 2,430 baseball games this summer I’m going to lose my mind. That’s not an option. So
<Slide>
Bring in the robots,
No not that one, No, Not that one, Nope, Nope,
Ahh that’s the one. If we’re clever we should be able to set up some scripts that can do the awful work of watching baseball for us.
The first thing we need to do is gather our data we want to build out a spreadsheet that updates itself in as real time as possible. We’ll gather as much information as we can get our hands on even if we’re not going to use it all so we can test different messaging in the future.
<SLIDE>
Here is where our first script comes into play. This was the largest bit of work in this entire project and took about 200 lines of code, but in reality this is just a simple API pull to grab the data we want. But I want to highlight an important thing here.
<SLIDE>
Don’t pay for your data unless you absolutely have to. There are quite a few services out that that offer the data we needed but we decided to go with
<SLIDE>
Sportsradar. They do charge for their data, but you can access it with limitations. In this case that’s limitations on the rate at which you can download the data. That would be a problem in most contexts, but giving our limitations in AdWords it doesn’t matter. So we can write the data from Sportsradar directly into Google Sheets without paying a dime.
Now we need to get that data our of sheets and into AdWords in a way that’s useful to us for customizing our ad copy. That means building out our business data feed. If this was just a game schedule we’d be able to do that by just importing a CSV file, but since we need the data to be updated with up to date game information we’ll need
<Slide>
Another robot. This one was a bit shorter at 96 lines brining our total code count to just under 300, but again it’s fairly simple. The key here is to not overthink things and try to put more information that you need into the feed. You could write some fancy code to call the Google Maps API to pull in field location data, but baseball fields don’t have a tendency to move around much so it’s probably easier to just add that data manually.
<Slide>
So our nice simple bot has taken all of our data from Sheets and gotten it where we can use it in AdWords.
Now is where we hit our first little annoying snag. In an ideal world we could run this entire program with only one campaign. You could use location targeting to control when and where the ads are online and use location based ad customizers to customize the messaging for the right place and the right time. Unfortunately location based ad customizers aren’t supported within AdWords scripts (grumble). But that won’t stop us!
<Slide>
There are about 30 major league baseball stadiums in the US and Canada, so we 30 campaigns. 30 campaigns doesn’t take all that long to create, but why spend the time going in and manually matching all of your stadium locations to their respective campaigns. That’s a massive waste of time.. I refuse..
<Slide>
We have another little robot friend here help us a long. Coming in at about 40 lines of code this can help us with a one time task to build out our campaigns far faster than I’d be able to do them manually. That is as long as you…
<Slide>
Make sure that your campaigns are named uniformly and your are properly labeling you campaign. This holds true for ANY automation. Consistency is the key to avoiding headaches. The less you have to handle special cases where people use tildas intead of dashes the better your life is going to be.
<Slide>
So our robots now take our location data matched to the home team name and populates our our campaigns in AdWords with the proper Longitude and Latitude of the stadium and we have all of our campaigns prepped and ready to go.