SlideShare a Scribd company logo
“Google My
Business” API
Managing your locations at scale
Agenda
● Introduction
● Google My Business (GMB)
● The GMB API
● GMB locations in AdWords
Introduction
Introduction
Why talk about GMB during AdWords workshops?
Why Talk About GMB?
Your locations
You
I want locations
extensions!
AdWords API
Maps API
I want my address /
my business showing
up in Maps!
I want my address
showing up in Search!
Search API
I want a Google+
presence for my
business! G+ API
Introduction / cont.Client changed address
Location Management in GMBL
● Locations exist once in reality, they should
also exist only once in our system
● Central repository: GMB Locations
Consequences for Developers
What does this mean for you?
● Use GMB (API) for creating locations
● Migrate locations from AdWords
(feeds / manual location extensions)
to GMB
Google My Business
Google My Business
Manage business presence across Google*
● Search
● Maps
● Google+
● AdWords
(location
extensions)
* Not available in some countries
GMB Locations
How to create business locations?
● Manual Creation
● Bulk Upload
● New: GMB API
GMB Locations / cont.
www.google.com/local/manage
Location Verification
Locations have to be verified for Search,
Maps, Google+
● Postcard
● Phone (limited)
● Instant verification (Webmaster Tools)
● Bulk verification (chains)
https://support.google.com/business/answer/2911778
Location Verification / cont.
Manual
Creation
Bulk
Upload
GMB
API
No verification necessary for AdWords!
GMB Locations (unverified) GMB Locations (verified)
Verification
(Postcard / Phone /
Instant / Bulk)
The GMB API
Goals
Enable Ads location extensions to source location information
from Google My Business instead of a feed
2014 - Upgraded Location Extensions
Enable developers to programmatically create and
manage business location information on Google
2015 - GMB API
Move all locations to Google My Business
2016 - Sunset of Manual LEs in AdWords
API Capabilities
● RESTful API, resources as JSON
● Client Libraries for Java, C#, PHP
● Create, Read, Update and Delete locations*
○ Name, Address, Phone
○ Categories, Hours, Website URL
○ Service area
○ Store code, Labels
* Delete only for un-verified locations
Get Access
● Fill out form @ goo.gl/o87cwB
(condition: currently more than 50 manual location
extensions)
● Once approved, check out
developers.google.com/my-business
Get Started
● Create a Google My Business account
www.google.com/local/manage
Get Started / cont.
● Create a project on Developers Console
console.developers.google.com
○ APIs & Auth → Enable GMB API
Get Started / cont.
● Add new OAuth 2.0 client ID
Get Started / cont.
● Submit project ID
(form link in GMB API welcome email)
Working with the
GMB API
Testing It Out
developers.google.com/oauthplayground
● Dev Console: Web Application, Authorize playground redirect URL
● Settings → Use own credentials → Enter Client ID
● Scope: https://www.googleapis.com/auth/plus.business.manage
● Request URI: https://mybusiness.googleapis.com/v1/accounts
Testing It Out - Set Credentials
● Settings → Use own credentials → Enter Client ID
Testing It Out - Authorize APIs
● Scope: https://www.googleapis.com/auth/plus.business.manage
Testing It Out - Retrieve accounts
● Request URI: https://mybusiness.googleapis.com/v1/accounts
Testing It Out - Retrieve locations
● Request URI: https://mybusiness.googleapis.com/v1/accounts/{id}
/locations
Let’s talk code
1. Initialize GMB
// Initialize GMB.
Mybusiness gmb = new Mybusiness.Builder(httpTransport,
jsonFactory, credential)
.setApplicationName(APPLICATION_NAME)
.build();
// Get list of GMB accounts.
Mybusiness.Accounts.List listAccounts = gmb.accounts().list();
ListAccountsResponse response = listAccounts.execute();
List<Account> accounts = response.getAccounts();
// Select account to work with.
Account account = selectAccount(accounts);
Your implementation
2. Create Location
// Create the location.
Location location = new Location();
// Set location properties.
location.setLocationName("My Company");
location.setWebsiteUrl("https://www.example.com");
...
2. Create Location / cont.
// Create an address.
Address address = new Address();
// Set address properties.
address.setAddressLines(Collections.singletonList(
"1600 Amphitheatre Pkwy"));
address.setPostalCode("94043");
address.setLocality("Mountain View");
...
location.setAddress(address);
2. Create Location / cont.
// Create business hours.
BusinessHours businessHours = new BusinessHours();
// Set timings.
TimePeriod period = new TimePeriod();
period.setOpenDay("Monday"); period.setOpenTime("9:00");
period.setCloseDay("Monday"); period.setCloseTime("17:00");
businessHours.setPeriods(Collections.singletonList(period));
location.setBusinessHours(businessHours);
3. Apply Labels
● Labels are optional
○ Can be used for organizing locations
○ Can be used for filtering in AdWords
○ Recommendation: Use AdWords CIDs (see later)
location.setLabels(Collections.singletonList(CID));
4. Send Creation Request
CreateLocationRequest createLocationRequest =
new CreateLocationRequest();
createLocationRequest.setLocation(location);
createLocationRequest.setLanguageCode("en-AU");
Mybusiness.Accounts.Locations.Create createLocation =
gmb.accounts()
.locations()
.create(account.getName(),createLocationRequest);
Location createdLocation = createLocation.execute();
Summary
Summary
1. Initialize GMB
Mybusiness gmb = ...;
2. Create location, address, hours
Location location = new Location();
Address address = new Address();
BusinessHours hours = new BusinessHours();
3. Apply Labels
location.setLabels(Arrays.asList(CID));
4. Send Creation Request
CreateLocationRequest createLocationRequest = ...
GMB locations in
AdWords
GMB account
Previously...
GMB locations
AdWords account
Campaign B
Mapped locations
(campaign)
CampaignFeed /
Matching Function
Campaign A
Mapped locations (customer)
CustomerFeed /
Matching Function
AdWords locations
GMB UI AdWords API
( )
GMB account
Now: One Repository
GMB locations
AdWords account
Campaign B
Mapped locations
(campaign)
CampaignFeed /
Matching Function
Campaign A
Mapped locations (customer)
CustomerFeed /
Matching Function
Available locations
Feed /
setLabelFilters(...)
GMB API
CampaignFeed campaignFeed = new CampaignFeed();
campaignFeed.setMatchingFunction(...);
CustomerFeed customerFeed = new CustomerFeed();
customerFeed.setMatchingFunction(...);
Feed gmbFeed = new Feed();
gmbFeed.setSystemFeedGenerationData(...);
Let’s Talk Code
Main Steps
1. Create a new feed linked to your GMB account
2. Associate the feed to the customer
3. Associate the feed to specific ad groups / campaigns
“Link” level filter
IDENTITY(true)
Enables location
extensions
Campaign level filter
Best Practice for Resellers
● If ...
○ … your client already has a GMB account
○ … you want to work with verified locations
⇒ Ask your client to add you as a GMB manager
● Preserves client’s location ownership
● Locations access through manager account
● In PlacesLocationFeedData, use your credentials
but specify client GMB ID when syncing to AdWords
Best Practice for Resellers / cont.
● If you only need GMB for AdWords
location extensions
⇒ Use GMB repository account for all locations
○ Create MCC-level GMB account (=repository)
○ Label locations with CIDs
○ Filter locations / feeds based on label in AdWords
… In Code
GMB API location.setLabels(Arrays.asList(CID));
AdWords API fd = new PlacesLocationFeedData();
fd.setLabelFilters(new String[]{CID});
Account: 1
Account: 2
Account: 3
GMB account
1
1
2
2
3
Location Extension Migration
Oct 2015
● GMB API available to AdWords
API users (>50 locations)
● Manual location extensions
deprecated
● March 31, 2016
● Creation of manual location
extension sunsets
● GMB API v2
● General availability
Q2 2016
● Auto-migration of any
locations left in AdWords
https://developers.google.com/adwords/api/docs/sunset-dates
Resources
GMB API https://developers.google.com/my-business
Signup https://goo.gl/o87cwB
GMBL UI https://www.google.com/local/manage
Guide https://goo.gl/kadl59

