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 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
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 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
 .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 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
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 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
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 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
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 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
 .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