Required Minimum Functionality (RMF) refers to the features and other functionality that certain tool developers must offer when using the Google Ads API. As set forth below, RMF rules are grouped into three categories: Creation Functionality, Management Functionality, and Reporting Functionality. Your compliance with these rules depends on how you use the Google Ads API (an "RMF applies" means that RMF applies to you):
Creation Functionality | Management Functionality | Reporting Functionality | |
---|---|---|---|
Full-Service Tool
|
RMF applies | RMF applies | RMF applies |
Reporting Only
|
RMF doesn't apply | RMF doesn't apply | RMF applies |
Internal Use Only
|
RMF doesn't apply | RMF doesn't apply | RMF doesn't apply |
If your tool offers very limited and specialized functionality, and could not be used for creating and managing campaigns, ad groups, and ads, it may not qualify as a full-service tool. In this case, the creation and management RMF would not apply. If you're not sure whether the RMF policy applies to your tool, contact the Google Ads API Compliance team. The Google Ads API Compliance team will decide whether your tool is full-service or not. Your tool may be reevaluated if the functionality changes significantly.
Note that RMF only applies to developer tokens with Standard access.
Requirements for AdWords API Clients
All tools that use the AdWords API must be compliant with RMF requirements as detailed in this document. As these tools migrate their functionalities off of the AdWords API and onto the Google Ads API, they can achieve RMF compliance by using either the AdWords API, Google Ads API or a combination of the two.
Requirements for Shopping-only, App Promotion-only and Hotel-only API Tools
If your tool is only designed to create and manage one of the following campaign types, then you are only required to implement the Google Ads API creation and management features and reports in the RMF that work with that campaign type.
- Standard Shopping campaigns
- Smart Shopping campaigns
- Mobile App Promotion campaign
- Hotel campaigns (available only in the Google Ads API)
For an updated list of these features, contact the Google Ads API Compliance team at https://services.google.com/fb/forms/apicontact/.
Requirements for Reporting-only Google Ads API Clients
In order to be compliant with RMF requirements, a Reporting-only Google Ads API Client must show Reporting Functionality for each of the levels of the Google Ads hierarchy displayed in its reporting interface. A level of the Google Ads hierarchy means one of Account, Campaign, Ad Group, Ad or Keyword. For example, if a Reporting-only Google Ads Client does show Ad Groups, then it must implement all of the "Ad Group"-level Reporting Functionality that is labeled as "Required" below.
A Reporting-only Google Ads API Client may choose not to show specific levels of the Google Ads hierarchy in its reporting interface. For example, if a Reporting-only Google Ads API Client does not show any Ad Group performance data in its interface, then it need not implement any of the "Ad Group"-level Reporting RMF.
The above policy also applies to all other report types, though they are not levels of the Google Ads hierarchy. Should you choose to implement any of these reports, you must show all the required fields for each respective report.
In order to be compliant with RMF requirements, Google Ads API Client must display all the columns marked required in the Object/Field/Guide column for each report, as default. All other Metric columns must be made available, as an option for users of the Google Ads API Client. Google Ads report data should be reasonably prominent and accessible to end users.
Downloadable Reports
If your tool provides a download option, for example a CSV, instead of displaying reporting functionality within the user interface, then the download link must be prominently displayed and intuitively labeled. The downloaded file must contain all of the required reporting fields and be clearly labeled.
Reporting Date Ranges
We recommend that you allow users to filter reporting data by date range. If your tool doesn't support custom date ranges, then it should at least provide the last 30 days of data for each required reporting field.
Requirements for API Clients providing Creation Functionality or Management Functionality
In order to be compliant with RMF requirements, a Full-Service Google Ads API Client must implement all the required creation and management features in the table below and show Reporting Functionality for each of the reports below. Additionally, you must make reasonable effort to ensure that each of the features is easily accessible and functional to end advertisers as measured by the usage of those features.
Requirements for API Clients Providing Planning Services
If a Google Ads API Client provides any functionality related to KeywordPlanIdeaService or KeywordPlanService, it must fully implement the required Creation Functionality, Management Functionality and Reporting Functionality marked "Required" in the table below.
Requirements for API Clients Providing Recommendation Service
All API clients are permitted to use GoogleAdsService and RecommendationService to retrieve recommendations.
The use of RecommendationService.ApplyRecommendation()
and
RecommendationService.DismissRecommendation()
are limited to the following
types of Google Ads API Clients:
- Full-service tools
- Internal-only tools
- Shopping-only, Smart Shopping-only, App Promotion-only, and Hotel-only API tools
- Special purpose tools that offer campaign management functionality*
*: Special purpose tools must receive approval from the Google Ads API Compliance team before using apply and dismiss methods in RecommendationService. You can request access by contacting the Google Ads API Compliance team at https://services.google.com/fb/forms/apicontact/. Note that your application is not guaranteed to be approved.
If a Google Ads API Client offers the functionality to apply or dismiss recommendations using RecommendationService, it must satisfy the following requirements:
- It must fully implement the required Creation Functionality, Management Functionality and Reporting Functionality for their tool category.
- All Google Ads Recommendations shown to end users must be presented as "Google Ads Recommendations" in the tool's UI.
- End users must be able to view and apply all Google Ads Recommendations that are surfaced by the Google Ads API Client.
Requirements for Bid Adjustments
All API Clients providing Creation or Management functionality must satisfy the following requirements related to bid adjustments:
- End users must be allowed to input the entire range of allowable values.
- End users must be able to review and edit the bid adjustments before it is set by the Google Ads API Client.
- Bid adjustments must be represented only as adjustments to bids, and may not be used to enable or approximate other features, such as targeting or exclusion.
One-Time Extension for Major Updates
In recognition of the fact that API tools may periodically perform extensive technology upgrades, tools that have met all RMF deadlines for at least 2 consecutive years can apply for a 6 month RMF extension in order to implement such upgrades to their platform. If the extension is granted, during the extension period these tools will not be reviewed for compliance with RMF requirements. At the end of the extension period, the tool must be in full compliance with all RMF requirements that were due on or before the last date of the extension period. All RMF requirements due after the end of the extension will remain due on the date specified in the table below.
An API tool may be granted at most one extension every four years (the second extension must start at least 4 years after the first one ends).
If you would like to apply for an extension for your tool, request an
application form by contacting us at
https://services.google.com/fb/forms/apicontact/
. Your application must be
signed and submitted by an executive (CEO, CTO or Senior VP) of your company.
Note that your application is not guaranteed to be approved.
Feature Implementation
Unless otherwise specified below, a feature is implemented if and only if all available sub-features and parameters are also implemented. The API Reference documents which parameters and sub-features are available. For example, the feature "Opt in/out of networks" implies support for opting in/out of Google Search, search partners, and the display network. Furthermore, if you implement in your Google Ads API Client a feature similar to any feature not required by Google, you must then also implement the similar Google feature in your Google Ads API Client. For example, if you implement your own version of "Keyword Ideas" in your Google Ads API Client, then you must also implement Google's "Keyword Ideas" functionality in your Google Ads API Client.
To maintain RMF compliance, any new required features must be added by the due date (shown next to each feature as Due: YYYY-MM-DD). Any RMFs with no specified due date are past due. Additionally, we require that you send screenshots and/or mockups of material proposed changes to the Google Ads API Client, at least two weeks prior to these changes taking effect, using the Tool Change form. For the sake of clarity, after that two week period has elapsed, you do not need to wait for a response from Google before those material changes take effect.
RMF Compliance Across Ads APIs
API tools must maintain RMF compliance at all times as detailed in this guide. An API tool can achieve compliance using the AdWords API, Google Ads API or a combination of the two.
Feature List
Item Number | Functionality | Object/Field/Guide | Requirement |
---|---|---|---|
Creation Functionality |
|||
C.10 | Create campaign | campaign |
Required |
C.14 | Set mobile platform bid adjustment | campaign_criterion.bid_modifier |
Required |
C.15 | Set tablet and desktop platform bid adjustments | campaign_criterion.bid_modifier |
Required. This needs to be supported at both campaign and ad group levels. |
C.20 | Enable geo targeting | Location Targeting | Required |
C.21 | Enable distance targeting | Location
Targetinglocation_group |
Required. This needs to support targeting a radius around a location and a location extension. |
C.25 | Set geo bid adjustment | campaign_criterion.bid_modifier |
Required |
C.30 | Enable language targeting | campaign_criterion.language |
Required |
C.41 | Set Expanded Dynamic Search Ads | ad_group_ad.ad |
Required. |
C.42 | Set campaign DSA settings | campaign.dynamic_search_ad_setting |
Required. |
C.50 | Opt in/out of networks | campaign.network_settings
|
Required |
C.65 | Create website / call conversion and generate code snippet | Conversion Tracking | Required. This needs to support generating a global site tag and an event snippet. |
C.70 | Location extensions | Location feed placeholder Feed Services Extension Setting Services (Guide coming soon) |
Required. This needs to be supported at the account level. |
C.72 | App extensions | App feed placeholder Extension Setting Services Feed Services (Guide coming soon) |
Required. This needs to be supported at the account level. |
C.75 | Callout extensions | Callout feed placeholder Extension Setting Services Feed Services (Guide coming soon) |
Required. This needs to be supported at the account, campaign, and ad group levels. |
C.80 | Sitelink extensions | Sitelink feed placeholder Extension Setting Services Feed Services (Guide coming soon) |
Required. This needs to be supported at the account, campaign, and ad group levels. |
C.90 | Set bidding option: Manual CPC | campaign.manual_cpc |
Required. This needs to be supported at the campaign level. |
C.95 | Set bidding option: Enhanced CPC | bidding_strategy.enhanced_cpc |
Required. This needs to be supported at the campaign level. |
C.96 | Set bidding option: Target CPA (Portfolio and Standard) | campaign.target_cpa (Standard)
|
Required. Both the Portfolio and Standard strategies need to be supported at the campaign level. |
C.97 | Set bidding option: Target ROAS (Portfolio and Standard) | campaign.target_roas (Standard)bidding_strategy.target_roas (Portfolio) |
Required. Both the Portfolio and Standard strategies need to be supported at the campaign level. |
C.98 | Set bidding option: Maximize Conversions (Standard) | campaign.maximize_conversions (Standard) |
Required. |
C.101 | Set bidding option: Maximize clicks (Portfolio) | bidding_strategy.target_spend |
Required. This needs to be supported at the campaign level. |
C.120 | Set budget | campaign_budget |
Required |
C.140 | Set delivery method | campaign_budgets.delivery_method |
Required |
C.190 | Create ad group | ad_group |
Required |
C.191 | Set ad group max CPC bid | ad_group.cpc_bid_micros |
Required for Manual CPC and Enhanced CPC bidding options. |
C.192 | Set ad group max CPA | ad_group.cpa_bid_micros |
Required for Target CPA (Portfolio and Standard) bidding option. |
C.193 | Set ad group target ROAS | ad_group.target_roas |
Required for standard Target ROAS bidding option. |
C.200 | Add expanded text ad | ad_group_ad.ad.expanded_text_ad |
Required |
C.260 | Add keyword | ad_group_criterion.keyword |
Required |
C.270 | Add ad group negative keywords | ad_group_criterion.negative |
Required |
C.290 | Set keyword max CPC | ad_group_criterion.cpc_bid_micros |
Required |
C.300 | Set keyword match type | ad_group_criterion.keyword |
Required |
C.311 | Set keyword final URL | ad_group_criterion.final_urls |
Required |
C.320 | Account-level tracking template | customer.tracking_url_template |
Required |
C.321 | Campaign-level tracking template | campaign.tracking_url_template |
Required |
C.325 | Campaign-level custom parameters | campaign.url_custom_parameters |
Required |
C.326 | Ad group-level custom parameters | ad_group.url_custom_parameters |
Required |
C.328 | Account-level final URL suffix | customer.final_url_suffix |
Required |
C.329 | Campaign-level final URL suffix | campaign.final_url_suffix |
Required |
C.500 | Create shopping campaign | Shopping Campaigns | Required |
C.505 | Set merchant identifier | campaign.shopping_setting |
Required |
C.506 | Set sales country | campaign.shopping_setting |
Required |
C.510 | Set inventory filter | campaign_criterion.listing_scope |
Required |
C.520 | Create product ad | ad_group_ad.ad.shopping_product_ad |
Required |
C.525 | Add first (root) product partition | ad_group_criterion.listing_group |
Required |
C.530 | Local inventory ads | campaign.shopping_setting
|
Required |
C.610 | Call-only ads | ad_group_ad.ad.call_only_ad |
Required |
C.700 | Create ad group/campaign criterion that targets/excludes user list | ad_group_criterion.user_list |
Required |
C.710 | Set userlist targeting bid adjustment for search network campaigns and ad groups | campaign_criterion.bid_modifier |
Required |
Management Functionality |
|||
M.10 | Edit campaign settings | campaign.*setting |
Required |
M.15 | Edit mobile, tablet, and desktop platform bid adjustments | campaign_criterion.bid_modifier |
Required. This needs to be supported at both campaign and ad group levels. |
M.20 | Edit ad group settings (all ad group-related required settings in Creation Functionality) | ad_group.*_setting |
Required |
M.25 | Edit geo bid adjustment | campaign_criterion.bid_modifier |
Required |
M.35 | Enable ad rotation | ad_group.ad_rotation_mode |
Required. This needs to be supported at the ad group level. |
M.40 | Edit keyword max CPC | ad_group_criterion.cpc_bid_micros |
Required |
M.96 | Edit bidding option: Target CPA (Portfolio and Standard) | campaign.target_cpa (Standard)bidding_strategy.target_cpa (Portfolio) |
Required. Both the Portfolio and Standard strategies need to be supported at the campaign level. |
M.97 | Edit bidding option: Target ROAS (Portfolio and Standard) | campaign.target_roas (Standard)bidding_strategy.target_roas (Portfolio)
|
Required. Both the Portfolio and Standard strategies need to be supported at the campaign level. |
M.98 | Edit bidding option: Maximize Conversions (Standard) | campaign.maximize_conversions (Standard) |
Required. |
M.100 | Edit expanded text ad | ad_group_ad.ad.expanded_text_ad |
Required |
M.101 | Edit bidding option: Maximize clicks (Standard) | campaign.target_spend |
Required. This needs to be supported at the campaign level. |
M.110 | Pause / enable / remove campaign | campaign.status |
Required |
M.120 | Pause / enable / remove ad group | ad_group.status |
Required |
M.130 | Pause / enable / remove ad | ad_group_ad.status |
Required |
M.140 | Pause / enable / remove keyword | ad_group_criterion.status |
Required |
M.150 | Edit inventory filter | campaign_criterion.listing_scope |
Required |
M.160 | Subdivide (add product partition) | ad_group_criterion.listing_group |
Required |
M.170 | Remove product partition | ad_group_criterion.listing_group |
Required |
M.180 | Edit product partition max CPC | ad_group_criterion.cpc_bid_micros |
Required |
M.190 | Exclude product partition (delegate) | ad_group_criterion.negative |
Required |
M.320 | Manage all tracking templates in creation functionality | customer.tracking_url_template
|
Required |
M.325 | Manage all custom parameters in creation functionality | campaign.url_custom_parameters
|
Required |
M.328 | Manage all final URL suffixes in creation functionality | customer.final_url_suffix |
Required |
M.700 | Edit ad group/campaign criterion that targets/excludes user list | ad_group_criterion.user_list (user list itself is immutable for criteria, but other fields like status of user list criteria can be edited) |
Required |
M.710 | Edit userlist targeting bid adjustment for search network campaigns and ad groups | campaign_criterion.bid_modifier |
Required |
Reporting Functionality |
|||
R.10 | Customer | metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions
|
Required |
R.20 | Campaign |
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions segments.ad_network_type segments.device
|
Required |
campaign.status |
Required if showing paused, active, and removed campaigns. Optional if only showing active campaigns. |
||
R.30 | Ad Group |
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions segments.ad_network_type segments.device
|
Required |
ad_group.status |
Required if showing paused, active, and removed ad groups. Optional if only showing active ad groups. |
||
R.40 | Ad Group Ad |
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions
|
Required |
ad_group_ad.status |
Required if showing paused, active, and removed ads. Optional if only showing active ads. |
||
R.50 | Keyword View |
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions ad_group_criterion ad_group_criterion
|
Required |
ad_group_criterion.status |
Required if showing paused, active, and removed keywords. Optional if only showing active keywords. |
||
R.70 | Search Term View |
search_term_view.search_term segments.search_term_match_type metrics.clicks metrics.cost_micros metrics.impressions
|
Required |
R.80 | Geographic View |
geographic_view segments.geo_target_region segments.geo_target_metro segments.geo_target_city campaign metrics.clicks metrics.cost_micros metrics.impressions
|
Required |
R.100 | Dynamic Search Ads Search Term View |
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions dynamic_search_ads_search_term_view dynamic_search_ads_search_term_view
|
Required |
R.110 | Shopping Performance View | metrics.clicks metrics.impressions metrics.cost_micros metrics.conversions segments segments segments segments segments segments.product_type_l1 segments.product_type_l2 segments.product_type_l3 segments.product_type_l4 segments.product_type_l5
|
Required |
R.120 | Product Group View | metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions
|
Required |
R.130 | Bidding Strategy |
bidding_strategy.type metrics.clicks metrics.cost_micros metrics.cost_per_conversion metrics.impressions metrics.average_cpc metrics.conversions
|
Required |
bidding_strategy.status |
Required if showing paused, active, and removed strategies. Optional if only showing active strategies. |
||
R.150 | Campaign Audience View Ad Group Audience View |
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions
|
Required |