Required Minimum Functionality

v. 2022-10-06

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
  • advertisers, agencies, and other third parties use your tool to fully manage their Google Ads accounts
RMF applies
RMF applies
RMF applies
Reporting Only
  • only a reporting dashboard available to end-advertisers
RMF doesn't apply
RMF doesn't apply
RMF applies
Internal Use Only
  • individual advertiser or agency use only; no third-party access to tool (meaning you're the only one that uses your tool)
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.

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:

  1. It must fully implement the required Creation Functionality, Management Functionality and Reporting Functionality for their tool category.
  2. All Google Ads Recommendations shown to end users must be presented as "Google Ads Recommendations" in the tool's UI.
  3. 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:

  1. End users must be allowed to input the entire range of allowable values.
  2. End users must be able to review and edit the bid adjustments before it is set by the Google Ads API Client.
  3. 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
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
language_constant
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
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
 .match_type
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
 .position_estimates
 .first_page_cpc_micros

ad_group_criterion
 .position_estimates
 .first_position_cpc_micros
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
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
language_constant
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
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
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
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
metrics.clicks
metrics.cost_micros
metrics.impressions
metrics.conversions
metrics.all_conversions
Required
R.20
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
Required
C.12
Set Hotel Center identifier for hotel campaign
Required
C.20
Enable geo 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
language_constant
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
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.
C.190
Create hotel ad group
Required. Optional: ability to create multiple Ad groups.
C.526
Add first (root) partition hotel group partition
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)
Required
M.191
Exclude hotel group
Required

Reporting Functionality

R.10
metrics.clicks
metrics.cost_micros
metrics.impressions
metrics.conversions
metrics.all_conversions
Required
R.20
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.

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
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
language_constant
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
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
Required
Add keyword theme
Required for campaign creation, but optional to expose to the user.
C.20
Enable geo targeting
Required for campaign creation, but optional to expose to the user.
C.70
Location assets
Required only if integrating with a Business Profile .
C.120
Set budget
campaign_budget
Required
C.200
Add 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
Required
Remove / Add keyword theme
Required for campaign creation, but optional to expose to the user.
Add/Remove Negative Keyword Theme
Required for campaign creation, but optional to expose to the user.

Reporting Functionality

R.20
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.70
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
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
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
 .match_type
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
Create a Mobile Website
View Site in Mobile | Classic
Share by: