PaidSyncDocumentation

Google Ads API Required Minimum Functionality in PaidSync

For the Google Ads API Compliance team. Each row is one Required Minimum Functionality item, with where it lives in PaidSync, the exact click path or sentence a reviewer uses to reach it, the Google Ads API object it uses and the PaidSync tool behind it. Every write in PaidSync lands on an approval card before anything is applied; numbers on the card can be edited and are re-validated against Google's own ranges.

Tool category: full-serviceGoogle Ads API: v23Compliance case: 0-5858000040810Generated: 2026-09-02Items: 45

Which of Google's feature lists apply to PaidSync

Google publishes one feature list per tool category and makes the campaign-type lists conditional: "If your tool implements Smart Campaigns at all, you must implement at minimum this set of features. If your tool does not implement Smart Campaigns, then these features are not required." PaidSync creates Search, Display, Video, Shopping, Performance Max and Demand Gen campaigns, so:

Creation

ItemFunctionalityStatusWhere in PaidSyncAPI objectTool
C.10 Create campaign
Creates the campaign itself, Search or Performance Max. Locations (C.20), languages (C.30), the ad group (C.190) and keywords (C.260) are their own entries in the same menu.
Implemented
New chat > + > Actions > Create a campaign (Search or Performance Max)
Then answer, in order: Search campaign: Name, Daily budget, Bidding strategy (optional), Objective (optional), Target CPA (optional), Target ROAS (optional), Include google search (optional), Include search partners (optional), Include display network (optional), Geo target type (optional); Performance Max campaign: Name, Daily budget, Final url, Target ROAS (optional), Target CPA (optional), Brand guidelines enabled (optional)
campaign create_search_campaign
C.20 Enable geo targeting Implemented
New chat > + > Actions > Set geographic targeting
Then answer, in order: Set locations: Campaign ID, Target location ids, Exclude location ids (optional)
Location Targeting set_geo_targeting
C.30 Enable language targeting Implemented
New chat > + > Actions > Set language targeting
Then answer, in order: Set languages: Campaign ID, Language ids
campaign_criterion.language language_constant set_language_targeting
C.65 Create website / call conversion and generate code snippet Implemented
Brand Setup > Conversions
Then answer, in order: Conversion action: Name, Type, Category, Default value (optional), Always use default value (optional), Counting type (optional), Attribution model (optional)
Conversion Tracking create_conversion_action get_conversion_tag_snippet
C.75 Callout extensions Implemented
New chat > + > Actions > Add account callout extensions
Then answer, in order: Account callouts: Callouts
Callout feed placeholder Extension Setting Services Feed Services add_account_callout_extensions list_account_extensions
C.96 Set bidding option: Target CPA (Portfolio and Standard) Implemented
New chat > + > Actions > Set Target CPA (standard or portfolio)
Then answer, in order: Standard (this campaign only): Campaign ID, Target CPA; Portfolio: create a shared Target CPA strategy: Name, Target CPA; Portfolio: create a shared Target impression share strategy: Name, Target impression share location, Target impression share fraction, Target impression share CPC bid ceiling micros (optional); Portfolio: put this campaign on a shared strategy: Campaign ID, Bidding strategy ID
campaign.target_cpa (Standard) bidding_strategy.target_cpa (Portfolio) create_search_campaign create_bidding_strategy
C.97 Set bidding option: Target ROAS (Portfolio and Standard) Implemented
New chat > + > Actions > Set Target ROAS (standard or portfolio)
Then answer, in order: Standard (this campaign only): Campaign ID, Target ROAS; Portfolio: create a shared Target ROAS strategy: Name, Target ROAS; Portfolio: put this campaign on a shared strategy: Campaign ID, Bidding strategy ID
campaign.target_roas (Standard) bidding_strategy.target_roas (Portfolio) create_search_campaign create_bidding_strategy
C.98 Set bidding option: Maximize Conversions (Standard) Implemented
New chat > + > Actions > Set Maximize Conversions
Then answer, in order: Maximize Conversions: Campaign ID
campaign.maximize_conversions (Standard) create_search_campaign
C.120 Set budget Implemented
New chat > + > Actions > Set a campaign budget
Then answer, in order: Daily budget: Campaign ID, Daily budget
campaign_budget create_search_campaign update_campaign_budget
C.190 Create ad group Implemented
New chat > + > Actions > Create an ad group
Then answer, in order: Ad group: Campaign ID, Name, CPC bid, Ad group type (optional), Status (optional)
ad_group create_ad_group
C.260 Add keyword Implemented
New chat > + > Actions > Add keywords with a match type
Then answer, in order: Keywords with match type: Ad group ID, Keywords
ad_group_criterion.keyword add_keywords
C.270 Add campaign negative keywords Implemented
New chat > + > Actions > Add campaign negative keywords
Then answer, in order: Campaign level: Campaign ID, Keywords; Ad group level: Ad group ID, Keywords
campaign_criterion.negative add_negative_keywords
C.300 Set keyword match type
Google's C.300 is the match type set when a keyword is added; the same form covers C.260. Changing an existing keyword's match type is a remove and re-add, which the same entry performs.
Implemented
New chat > + > Actions > Add keywords with a match type (broad, phrase, exact)
Then answer, in order: Keywords with match type: Ad group ID, Keywords
ad_group_criterion.keyword .match_type add_keywords
C.505
shopping-only
Set merchant identifier
One Shopping form covers this: create_shopping_campaign builds the campaign, its ad group, the product ad and the root product group in one Google mutate, and enables local inventory when ticked. Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Create a Shopping campaign (set the Merchant Center ID)
Then answer, in order: Shopping campaign: Name, Daily budget, Merchant ID, Feed label (optional), Campaign priority (optional), Enable local (optional), Ad group name (optional), CPC bid (optional)
create_shopping_campaign
C.506
shopping-only
Set sales country
One Shopping form covers this: create_shopping_campaign builds the campaign, its ad group, the product ad and the root product group in one Google mutate, and enables local inventory when ticked. Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Create a Shopping campaign (set the sales country / feed label)
Then answer, in order: Shopping campaign: Name, Daily budget, Merchant ID, Feed label (optional), Campaign priority (optional), Enable local (optional), Ad group name (optional), CPC bid (optional)
create_shopping_campaign
C.510
shopping-only
Set inventory filter
Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Set a Shopping inventory filter
Then answer, in order: Inventory filter: Campaign ID, Dimension, Values
set_shopping_inventory_filter
C.520
shopping-only
Create product ad
One Shopping form covers this: create_shopping_campaign builds the campaign, its ad group, the product ad and the root product group in one Google mutate, and enables local inventory when ticked. Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Create the Shopping product ad (with its campaign)
Then answer, in order: Shopping campaign with product ad: Name, Daily budget, Merchant ID, Feed label (optional), Campaign priority (optional), Enable local (optional), Ad group name (optional), CPC bid (optional)
create_shopping_campaign
C.525
shopping-only
Add first (root) product partition
One Shopping form covers this: create_shopping_campaign builds the campaign, its ad group, the product ad and the root product group in one Google mutate, and enables local inventory when ticked. Subdividing it afterwards is M.160. Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Create the root product group (with its campaign)
Then answer, in order: Shopping campaign with root product group: Name, Daily budget, Merchant ID, Feed label (optional), Campaign priority (optional), Enable local (optional), Ad group name (optional), CPC bid (optional)
create_shopping_campaign
C.530
shopping-only
Create local inventory ads
One Shopping form covers this: create_shopping_campaign builds the campaign, its ad group, the product ad and the root product group in one Google mutate, and enables local inventory when ticked. Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Create a Shopping campaign with local inventory ads
Then answer, in order: Shopping campaign with local inventory: Name, Daily budget, Merchant ID, Feed label (optional), Campaign priority (optional), Enable local (optional), Ad group name (optional), CPC bid (optional)
create_shopping_campaign