More Related Content

Viewers also liked

Remarketing using customer match
Remarketing using customer matchRemarketing using customer match
Remarketing using customer match
supergigas
 
What's new in reporting
What's new in reporting What's new in reporting
What's new in reporting
supergigas
 
BatchJobService
BatchJobServiceBatchJobService
BatchJobService
supergigas
 
Why use ad words api
Why use ad words apiWhy use ad words api
Why use ad words api
supergigas
 
How AdWords UI maps into adwords api
How AdWords UI maps into adwords apiHow AdWords UI maps into adwords api
How AdWords UI maps into adwords api
supergigas
 
Presentation Skills Workshop
Presentation Skills WorkshopPresentation Skills Workshop
Presentation Skills Workshop
Leighton Peter Prabhu
 
Abusing Exploiting and Pwning with Firefox Addons
Abusing Exploiting and Pwning with Firefox AddonsAbusing Exploiting and Pwning with Firefox Addons
Abusing Exploiting and Pwning with Firefox AddonsAjin Abraham
 
Abusing Google Apps and Data API: Google is My Command and Control Center
Abusing Google Apps and Data API: Google is My Command and Control CenterAbusing Google Apps and Data API: Google is My Command and Control Center
Abusing Google Apps and Data API: Google is My Command and Control Center
Ajin Abraham
 
