SMX Advanced - When to use Machine Learning for Search Campaigns

ChristopherGutknecht 1,053 views 45 slides Sep 30, 2019
Slide 1
Slide 1 of 45
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45

About This Presentation

This SMX talk will walk you through how search campaigns can be automated from an inventory and a query perspective and where entry-level machine learning services can improve the automation quality. The accompanying code can be found at: bit.ly/smx_chrisg

The talk was held at SMX Advanded Europe 2...


Slide Content

When to Use Machine Learning for
Search Campaigns: A Hands-On Guide
@chrisgutknecht

@chrisgutknecht
Your Takeaways of this Talk
1. A PPC tech-stack to get started with Machine Learning
Slides & Code: bit.ly/smx_chrisg
2. When to use ML for Search Campaign Building:
-Inventory-based and
-Query-based campaigns
3. Great Entry-level ML Services for PPC

@chrisgutknecht
About Christopher: Head of Performance Marketing @ Bergzeit
Digital Marketer
Tech-nerd
Climber
1997 2008 2013 2019
Dad
Online Retailer for Mountain Gear
€ 70M Revenue in 2018
€ 500k Paid Media Spend / Month
+ 500 Brands, 130k SKUs in Shopping
Non-Brand Sales: 60% Shopping, 40% Search

4
Large-Scale PPC is Becoming the
Science of Managing Data Pipelines

@chrisgutknecht
Humans in Charge. Machines are Tools. We need Constant Improvement!
MachineHuman
Machine
Learning
Feedback
RULE: If you fail to get beyond 85% of prediction accuracy > Try ML
Rule-Based

6
Supervised ML:
I’ve got a ton of structured data,
You figure out the rest!

7
When it comes to Machine Learning,
I’m still at basecamp (but ambitious)

@chrisgutknecht
The PPC Starter Toolkit: Ads Scripts & Python
Google Ads Script
Sheets
Big Query
...
Write & Run Code
Cloud Functions Google Colab
Storage ML
ML Libraries
&
Services
APIs
bit.ly/smx_chrisg

@chrisgutknecht
Rent a Real Ninja for Your Tool Set
Scripts
Cloud Functions

@chrisgutknecht
Runtime Issues? Slice your Workload!
Scripts
Cloud Functions
30min vs 6min
3-4 GB vs 2GB

@chrisgutknecht
SEARCH is losing: We Need MORE Automation!
1. Feed better Data into Shopping
2. Automate Search (as much as possible)

@chrisgutknecht
Let’s Combine our Two Data Sources: Supply & Demand
2. DEMAND = Queries1. SUPPLY = Inventory

@chrisgutknecht
Using Inventory & Query Data: What are the Key Challenges?
1. Inventory
Build & Sync Attribute Combinations
2. Queries
Check Queries against Attributes &
Inventory
Hygiene:
Auto-add Near Exact & Monitor Query Overlaps
bit.ly/smx_chrisg

@chrisgutknecht
Search Automation Workflows
Supply = Feedbased Demand = Querybased
Hygiene:
-Add Near-Exact
-Manage Overlaps
-Monitor URLs
Sync Entity Combinations
Validate against user queries Validate Good Queries against Entities and Inventory
ML:
-Find Campaign
-Find page
-Associate Extension
1. SUPPLY
Inventory-based campaigns

@chrisgutknecht
Tooltip for Inventory-based Campaigns: Google Dataprep
Google Dataprep
Very flexible & powerful
FREE (only IT costs)
GCP Account needed
Datasync-Doc: bit.ly/smx_chrisg

@chrisgutknecht
Managing Feedbased Campaigns with Dataprep
Change Data in any way imaginable Manage Data Sources and Outputs
GROUP BY

@chrisgutknecht
Managing Feedbased Campaigns with Dataprep
Combine the Hell out of your Product Attributes

@chrisgutknecht
Use Google Suggest API to Prevent Useless Keyword Combinations
Big Query Cache
Google Suggest API Keyword List
Historical Query Data
Keyword Planner (API)
Validated Keywords
Not Longtail-Friendly
In Cache?
0 Results

@chrisgutknecht
Getting your Data To and From Dataprep
Process in Dataprep Export as .csv
Import via Cloud
Functions to
Cloud Storage
Create via Script
Upload SAME Feed for
Business Data
(Price, Amount etc.)
Upload via Bulk upload
& Sheet Tabs

@chrisgutknecht
Want To Test Dataprep? Reach Out!
Reach out to Me > I’ll share a copy of my Dataflow

@chrisgutknecht
2. DEMAND
Query-Based Campaigns