Management

ItemFunctionalityStatusWhere in PaidSyncAPI objectTool
M.10 Edit campaign settings Implemented
New chat > + > Actions > Edit campaign settings
Then answer, in order: Settings (name, status, networks, dates): Campaign ID, Name (optional), Status (optional), Include google search (optional), Explicit partner networks (optional), Include search partners (optional), Include display network (optional), Geo target type (optional), Start date (optional), End date (optional); Budget: Campaign ID, Daily budget; Locations: Campaign ID, Target location ids, Exclude location ids (optional); Languages: Campaign ID, Language ids; Bidding (objective, bid ceiling, impression share): Campaign ID, Bidding strategy (optional), Objective (optional), CPC bid ceiling (optional), Target impression share location (optional), Target impression share percent (optional), Detach portfolio strategy (optional)
campaign.*setting update_campaign
M.96 Edit bidding option: Target CPA (Portfolio and Standard) Implemented
New chat > + > Actions > Edit Target CPA
Then answer, in order: Standard (this campaign only): Campaign ID, Target CPA; Portfolio strategy: Strategy ID, Name (optional), Target CPA (optional)
campaign.target_cpa (Standard) bidding_strategy.target_cpa (Portfolio) update_campaign update_bidding_strategy
M.97 Edit bidding option: Target ROAS (Portfolio and Standard) Implemented
New chat > + > Actions > Edit Target ROAS
Then answer, in order: Standard (this campaign only): Campaign ID, Target ROAS; Portfolio strategy: Strategy ID, Name (optional), Target ROAS (optional)
campaign.target_roas (Standard) bidding_strategy.target_roas (Portfolio) update_campaign update_bidding_strategy
M.98 Edit bidding option: Maximize Conversions (Standard) Implemented
New chat > + > Actions > Edit Maximize Conversions
Then answer, in order: Maximize Conversions: Campaign ID
campaign.maximize_conversions (Standard) update_campaign
M.110 Pause / enable / remove campaign Implemented
New chat > + > Actions > Pause, enable or remove a campaign
Then answer, in order: Pause: Campaign ID; Enable: Campaign ID; Remove (permanent): Campaign ID
campaign.status pause_campaign enable_campaign remove_campaign
M.130 Pause / enable / remove ad Implemented
New chat > + > Actions > Pause, enable or remove an ad
Then answer, in order: Pause: Ad ID, Ad group ID (optional); Enable: Ad ID, Ad group ID (optional); Remove (permanent): Ad ID, Ad group ID (optional)
ad_group_ad.status pause_ad enable_ad remove_ad
M.140 Pause / enable / remove keyword Implemented
New chat > + > Actions > Pause, enable or remove a keyword
Then answer, in order: Pause: Keyword resource name; Enable: Keyword resource name; Remove (permanent): Keyword resource name
ad_group_criterion.status pause_keyword enable_keyword remove_keyword
M.150
shopping-only
Edit inventory filter
Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Change a Shopping inventory filter
Then answer, in order: Inventory filter: Campaign ID, Dimension, Values
set_shopping_inventory_filter
M.160
shopping-only
Subdivide (add product partition)
Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Subdivide a product group
Then answer, in order: Subdivide: Ad group ID, Parent resource name, Dimension, Values, CPC bid (optional)
subdivide_product_partition
M.170
shopping-only
Delete product partition
Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Remove a product group
Then answer, in order: Remove (permanent): Resource name
remove_product_partition
M.190
shopping-only
Exclude product partition
Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
New chat > + > Actions > Exclude a product group
Then answer, in order: Exclude: Resource name, Exclude (optional)
exclude_product_partition