Fuck Spreadsheets - first steps to become a data-driven company
Fuck Spreadsheets - first steps to become a data-driven companyFuck Spreadsheets - first steps to become a data-driven company
Fuck Spreadsheets - first steps to become a data-driven company
Steven Stadler
 
Best node js course
Best node js courseBest node js course
Best node js course
bestonlinecoursescoupon
 
PESO model visual communication planning cards and workflow
PESO model visual communication planning cards and workflowPESO model visual communication planning cards and workflow
PESO model visual communication planning cards and workflow
Frederik Vincx
 
Understanding angular js
Understanding angular jsUnderstanding angular js
Understanding angular js
Aayush Shrestha
 
Building a Marketplace: A Checklist for Online Disruption
Building a Marketplace: A Checklist for Online DisruptionBuilding a Marketplace: A Checklist for Online Disruption
Building a Marketplace: A Checklist for Online Disruption
Sangeet Paul Choudary
 
10 Startup Business Puzzles Visualized and Explained
10 Startup Business Puzzles Visualized and Explained10 Startup Business Puzzles Visualized and Explained
10 Startup Business Puzzles Visualized and Explained
Sangeet Paul Choudary
 
Kickfolio - 500Startups Batch 5
Kickfolio - 500Startups Batch 5Kickfolio - 500Startups Batch 5
Kickfolio - 500Startups Batch 5
500 Startups
 
Thailand Fintech landscape 2016 special report by techsauce
Thailand Fintech landscape 2016 special report by techsauce Thailand Fintech landscape 2016 special report by techsauce
Thailand Fintech landscape 2016 special report by techsauce
Techsauce Media
 
The Platform Manifesto - 16 principles for digital transformation
The Platform Manifesto - 16 principles for digital transformationThe Platform Manifesto - 16 principles for digital transformation
The Platform Manifesto - 16 principles for digital transformation
Sangeet Paul Choudary
 

Viewers also liked (17)

Remarketing using customer match
Remarketing using customer matchRemarketing using customer match
Remarketing using customer match
 
What's new in reporting
What's new in reporting What's new in reporting
What's new in reporting
 
BatchJobService
BatchJobServiceBatchJobService
BatchJobService
 
Why use ad words api
Why use ad words apiWhy use ad words api
Why use ad words api
 
How AdWords UI maps into adwords api
How AdWords UI maps into adwords apiHow AdWords UI maps into adwords api
How AdWords UI maps into adwords api
 
