Creating Local Business Ads with the AdWords API

Friday, July 06, 2007


Posted by Brian Kennish, Support Engineer, Ad* APIs

One of the shiny, new features exposed in v8 of the AdWords API is local business ads. Local business ads aren't your typical ad fare, so we thought we'd properly introduce you to them and how they work with the API.

What Are They?

Local business ads let you reach users looking for products and services locally, like pizza in London. They appear as enhanced text ads and map markers on Google Maps. E.g.:

A local business ad for Domino's Pizza runs on Google Maps UK.
They also appear as similar text ads on Google search results pages and those across the Google search network. You can advertise businesses with locations in the US, Canada, France, Germany, Italy, Japan, the Netherlands, Spain, and the UK. As usual, you only pay for clickthroughs. The AdWords Help Center has more about local business ads themselves.

How Do They Work with the API?

Creating local business ads requires an extra step compared to creating other types of AdWords ads. That's because every local business ad needs to be tied to a Google Maps business listing. With the API, you:
  1. Fetch the keys of the businesses you want to promote from Maps.
  2. Marshal the keys with your ad content.
Fetching Business Keys from Google Maps

Say you're booking the local business ad shown above. First, if you've registered the business in the Local Business Center (the place to go to update the Google Maps index), you can call getMyBusinesses. If not, you call findBusinesses with some descriptive query terms. The latter invocation in SOAP might read:
<findBusinesses xmlns="https://adwords.google.com/api/adwords/v10">
<name>Domino's Pizza</name>
<address>89 Charlwood St, London, SW1V 4PB</address>
<countryCode>GB</countryCode>
</findBusinesses>
Either method should return an array of matching Business objects:
<findBusinessesResponse xmlns="https://adwords.google.com/api/adwords/v10">
<findBusinessesReturn>
<key>
vbLhTOxEPjI4LNAw2GLNb9YZZZs=Business!d@A!d@Domino's Pizza!d@020 7834
2211!d@89 Charlwood St!d@London!d@!n@!d@SW1V
4PB!d@GB!d@-141199!d@51488094!d@1183705200000!d@
</key>
<name>Domino's Pizza</name>
<phoneNumber>020 7834 2211</phoneNumber>
<address>89 Charlwood St</address>
<city>London</city>
<region xsi:nil="true"/>
<postalCode>SW1V 4PB</postalCode>
<countryCode>GB</countryCode>
<longitude>-141199</longitude>
<latitude>51488094</latitude>
<timestamp>1183705200000</timestamp>
</findBusinessesReturn>
<findBusinessesReturn>Business</findBusinessesReturn>
<findBusinessesReturn>Business</findBusinessesReturn>
<findBusinessesReturn>Business</findBusinessesReturn>
<findBusinessesReturn>Business</findBusinessesReturn>
</findBusinessesResponse>
You grab the key of the relevant one.

Marshalling Ad Content

Next, you stuff the key (AKA businessKey) and the ad particulars into a LocalBusinessAd and hand it off to addAds:
<addAds xmlns="https://adwords.google.com/api/adwords/v10">
<ad xsi:type="LocalBusinessAd">
<adGroupId>xsd:int</adGroupId>
<businessKey>
vbLhTOxEPjI4LNAw2GLNb9YZZZs=Business!d@A!d@Domino's Pizza!d@020 7834
2211!d@89 Charlwood St!d@London!d@!n@!d@SW1V
4PB!d@GB!d@-141199!d@51488094!d@1183705200000!d@
</businessKey>
<description1>Choose from our delicious range now</description1>
<description2>Pre-order or delivered to your door</description2>
<destinationUrl>http://www.dominos.co.uk/</destinationUrl>
<displayUrl>www.dominos.co.uk</displayUrl>
<customIcon>
<data>xsd:base64Binary</data>
</customIcon>
<businessImage>
<data>xsd:base64Binary</data>
</businessImage>
</ad>
</addAds>
Yay! A successful response means your local business ad is ready to be served.

Thanks for taking the time to get to know a little about local business ads with us. Cheers from the Googleplex!