Reporting

ItemFunctionalityStatusWhere in PaidSyncAPI objectTool
R.10 Customer Implemented
Reports > Google Ads > Account
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions get_performance_summary
R.20 Campaign Implemented
Reports > Google Ads > Campaign
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions get_campaign_performance pause_campaign enable_campaign remove_campaign
R.40 Ad Group Ad Implemented
Reports > Google Ads > Ad
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions get_ad_performance pause_ad enable_ad remove_ad
R.50 Keyword View Implemented
Reports > Google Ads > Keyword
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions ad_group_criterion .position_estimates .first_page_cpc_micros ad_group_criterion .position_estimates .first_position_cpc_micros get_keyword_performance pause_keyword enable_keyword remove_keyword
R.70 Search Term View Implemented
Reports > Google Ads > Search term
search_term_view.search_term segments.search_term_match_type metrics.clicks metrics.cost_micros metrics.impressions get_search_terms_report
R.100 Dynamic Search Ads Search Term View
Dynamic Search Ads are not implemented, proven from source by qa-rmf-coverage. Stated in the reply, never claimed.
Not applicable dynamic_search_ads_search_term_view.search_term metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions
R.110
shopping-only
Shopping performance
Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
Reports > Google Ads > Shopping
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversion_value get_shopping_performance
R.120
shopping-only
Product partition
Google requires a Merchant Center account linked to the Google Ads account before it will accept a Shopping campaign; without the link Google refuses the create on merchant_id.
Implemented
Reports > Google Ads > Product groups
Then answer, in order: Product group tree: Ad group ID, Date range (optional)
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversion_value list_product_partitions
R.130 Bidding Strategy Implemented
Reports > Google Ads > Bidding strategy
bidding_strategy.type metrics.clicks metrics.cost_micros metrics.cost_per_conversion metrics.impressions metrics.average_cpc metrics.conversions list_bidding_strategies

Cross-cutting obligations

ItemFunctionalityStatusWhere in PaidSyncAPI objectTool
X.1
cross-cutting
Recommendations must be presented as "Google Ads Recommendations" Implemented
Reports > Google Ads > Google Ads Recommendations
list_recommendations
X.2
cross-cutting
Users can view AND apply all surfaced recommendations Implemented
Reports > Google Ads > Google Ads Recommendations
Then answer, in order: Apply: Recommendation ID
list_recommendations apply_recommendation
X.3
cross-cutting
Bid adjustments offered as bid adjustments, never as an exclusion mechanism, across the full range Implemented
New chat > + > Actions > Set a bid adjustment
Then answer, in order: By device: Campaign ID, Adjustments; By location: Campaign ID, Location ID, Bid modifier
set_device_bid_adjustment set_location_bid_adjustment
X.4
cross-cutting
Users can review AND EDIT a change before it is set
Met by the product itself, not by a Google Ads API call.
Implemented
Approval card, wherever a change is proposed
X.5
cross-cutting
Account disassociation within 3 business days
Met by the product itself, not by a Google Ads API call.
Implemented
Brand Setup > Connections
X.6
cross-cutting
Reporting can be filtered by date range
Met by the product itself, not by a Google Ads API call.
Implemented
Reports > Google Ads > Account

Not yet implemented or not applicable