Presentation Skills Workshop
Presentation Skills WorkshopPresentation Skills Workshop
Presentation Skills Workshop
 
Abusing Exploiting and Pwning with Firefox Addons
Abusing Exploiting and Pwning with Firefox AddonsAbusing Exploiting and Pwning with Firefox Addons
Abusing Exploiting and Pwning with Firefox Addons
 
Abusing Google Apps and Data API: Google is My Command and Control Center
Abusing Google Apps and Data API: Google is My Command and Control CenterAbusing Google Apps and Data API: Google is My Command and Control Center
Abusing Google Apps and Data API: Google is My Command and Control Center
 
Fuck Spreadsheets - first steps to become a data-driven company
Fuck Spreadsheets - first steps to become a data-driven companyFuck Spreadsheets - first steps to become a data-driven company
Fuck Spreadsheets - first steps to become a data-driven company
 
Best node js course
Best node js courseBest node js course
Best node js course
 
PESO model visual communication planning cards and workflow
PESO model visual communication planning cards and workflowPESO model visual communication planning cards and workflow
PESO model visual communication planning cards and workflow
 
Understanding angular js
Understanding angular jsUnderstanding angular js
Understanding angular js
 
Building a Marketplace: A Checklist for Online Disruption
Building a Marketplace: A Checklist for Online DisruptionBuilding a Marketplace: A Checklist for Online Disruption
Building a Marketplace: A Checklist for Online Disruption
 
10 Startup Business Puzzles Visualized and Explained
10 Startup Business Puzzles Visualized and Explained10 Startup Business Puzzles Visualized and Explained
10 Startup Business Puzzles Visualized and Explained
 
Kickfolio - 500Startups Batch 5
Kickfolio - 500Startups Batch 5Kickfolio - 500Startups Batch 5
Kickfolio - 500Startups Batch 5
 
Thailand Fintech landscape 2016 special report by techsauce
Thailand Fintech landscape 2016 special report by techsauce Thailand Fintech landscape 2016 special report by techsauce
Thailand Fintech landscape 2016 special report by techsauce
 
The Platform Manifesto - 16 principles for digital transformation
The Platform Manifesto - 16 principles for digital transformationThe Platform Manifesto - 16 principles for digital transformation
The Platform Manifesto - 16 principles for digital transformation
 

Similar to GMB API (Google My Business)

07. feeds update
07. feeds update07. feeds update
07. feeds updatemarcwan
 
How to make money in Google
How to make money in GoogleHow to make money in Google
How to make money in Google
sunil earnest
 
API Update Rundown
API Update RundownAPI Update Rundown
API Update Rundown
marcwan
 
How to Integrate Google Adwords API in Laravel App.pdf
How to Integrate Google Adwords API in Laravel App.pdfHow to Integrate Google Adwords API in Laravel App.pdf
How to Integrate Google Adwords API in Laravel App.pdf
Katy Slemon
 
How to Integrate Google Adwords API in Laravel App.pdf
How to Integrate Google Adwords API in Laravel App.pdfHow to Integrate Google Adwords API in Laravel App.pdf
How to Integrate Google Adwords API in Laravel App.pdf
Katy Slemon
 
Reporting tips & tricks
Reporting tips & tricksReporting tips & tricks
Reporting tips & tricks
marcwan
 
AdWords API Feed Services
AdWords API Feed ServicesAdWords API Feed Services
AdWords API Feed Services
marcwan
 
Google AdGrants for NGO
 Google AdGrants for NGO Google AdGrants for NGO
Google AdGrants for NGO
Netpeak
 
Google Analytics on Steroids - New Features and What You Need to Know
Google Analytics on Steroids - New Features and What You Need to KnowGoogle Analytics on Steroids - New Features and What You Need to Know
Google Analytics on Steroids - New Features and What You Need to Knowpointit
 
Local Search - George Aspland 11 09
Local Search - George Aspland 11 09Local Search - George Aspland 11 09
Local Search - George Aspland 11 09
Jonathan Hochman
 
