Local Services campaigns
let you advertise your business on Google and receive leads directly from
potential customers. This guide summarizes the supported operations and
restrictions in the current version of the Google Ads API.
Supported operations
Retrieve Local Services campaigns and budgets
Local Services campaigns and budgets can be retrieved using the
GoogleAdsService.Search
or
GoogleAdsService.SearchStream
method to query for the
campaign
resources where
advertising_channel_type = 'LOCAL_SERVICES'
. Here is an example:
SELECT
campaign.id,
campaign.status,
campaign_budget.id,
campaign_budget.period,
campaign_budget.amount_micros,
campaign_budget.type
FROM campaign
WHERE campaign.advertising_channel_type = 'LOCAL_SERVICES'
Edit Local Services campaigns
You can update the campaign's
status
and the
associated campaign budget's
amount_micros
fields.
Set the bidding strategy of Local Services campaigns
You can set the following bidding strategies as the standard bidding strategy of
Local Services campaigns:
Set an ad schedule as a campaign criterion
You can set an ad schedule for a Local Services campaign as a campaign
criterion.
Create an
AdScheduleInfo
and set it to the
ad_schedule
of the
CampaignCriterion
that is sent to the Google Ads API, using
CampaignCriterionService.MutateCampaignCriteria
.
Set location targeting
To enable location targeting for a Local Services campaign, add a
LocationInfo
and set it to the
location
of the
CampaignCriterion
that is sent to the Google Ads API, using
CampaignCriterionService.MutateCampaignCriteria
.
For more details, see
Location
targeting
.
Target specific service types
To enable targeting for a specific service type, add a
LocalServiceIdInfo
and set it to the
type of
service
.
You should use a service ID that matches your campaign's targeting
location
and
category
.
Unsupported operations
The restrictions listed in the following table can change in future versions of
the Google Ads API.
Unsupported operations
|
Create and remove campaigns
|
The Google Ads API blocks creation of new Local Services campaigns.
|
Operations on sub-entities in a campaign
|
The Google Ads API does not support the creation, modification, removal, or
retrieval of ad groups, ads, or criteria in Local Services campaigns.
|
Local Services resources
Starting in Google Ads API v15, some data from
Local Services Ads
are exposed directly
in the Google Ads API through the following
read-only
report resources:
In order for these resources to return data, there must be a Local Services
campaign in the client account making the request. And since there can only be
one Local Services campaign per client account, these resources don't
specify a campaign. To identify the campaign that these resources are affiliated
with, use the following query:
SELECT campaign.id
FROM campaign
WHERE campaign.advertising_channel_type = 'LOCAL_SERVICES'
Local Services lead
LocalServicesLead
exposes the details of a
lead that are generated when a consumer calls, messages, or books a service from
the advertiser.
Local Services lead data can be retrieved from the
local_services_lead
resource. Here's an
example query:
SELECT
local_services_lead.lead_type,
local_services_lead.category_id,
local_services_lead.service_id,
local_services_lead.contact_details,
local_services_lead.lead_status,
local_services_lead.creation_date_time,
local_services_lead.locale,
local_services_lead.lead_charged,
local_services_lead.credit_details.credit_state,
local_services_lead.credit_details.credit_state_last_update_date_time
FROM local_services_lead
Limitations
- The
contact_details
field is null if
lead_status
equals
WIPED_OUT
.
- Data from leads where the
category_id
is part of a healthcare category are
not available.
Local Services lead conversation
LocalServicesLeadConversation
exposes the details of conversations that have taken place as part of a
LocalServicesLead
. There is a one-to-many relationship with
LocalServicesLead
, where one lead can have many conversations. The resource
name for the related lead can be found in the
lead
field.
Conversation data can be retrieved from the
local_services_lead_conversation
resource. Here's an example query that filters for results that are phone calls:
SELECT
local_services_lead_conversation.id,
local_services_lead_conversation.conversation_channel,
local_services_lead_conversation.participant_type,
local_services_lead_conversation.lead,
local_services_lead_conversation.event_date_time,
local_services_lead_conversation.phone_call_details.call_duration_millis,
local_services_lead_conversation.phone_call_details.call_recording_url,
local_services_lead_conversation.message_details.text,
local_services_lead_conversation.message_details.attachment_urls
FROM local_services_lead_conversation
WHERE local_services_lead_conversation.conversation_channel = 'PHONE_CALL'
Limitations
- To access the call recording URL, you must sign in with an email address that
has at least read-only access to the Google Ads client account that owns the
campaign that the lead is associated with.
Requesting all conversations at once can be a time-consuming request, so
you should filter conversations by lead, for example:
SELECT
local_services_lead_conversation.id,
local_services_lead_conversation.event_date_time,
local_services_lead_conversation.message_details.text
FROM local_services_lead_conversation
WHERE local_services_lead.id =
LEAD_ID
Local Services verification artifact
LocalServicesVerificationArtifact
exposes verification data for advertisers' businesses. Note that these
verifications are at the business level and don't include verifications for
employees. The data includes the following:
- License verifications
- Insurance verifications
- Background check verifications
- Business registration verifications
Any time a verification request is submitted to Local Services Ads, a new
verification artifact instance is created for it in the Google Ads API, and
each verification artifact represents a single verification request. Each
verification artifact might contain some of the following information, depending
on what type of verification request it represents:
- Status of each verification artifact
- Background check URL to be used for background check verification
- Background check adjudication time (if applicable)
- Insurance document URL to view the already-submitted Insurance information
- Insurance rejection reason (if applicable)
- License details (type, number, first, last names)
- License rejection reason (if applicable)
- License document URL to view already submitted license image (if applicable)
- Business registration details (check ID, registration number)
- Business registration rejection reason (if applicable)
- Business registration document URL to view already submitted registration
image (if applicable)
Verification artifact data can be retrieved from the
local_services_verification_artifact
resource. Here's an example query that retrieves data for all the
license-related verification artifacts for a given client account:
SELECT
local_services_verification_artifact.id,
local_services_verification_artifact.creation_date_time,
local_services_verification_artifact.status,
local_services_verification_artifact.artifact_type,
local_services_verification_artifact.license_verification_artifact.license_type,
local_services_verification_artifact.license_verification_artifact.license_number,
local_services_verification_artifact.license_verification_artifact.licensee_first_name,
local_services_verification_artifact.license_verification_artifact.licensee_last_name,
local_services_verification_artifact.license_verification_artifact.rejection_reason
FROM local_services_verification_artifact
WHERE local_services_verification_artifact.artifact_type = 'LICENSE'
Geographic and categorical license and insurance data
To programmatically determine the status of verification requests by geographic
location, specifically,
geo target code
) and
local services category
ID
, you can use a new
field on the
customer
resource, called
LocalServicesSetting
.
This field exposes a high-level summary of the status of license and insurance
verification requests by location and category. Here's an example query that
retrieves all such data:
SELECT
customer.local_services_settings.granular_license_statuses,
customer.local_services_settings.granular_insurance_statuses
FROM customer
Local service employee
LocalServicesEmployee
exposes the data
about local service employees that the advertisers have uploaded their ad
profile into our systems.
Here's an example query that retrieves data for all the
local service employees for a given client account:
SELECT
local_services_employee.status,
local_services_employee.type,
local_services_employee.university_degrees,
local_services_employee.residencies,
local_services_employee.fellowships,
local_services_employee.job_title,
local_services_employee.year_started_practicing,
local_services_employee.languages_spoken,
local_services_employee.first_name,
local_services_employee.middle_name,
local_services_employee.last_name
FROM local_services_employee