Plan-level settings

This page explains the differences when working with a keyword plan using the Google Ads API versus the UI. We also give some recommendations on how to avoid mismatches in historical metrics when mixing usage.

API behavior

As of version v11 of the Google Ads API, KeywordPlan exposes only a forecast_period setting at the plan level.

Other settings such as geo targets, network settings, and language targets are available only at the KeywordPlanCampaign level.

UI behavior

The Google Ads UI exposes these settings at the plan level and doesn't expose the underlying KeywordPlanCampaign and KeywordPlanAdGroup objects.


The difference between how the API and UI treat keyword plans can result in seeming discrepancies when comparing results between the two. To avoid misinterpreting the results, keep the following rules in mind:

  • The Google Ads API always uses the settings at the KeywordPlanCampaign level.

  • The Google Ads UI always uses the settings at the KeywordPlan level. However, these settings are not currently accessible to the API.

  • If you create a KeywordPlan using the Google Ads API, it shows up in the UI as targeting all locations and languages.

    The UI also shows various metrics for all locations and languages; the settings at the underlying KeywordPlanCampaign are ignored by the UI. The UI might also prevent you from editing these keyword plans.

  • If you create a KeywordPlan using the UI, the Google Ads UI sets geo targets for the underlying KeywordPlanCampaign under certain conditions.

    These settings are not presented to you on the UI, which can lead to a mismatch in metrics when comparing them against the values retrieved using the API.

    Editing the keyword plan settings in the UI can also cause the API and UI metrics to diverge.


When possible, avoid mixing the keyword plans created by the API and the UI.

When investigating metric mismatches between the API and the UI for a given keyword plan, take these steps:

  1. Retrieve the KeywordPlan using the following query.

    FROM keyword_plan
  2. Retrieve the KeywordPlanCampaign using the following query.

    FROM keyword_plan_campaign
    WHERE keyword_plan.resource_name = 'YOUR_PLAN_RESOURCE_NAME'
  3. Create a new keyword plan in the UI using these settings and use it to compare the results.