SEO Reporting and Analytics - Tea-Time SEO Series of Daily SEO Talks from SE...
SEO Reporting and Analytics  - Tea-Time SEO Series of Daily SEO Talks from SE...SEO Reporting and Analytics  - Tea-Time SEO Series of Daily SEO Talks from SE...
SEO Reporting and Analytics - Tea-Time SEO Series of Daily SEO Talks from SE...
Authoritas
 
Internet Marketing Muscle Podcast Episode #111
Internet Marketing Muscle Podcast Episode #111Internet Marketing Muscle Podcast Episode #111
Internet Marketing Muscle Podcast Episode #111
Internet Marketing Muscle
 
AdWords API - How to build a platform
AdWords API - How to build a platformAdWords API - How to build a platform
AdWords API - How to build a platformTimoBoz
 
Google Adwords API
Google Adwords APIGoogle Adwords API
Google Adwords API
Mrkt360 Inc.
 
Ultimate guide for GMB
Ultimate guide for GMBUltimate guide for GMB
Ultimate guide for GMB
gokilaspectrum
 
API Updates for v201402
API Updates for v201402API Updates for v201402
API Updates for v201402marcwan
 
Customer Automation Masterclass - Workshop 1: Data Enrichment using Clearbit
Customer Automation Masterclass - Workshop 1: Data Enrichment using ClearbitCustomer Automation Masterclass - Workshop 1: Data Enrichment using Clearbit
Customer Automation Masterclass - Workshop 1: Data Enrichment using Clearbit
JanBogaert8
 
Google auth dispelling the magic
Google auth   dispelling the magicGoogle auth   dispelling the magic
Google auth dispelling the magic
Zaar Hai
 
Reporting tips & tricks
Reporting tips & tricks  Reporting tips & tricks
Reporting tips & tricks
marcwan
 
Google My Business - Location Extensions
Google My Business - Location ExtensionsGoogle My Business - Location Extensions
Google My Business - Location Extensions
TimoBoz
 

Similar to GMB API (Google My Business) (20)

07. feeds update
07. feeds update07. feeds update
07. feeds update
 
How to make money in Google
How to make money in GoogleHow to make money in Google
How to make money in Google
 
API Update Rundown
API Update RundownAPI Update Rundown
API Update Rundown
 
How to Integrate Google Adwords API in Laravel App.pdf
How to Integrate Google Adwords API in Laravel App.pdfHow to Integrate Google Adwords API in Laravel App.pdf
How to Integrate Google Adwords API in Laravel App.pdf
 
How to Integrate Google Adwords API in Laravel App.pdf
How to Integrate Google Adwords API in Laravel App.pdfHow to Integrate Google Adwords API in Laravel App.pdf
How to Integrate Google Adwords API in Laravel App.pdf
 
Reporting tips & tricks
Reporting tips & tricksReporting tips & tricks
Reporting tips & tricks
 
AdWords API Feed Services
AdWords API Feed ServicesAdWords API Feed Services
AdWords API Feed Services
 
Google AdGrants for NGO
 Google AdGrants for NGO Google AdGrants for NGO
Google AdGrants for NGO
 
Google Analytics on Steroids - New Features and What You Need to Know
Google Analytics on Steroids - New Features and What You Need to KnowGoogle Analytics on Steroids - New Features and What You Need to Know
Google Analytics on Steroids - New Features and What You Need to Know
 
Local Search - George Aspland 11 09
Local Search - George Aspland 11 09Local Search - George Aspland 11 09
Local Search - George Aspland 11 09
 
SEO Reporting and Analytics - Tea-Time SEO Series of Daily SEO Talks from SE...
SEO Reporting and Analytics  - Tea-Time SEO Series of Daily SEO Talks from SE...SEO Reporting and Analytics  - Tea-Time SEO Series of Daily SEO Talks from SE...
SEO Reporting and Analytics - Tea-Time SEO Series of Daily SEO Talks from SE...
 
