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.
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://support.google.com/adspolicy/contact/contact_ads_api. 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.
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.
- App Promotion campaign
- Hotel campaigns (available only in the Google Ads API)
- Performance Max campaigns (available only in the Google Ads API)
- Smart campaigns (available only in the Google Ads API)
- Standard Shopping campaigns
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, Performance Max / Smart Shopping-only, App Promotion-only, and Hotel-only API tools
- Special purpose tools that offer campaign management functionality
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.
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.
Full-service Tool Feature List
Item Number | Functionality | Object/Field/Guide | Requirement | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Creation Functionality |
|||||||||||||||||||||||||||||||||||
C.10 | Create campaign | campaign |
Required | ||||||||||||||||||||||||||||||||
C.20 | Enable geo targeting | Location Targeting | Required. Optional to expose to the user if only one country is relevant for the user base. | ||||||||||||||||||||||||||||||||
C.30 | Enable language targeting | campaign_criterion.language |
Required. Optional to expose to the user if only one language is relevant for the user base. | ||||||||||||||||||||||||||||||||
C.65 | Create website / call conversion and generate code snippet | Conversion Tracking | Required at least one type of conversion tracking. | ||||||||||||||||||||||||||||||||
C.75 | Callout extensions | Callout feed placeholder Extension Setting Services Feed Services |
Required. This needs to be supported at the account level only. | ||||||||||||||||||||||||||||||||
C.96 | Set 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. | ||||||||||||||||||||||||||||||||
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.120 | Set budget | campaign_budget |
Required | ||||||||||||||||||||||||||||||||
C.190 | Create ad group | ad_group |
Required. Optional: ability to create multiple Ad groups. | ||||||||||||||||||||||||||||||||
C.260 | Add keyword | ad_group_criterion.keyword |
Required | ||||||||||||||||||||||||||||||||
C.270 | Add campaign negative keywords | campaign_criterion.negative |
Required | ||||||||||||||||||||||||||||||||
C.300 | Set keyword match type | ad_group_criterion.keyword |
Required | ||||||||||||||||||||||||||||||||
Management Functionality
M.10 |
Edit campaign settings |
campaign.*setting Required. Only settings required at creation time would
be required at change time. |
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.110 |
Pause / enable / remove campaign |
campaign.status Required |
M.130 |
Pause / enable / remove ad |
ad_group_ad.status Required |
M.140 |
Pause / enable / remove keyword |
ad_group_criterion.status 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 |
Required | ||||||||||||||||||||||||||||||||
campaign.status |
Required if showing paused, active, and removed campaigns. Optional if only showing active campaigns. |
||||||||||||||||||||||||||||||||||
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.100 | Dynamic Search Ads Search Term View |
dynamic_search_ads_search_term_view.search_term metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions
|
Required only if implementing Dynamic Search Ads. | ||||||||||||||||||||||||||||||||
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. |
App campaign Tool Feature List
Item Number | Functionality | Object/Field/Guide | Requirement |
---|---|---|---|
Creation Functionality |
|||
C.20 | Enable geo targeting | Location Targeting | Required. Optional to expose to the user if only one country is relevant for the user base. |
C.30 | Enable language targeting | campaign_criterion.language |
Required. Optional to expose to the user if only one language is relevant for the user base. |
C.65 | Create website / call conversion and generate code snippet | Conversion Tracking | Required at least one type of conversion tracking. |
C.96 | Set 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. |
Set bidding option: Pre-reg | App ads for pre-registration | Required for app campaigns for pre-registration. | |
C.190 | Create ad group | ad_group |
Required. Optional: ability to create multiple ad groups. |
Add assets to ad group | ad_group |
Required: text assets. Optional for image and video assets. | |
C.601 | Create install or re-engagement app campaigns | |
Required: app campaign install or app campaign re-engagement but not both. |
C.602 | Enable app campaign settings |
AppCampaignSetting |
Required: ability to select the app to be advertised or add deep links for engagement. |
Management Functionality |
|||
M.601 | Pause / enable / remove app campaign | campaign.status |
Required |
M.602 | Edit app campaign settings | campaign.*setting |
Required |
Reporting Functionality |
|||
R.10 | Account performance | metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions
|
Required |
R.20 | Campaign Performance |
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions |
Required if showing paused, active, and removed campaigns. Optional if only showing active campaigns. |
Hotel-only Tool Feature List
Item Number | Functionality | Object/Field/Guide | Requirement |
---|---|---|---|
Creation Functionality |
|||
C.11 | Create hotel campaign | hotel campaign | Required |
C.12 | Set Hotel Center identifier for hotel campaign |
HotelSettingInfo |
Required |
C.20 | Enable geo targeting | Location Targeting | Required Optional to expose to the user if only one country is relevant for the user base. |
C.30 | Enable language targeting | campaign_criterion.language |
Required. Optional to expose to the user if only one language is relevant for the user base. |
C.65 | Create website / call conversion and generate code snippet | Conversion Tracking | Required at least one type of conversion tracking. |
C.120 | Set budget | campaign_budget |
Required |
Set bidding strategy | Hotel Bidding | Optional to allow the user to choose a specific bidding strategy and set a target. | |
C.190 | Create hotel ad group | ad_group |
Required. Optional: ability to create multiple Ad groups. |
C.526 | Add first (root) partition hotel group partition | hotel listing groups | Required for Hotel Ads campaign to run, but not required to be exposed to the user. |
Management Functionality |
|||
M.10 | Edit campaign settings | campaign.*setting |
Required |
M.110 | Pause / enable / remove campaign | campaign.status |
Required |
M.161 | Subdivide (add hotel group partition) | hotel listing groups | Required |
M.191 | Exclude hotel group | AdGroupCriterion
|
Required |
Reporting Functionality |
|||
R.10 | Account performance | metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions
|
Required |
R.20 | Campaign Performance |
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions |
Required if showing paused, active, and removed campaigns. Optional if only showing active campaigns. |
R.111 | Hotel Performance View report |
hotel_performance_view
|
Required |
Performance Max Campaign Feature List
Item Number | Functionality | Object/Field/Guide | Requirement |
---|---|---|---|
Creation Functionality |
|||
C.10 | Create campaign | campaign |
Required. Optional: ability to create multiple campaigns. |
C.20 | Enable geo targeting | Location Targeting | Required. Optional to expose to the user if only one country is relevant for the user base. |
C.30 | Enable language targeting | campaign_criterion.language |
Required. Optional to expose to the user if only one language is relevant for the user base. |
C.65 | Create website / call conversion and generate code snippet | Conversion Tracking | Required at least one type of conversion tracking. |
C.120 | Set budget | campaign_budget |
Required |
Set bidding strategy | Optional to allow the user to choose a specific bidding strategy and set a target. | ||
Management Functionality |
|||
M.10 | Edit campaign settings | campaign.*setting |
Required. Only settings required at creation time would be required at change time. |
M.110 | Pause / enable / remove campaign | campaign.status |
Required |
Reporting Functionality |
|||
R.10 | Customer | metrics.clicks metrics.cost_micros metrics.conversions |
Required. Optional if only showing only one campaign. |
R.20 | Campaign | metrics.clicks metrics.cost_micros metrics.conversions |
Required |
Smart Campaign Feature List
The following table defines the minimum set of functionality required to implement Smart Campaigns. 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.
Item Number | Functionality | Object/Field/Guide | Requirement |
---|---|---|---|
Creation Functionality |
|||
C.10 | Create Smart Campaign | Smart Campaign | Required |
Add keyword theme | KeywordThemeInfo | Required for campaign creation, but optional to expose to the user. | |
C.20 | Enable geo targeting | Location Targeting | Required for campaign creation, but optional to expose to the user. |
C.70 | Location assets | Location assets | Required only if integrating with a Business Profile. |
C.120 | Set budget | campaign_budget |
Required |
C.200 | Add ad | Create ad | Required for campaign creation, but optional to expose to the user. |
Management Functionality |
|||
M.10 | Edit campaign settings (all campaign-creation settings displayed to advertiser) | campaign.*setting |
Required |
M.110 | Pause / enable / remove campaign | campaign.status |
Required |
M.130 | Pause / enable / remove ad | ad_group_ad.status |
Required |
Set / Edit Campaign schedule | ad_schedule
|
Required | |
Remove / Add keyword theme |
KeywordThemeInfo |
Required for campaign creation, but optional to expose to the user. | |
Add/Remove Negative Keyword Theme |
KeywordThemeInfo |
Required for campaign creation, but optional to expose to the user. | |
Reporting Functionality |
|||
R.20 | Campaign Performance |
metrics.clicks metrics.cost_micros metrics.impressions metrics.conversions metrics.all_conversions |
Required if showing paused, active, and removed campaigns. Optional if only showing active campaigns. |
SMART_CAMPAIGN_MAP_CLICKS_TO_CALL SMART_CAMPAIGN_MAP_DIRECTIONS
|
Required only if integrating with a Business Profile. | ||
R.70 | Smart Campaign Search Term View |
metrics.clicks metrics.cost_micros |
Required |
Standard Shopping Campaign Tool Feature List
Item Number | Functionality | Object/Field/Guide | Requirement |
---|---|---|---|
Creation Functionality |
|||
C.10 | Create campaign | campaign |
Required |
C.20 | Enable geo targeting | Location Targeting | Required. Optional to expose to the user if only one country is relevant for the user base. |
C.65 | Create website / call conversion and generate code snippet | Conversion Tracking | Required at least one type of conversion tracking. |
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.120 | Set budget | campaign_budget |
Required |
C.190 | Create ad group | ad_group |
Required. Optional: ability to create multiple Ad groups. |
C.270 | Add campaign negative keywords | campaign_criterion.negative |
Required |
C.300 | Set keyword match type | ad_group_criterion.keyword |
Required |
C.505 | Set merchant identifier | |
Required |
C.506 | Set sales country | |
Required |
C.510 | Set inventory filter | |
Required |
C.520 | Create product ad | |
Required |
C.525 | Add first (root) product partition | |
Required |
C.530 | Create local inventory ads | |
Required |
Management Functionality |
|||
M.10 | Edit campaign settings | campaign.*setting |
Required. Only settings required at creation time would be required at change time. |
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.110 | Pause / enable / remove campaign | campaign.status |
Required |
M.150 | Edit inventory filter | |
Required |
M.160 | Subdivide (add product partition) | |
Required |
M.170 | Delete product partition | |
Required |
M.190 | Exclude product partition | |
Required |
Reporting Functionality |
|||
R.10 | Customer | metrics.clicks metrics.cost_micros metrics.impressions metrics.conversion_value |
Required. Optional if only showing only one campaign. |
R.20 | Campaign | metrics.clicks metrics.cost_micros metrics.impressions metrics.conversion_value |
Required |
R.70 | Search Term View |
search_term_view.search_term segments.search_term_match_type metrics.clicks metrics.cost_micros metrics.impressions
|
Required |
R.110 | Shopping performance | metrics.clicks metrics.cost_micros metrics.impressions metrics.conversion_value |
Required only if implementing Dynamic Search Ads. |
R.120 | Product partition | metrics.clicks metrics.cost_micros metrics.impressions metrics.conversion_value |
Required. Optional if products not subdivided |
R.130 | Bidding strategy performance | |
Required. Optional if products not subdivided |