@chrisgutknecht
String
Comparison
The Five Key Challenges of Query Automation
Get new good
Keywords
Clean Query
Analyze
Entities
Check
Inventory
Choose
Campaign
Classification
Entity
Recognition
Classification
Value
Prediction
-
Custom
Search API
AutoML /
Spacy
AutoMLBigQueryML -
Step
ML-Based
ML Tools
1. 2. 3. 4. 5.
Skip
Non-FullMatch
String LookupKPI-Filter
Ask Site
Search
Rule-Based

@chrisgutknecht
Query-Task #1: Find New Good Keywords
-Conversions > a and ROAS > b
-Impressions > c and Clicks > d
KPI Filter value Prediction
-Predicted Margin per Click
-Entities as value features
Simple Advanced
Matchtype is not Exact AND not nearExact (separate workflow)

@chrisgutknecht
Outlook: Entity-Based Prediction - Adference-Style

@chrisgutknecht
Train a Regression Model in SQL with BigQuery ML
Linear
Regression
Logistic
Regression
Multiclass
Labeling
Clustering
Model Import
(Tensorflow etc)

@chrisgutknecht
A Simple N-Gram Model Doesn’t Work - Entities Needed!
Increasing loss = BAD

@chrisgutknecht
BigQuery is the #1 Reason to Learn SQL
Ads Data Transfer Merchant Center Data
Transfer
Analytics Raw Data
(Web+App Property)
Own Datasets
- Weather, Price Crawls
- Returns, Margins
Combine Data and Train Models with BigQuery ML

@chrisgutknecht
Query-Task #2: Clean Queries(Example “Widfire”)
1. Suggest API
2. Custom
Search API
Corrected Typo

@chrisgutknecht
Query-Task #3: Entity Recognition
Full and Partial List
Matching
Textbased Spacy - NLP Library
AutoML for Entity
Recognition
Annotate Data with
Custom Entities
Pretrained or Custom
Model with Annotation UI
Simple Advanced

@chrisgutknecht
Query-Task #3: Entity Recognition Example
“dynafit damen headband pink”
brand gender partialTitle color
Query
Entities
7 5 8 4Chars = 24 / 24
(100%)

@chrisgutknecht
Query-Task #3: Entity Recognition & Textbased Match-Cascade
“dynafit damen headband pink”

@chrisgutknecht
Query-Task #3: Resolving Entity Ambiguities @ SIXT via App
Improve
Training
Data
I think it is a
VEHICLE_TYPE
bristol car &
van hire

@chrisgutknecht
Query-Challenge #3: Scaling Validation with Spacy & Prodigy
Annotated Training Data Needed Scale Data Validation with Annotation UI

@chrisgutknecht
There is NO Plug & Play Tool for
Entity Recognition.
You need to Customise & Train it!

@chrisgutknecht
Query-Task #4: Check Inventory- OR Train your Site Search!
Check Result Count via
Search-URL
Validated Entities
Train ONE Entity
Recognition with All Data
Expose as API for All Tools
Simple Advanced

@chrisgutknecht
Query-Task #5: Campaign Classification
Full and Partial Query
Matching
Textbased AutoML for Natural Language
Provide Queries with Correct
Target Campaigns (m. 100/Camp)
Simple Advanced

@chrisgutknecht
Query-Task #5: AutoML Classification Model Scores & Prediction

@chrisgutknecht
Query-Task #5: AutoML Model Scores By Campaign

Yes, that was A LOT.
We’ve arrived at the top...

@chrisgutknecht
Your Takeaways in Summary
1. Start mixing Scripts with Python & Managed ML
Slides & Code: bit.ly/smx_chrisg
2. Test Google Dataprep for Inventory-based campaigns
4. Build a BigQuery Empire of Your Business Data
3. Start extracting Entities from your Query Sources

THANK YOU.
Looking Forward To Your Questions!
@chrisgutknecht
bit.ly/smx_chrisg

@chrisgutknecht
The Alternatives to Building Your Own Data Pipelines
1. Hand to Google 2. Rent a Tool 3. Delegate to IT 0. Build

@chrisgutknecht
Query-Task #3: Entity Recognition & Ambiguities: What’s Correct?

@chrisgutknecht
Appendix. Python & Data Science Resource: Who To Follow
PPC
Marco Frighetto
?
SEOs
-Hamlet Batista
-Paul Shapiro
-@Tyler Reardon
-Johnny BlackLabel
Analytics
-Simo Ahava
-Measure Camp
-Enor
-GCP Community
-Lak Lakshaman > BigQueryML
-Towards Data Science

@chrisgutknecht
The Entry Level ML Services: APIs, AutoML & BigQueryML
Marketer