Internet Marketing Muscle Podcast Episode #111
Internet Marketing Muscle Podcast Episode #111Internet Marketing Muscle Podcast Episode #111
Internet Marketing Muscle Podcast Episode #111
 
AdWords API - How to build a platform
AdWords API - How to build a platformAdWords API - How to build a platform
AdWords API - How to build a platform
 
Google Adwords API
Google Adwords APIGoogle Adwords API
Google Adwords API
 
Ultimate guide for GMB
Ultimate guide for GMBUltimate guide for GMB
Ultimate guide for GMB
 
API Updates for v201402
API Updates for v201402API Updates for v201402
API Updates for v201402
 
Customer Automation Masterclass - Workshop 1: Data Enrichment using Clearbit
Customer Automation Masterclass - Workshop 1: Data Enrichment using ClearbitCustomer Automation Masterclass - Workshop 1: Data Enrichment using Clearbit
Customer Automation Masterclass - Workshop 1: Data Enrichment using Clearbit
 
Google auth dispelling the magic
Google auth   dispelling the magicGoogle auth   dispelling the magic
Google auth dispelling the magic
 
Reporting tips & tricks
Reporting tips & tricks  Reporting tips & tricks
Reporting tips & tricks
 
Google My Business - Location Extensions
Google My Business - Location ExtensionsGoogle My Business - Location Extensions
Google My Business - Location Extensions
 

More from supergigas

How to build a platform
How to build a platformHow to build a platform
How to build a platform
supergigas
 
Upgraded URLs
Upgraded URLsUpgraded URLs
Upgraded URLs
supergigas
 
The AdWords api and mobile
The AdWords api and mobileThe AdWords api and mobile
The AdWords api and mobile
supergigas
 
Shopping Campaigns
Shopping CampaignsShopping Campaigns
Shopping Campaigns
supergigas
 
MCC Scripts update
MCC Scripts updateMCC Scripts update
MCC Scripts update
supergigas
 
Rate limits and Performance
Rate limits and PerformanceRate limits and Performance
Rate limits and Performance
supergigas
 
Extension Setting Services
Extension Setting ServicesExtension Setting Services
Extension Setting Services
supergigas
 
Effective Reporting
Effective ReportingEffective Reporting
Effective Reporting
supergigas
 
Display Network criteria bidding
Display Network criteria biddingDisplay Network criteria bidding
Display Network criteria bidding
supergigas
 
Dev Token tips
Dev Token tipsDev Token tips
Dev Token tips
supergigas
 
Ad Customizers
Ad CustomizersAd Customizers
Ad Customizers
supergigas
 

More from supergigas (11)

How to build a platform
How to build a platformHow to build a platform
How to build a platform
 
Upgraded URLs
Upgraded URLsUpgraded URLs
Upgraded URLs
 
The AdWords api and mobile
The AdWords api and mobileThe AdWords api and mobile
The AdWords api and mobile
 
Shopping Campaigns
Shopping CampaignsShopping Campaigns
Shopping Campaigns
 
MCC Scripts update
MCC Scripts updateMCC Scripts update
MCC Scripts update
 
Rate limits and Performance
Rate limits and PerformanceRate limits and Performance
Rate limits and Performance
 
Extension Setting Services
Extension Setting ServicesExtension Setting Services
Extension Setting Services
 
Effective Reporting
Effective ReportingEffective Reporting
Effective Reporting
 
Display Network criteria bidding
Display Network criteria biddingDisplay Network criteria bidding
Display Network criteria bidding
 
Dev Token tips
Dev Token tipsDev Token tips
Dev Token tips
 
Ad Customizers
Ad CustomizersAd Customizers
Ad Customizers
 

Recently uploaded

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 

Recently uploaded (20)

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 

