Program Features Reference
Documentation Disclaimer
This documentation is not exhaustive and does not guarantee system behavior. Integrators are responsible for testing against actual API responses. See Documentation Disclaimer for full details.
Program Features Reference
Program features allow fine-grained control over how a CPC campaign targets, tracks, and presents ads. Features are configured separately from program creation via the Program Feature API.
Table of Contents
- Overview
- When to Set Features
- Available Features
- Strict Category Targeting (SCT)
- Custom Location Targeting (CLT)
- Custom Radius Targeting
- Ad Scheduling
- Ad Goal
- Link Tracking
- Call Tracking
- Important Constraints
Overview
Features are set via a dedicated endpoint after a program is successfully created:
POST https://partner-api.yelp.com/program/{program_id}/features/v1
Full documentation for request/response format is in the Program Feature API reference.
When to Set Features
Features can only be set after the program reaches COMPLETED status — you need a valid program_id first. Poll GET /v1/reseller/status/{job_id} until the creation job completes, then apply features.
Features are never inherited or carried over automatically. If a budget change results in a new program being created, all features reset and must be re-applied explicitly on the new
program_id. See Campaign Management Behavior & Nuances for details.
Available Features
| Feature Identifier | Description |
|---|---|
STRICT_CATEGORY_TARGETING | Restricts ad delivery to explicitly targeted categories only |
CUSTOM_LOCATION_TARGETING | Targets specific geographic locations instead of default radius |
CUSTOM_RADIUS_TARGETING | Sets a custom radius around the business location |
AD_SCHEDULING | Limits ad delivery to specific hours/days |
AD_GOAL | Sets the consumer CTA (calls, website clicks, or Yelp-optimized) |
LINK_TRACKING | Appends UTM/tracking parameters to ad traffic URLs |
CALL_TRACKING | Assigns a tracked phone number at the program level |
CUSTOM_AD_TEXT | Sets custom ad copy (where supported) |
CUSTOM_AD_PHOTO | Sets a custom ad photo (where supported) |
NEGATIVE_KEYWORD_TARGETING | Excludes specific keywords from triggering the ad |
Strict Category Targeting (SCT)
By default, Yelp expands campaigns into adjacent and implied categories. For example, a "catering" campaign may serve on "weddings" or "parties" pages. SCT disables this expansion and restricts delivery to only the explicitly targeted categories.
Limitations:
- SCT only enforces strict targeting in search and business-details ad placements
- RaX (Retargeting) and RAQ placements ignore SCT entirely — they always use loose category expansion regardless of this setting
- SCT is configured per program, not per business
Custom Location Targeting (CLT)
Overrides the default radius-based geotargeting with a specific list of locations.
Rules:
- Accepts up to 25 locations within the US
- Supported types: zip codes, cities, neighborhoods, counties, state names
- CLT replaces default targeting — it does not supplement it
- CLT and Custom Radius Targeting cannot be active simultaneously — setting one removes the other
- Postal codes are the most reliable input; city and neighborhood names can be ambiguous and are normalized by Yelp — always log the response to confirm actual targeting applied
Custom Radius Targeting
Sets a custom delivery radius around the business's physical location instead of using Yelp's default category-based radius.
Cannot be active at the same time as Custom Location Targeting.
Ad Scheduling
Restricts ad delivery to specific days and hours. Use the business hours API to retrieve current hours for a location before configuring scheduling.
Ad Goal
Controls the consumer-facing call to action on the ad unit:
| Value | Consumer CTA Shown |
|---|---|
GET_CALLS | "Call business" |
WEBSITE_CLICKS | "Visit website" |
OPTIMIZE | Yelp-optimized mix of both |
Setting AD_GOAL to WEBSITE_CLICKS routes consumers directly to the business's external website from the search ad, bypassing the Yelp business page.
Link Tracking
Appends query parameters to URLs for traffic attributed to the CPC program. This applies only to paid ad traffic — organic traffic uses the URL set in the Data Ingestion API.
Tracking can be applied to:
websiteURLmenu_url- CTA URL
Example payload:
{"LINK_TRACKING": {"website": "source=yelpweb"}}
Results in ?source=yelpweb appended to the business's website URL for ad-attributed clicks.
Call Tracking
Assigns a tracked phone number for the CPC program. Available at two levels:
| Level | Scope | Set Via |
|---|---|---|
| Location-level | All traffic (paid + organic) | metered_phone_number in Data Ingestion API |
| Program-level | CPC ad traffic only | CALL_TRACKING in Program Feature API |
Important Constraints
- Features are not inherited when a new program is created (including budget-change-triggered recreations)
- Features apply to a single
program_id— they are not shared across programs for the same business - CLT and Custom Radius Targeting are mutually exclusive — setting one deletes the other
Updated 2 days ago