GMB API (Google My Business)

  • 1. “Google My Business” API Managing your locations at scale
  • 2. Agenda ● Introduction ● Google My Business (GMB) ● The GMB API ● GMB locations in AdWords
  • 4. Introduction Why talk about GMB during AdWords workshops?
  • 5. Why Talk About GMB? Your locations You I want locations extensions! AdWords API Maps API I want my address / my business showing up in Maps! I want my address showing up in Search! Search API I want a Google+ presence for my business! G+ API
  • 6. Introduction / cont.Client changed address
  • 7. Location Management in GMBL ● Locations exist once in reality, they should also exist only once in our system ● Central repository: GMB Locations
  • 8. Consequences for Developers What does this mean for you? ● Use GMB (API) for creating locations ● Migrate locations from AdWords (feeds / manual location extensions) to GMB
  • 10. Google My Business Manage business presence across Google* ● Search ● Maps ● Google+ ● AdWords (location extensions) * Not available in some countries
  • 11. GMB Locations How to create business locations? ● Manual Creation ● Bulk Upload ● New: GMB API
  • 12. GMB Locations / cont. www.google.com/local/manage
  • 13. Location Verification Locations have to be verified for Search, Maps, Google+ ● Postcard ● Phone (limited) ● Instant verification (Webmaster Tools) ● Bulk verification (chains) https://support.google.com/business/answer/2911778
  • 14. Location Verification / cont. Manual Creation Bulk Upload GMB API No verification necessary for AdWords! GMB Locations (unverified) GMB Locations (verified) Verification (Postcard / Phone / Instant / Bulk)
  • 16. Goals Enable Ads location extensions to source location information from Google My Business instead of a feed 2014 - Upgraded Location Extensions Enable developers to programmatically create and manage business location information on Google 2015 - GMB API Move all locations to Google My Business 2016 - Sunset of Manual LEs in AdWords
  • 17. API Capabilities ● RESTful API, resources as JSON ● Client Libraries for Java, C#, PHP ● Create, Read, Update and Delete locations* ○ Name, Address, Phone ○ Categories, Hours, Website URL ○ Service area ○ Store code, Labels * Delete only for un-verified locations
  • 18. Get Access ● Fill out form @ goo.gl/o87cwB (condition: currently more than 50 manual location extensions) ● Once approved, check out developers.google.com/my-business
  • 19. Get Started ● Create a Google My Business account www.google.com/local/manage
  • 20. Get Started / cont. ● Create a project on Developers Console console.developers.google.com ○ APIs & Auth → Enable GMB API
  • 21. Get Started / cont. ● Add new OAuth 2.0 client ID
  • 22. Get Started / cont. ● Submit project ID (form link in GMB API welcome email)
  • 24. Testing It Out developers.google.com/oauthplayground ● Dev Console: Web Application, Authorize playground redirect URL ● Settings → Use own credentials → Enter Client ID ● Scope: https://www.googleapis.com/auth/plus.business.manage ● Request URI: https://mybusiness.googleapis.com/v1/accounts
  • 25. Testing It Out - Set Credentials ● Settings → Use own credentials → Enter Client ID
  • 26. Testing It Out - Authorize APIs ● Scope: https://www.googleapis.com/auth/plus.business.manage
  • 27. Testing It Out - Retrieve accounts ● Request URI: https://mybusiness.googleapis.com/v1/accounts
  • 28. Testing It Out - Retrieve locations ● Request URI: https://mybusiness.googleapis.com/v1/accounts/{id} /locations
  • 30. 1. Initialize GMB // Initialize GMB. Mybusiness gmb = new Mybusiness.Builder(httpTransport, jsonFactory, credential) .setApplicationName(APPLICATION_NAME) .build(); // Get list of GMB accounts. Mybusiness.Accounts.List listAccounts = gmb.accounts().list(); ListAccountsResponse response = listAccounts.execute(); List<Account> accounts = response.getAccounts(); // Select account to work with. Account account = selectAccount(accounts); Your implementation
  • 31. 2. Create Location // Create the location. Location location = new Location(); // Set location properties. location.setLocationName("My Company"); location.setWebsiteUrl("https://www.example.com"); ...
  • 32. 2. Create Location / cont. // Create an address. Address address = new Address(); // Set address properties. address.setAddressLines(Collections.singletonList( "1600 Amphitheatre Pkwy")); address.setPostalCode("94043"); address.setLocality("Mountain View"); ... location.setAddress(address);
  • 33. 2. Create Location / cont. // Create business hours. BusinessHours businessHours = new BusinessHours(); // Set timings. TimePeriod period = new TimePeriod(); period.setOpenDay("Monday"); period.setOpenTime("9:00"); period.setCloseDay("Monday"); period.setCloseTime("17:00"); businessHours.setPeriods(Collections.singletonList(period)); location.setBusinessHours(businessHours);
  • 34. 3. Apply Labels ● Labels are optional ○ Can be used for organizing locations ○ Can be used for filtering in AdWords ○ Recommendation: Use AdWords CIDs (see later) location.setLabels(Collections.singletonList(CID));
  • 35. 4. Send Creation Request CreateLocationRequest createLocationRequest = new CreateLocationRequest(); createLocationRequest.setLocation(location); createLocationRequest.setLanguageCode("en-AU"); Mybusiness.Accounts.Locations.Create createLocation = gmb.accounts() .locations() .create(account.getName(),createLocationRequest); Location createdLocation = createLocation.execute();
  • 36. Summary Summary 1. Initialize GMB Mybusiness gmb = ...; 2. Create location, address, hours Location location = new Location(); Address address = new Address(); BusinessHours hours = new BusinessHours(); 3. Apply Labels location.setLabels(Arrays.asList(CID)); 4. Send Creation Request CreateLocationRequest createLocationRequest = ...
  • 38. GMB account Previously... GMB locations AdWords account Campaign B Mapped locations (campaign) CampaignFeed / Matching Function Campaign A Mapped locations (customer) CustomerFeed / Matching Function AdWords locations GMB UI AdWords API ( )
  • 39. GMB account Now: One Repository GMB locations AdWords account Campaign B Mapped locations (campaign) CampaignFeed / Matching Function Campaign A Mapped locations (customer) CustomerFeed / Matching Function Available locations Feed / setLabelFilters(...) GMB API
  • 40. CampaignFeed campaignFeed = new CampaignFeed(); campaignFeed.setMatchingFunction(...); CustomerFeed customerFeed = new CustomerFeed(); customerFeed.setMatchingFunction(...); Feed gmbFeed = new Feed(); gmbFeed.setSystemFeedGenerationData(...); Let’s Talk Code Main Steps 1. Create a new feed linked to your GMB account 2. Associate the feed to the customer 3. Associate the feed to specific ad groups / campaigns “Link” level filter IDENTITY(true) Enables location extensions Campaign level filter
  • 41. Best Practice for Resellers ● If ... ○ … your client already has a GMB account ○ … you want to work with verified locations ⇒ Ask your client to add you as a GMB manager ● Preserves client’s location ownership ● Locations access through manager account ● In PlacesLocationFeedData, use your credentials but specify client GMB ID when syncing to AdWords
  • 42. Best Practice for Resellers / cont. ● If you only need GMB for AdWords location extensions ⇒ Use GMB repository account for all locations ○ Create MCC-level GMB account (=repository) ○ Label locations with CIDs ○ Filter locations / feeds based on label in AdWords
  • 43. … In Code GMB API location.setLabels(Arrays.asList(CID)); AdWords API fd = new PlacesLocationFeedData(); fd.setLabelFilters(new String[]{CID}); Account: 1 Account: 2 Account: 3 GMB account 1 1 2 2 3
  • 44. Location Extension Migration Oct 2015 ● GMB API available to AdWords API users (>50 locations) ● Manual location extensions deprecated ● March 31, 2016 ● Creation of manual location extension sunsets ● GMB API v2 ● General availability Q2 2016 ● Auto-migration of any locations left in AdWords https://developers.google.com/adwords/api/docs/sunset-dates
  • 45. Resources GMB API https://developers.google.com/my-business Signup https://goo.gl/o87cwB GMBL UI https://www.google.com/local/manage Guide https://goo.gl/kadl59