> [!WARNING]
> Display \& Video 360 API v5 is currently in beta.

- [HTTP request](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#body.PATH_PARAMETERS)
- [Request body](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#body.request_body)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#body.response_body)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#body.GenerateReachForecastResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#body.aspect)
- [Targeting](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#Targeting)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#Targeting.SCHEMA_REPRESENTATION)
- [CampaignDuration](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#CampaignDuration)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#CampaignDuration.SCHEMA_REPRESENTATION)
- [PlannedProduct](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProduct)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProduct.SCHEMA_REPRESENTATION)
- [AdvancedProductTargeting](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#AdvancedProductTargeting)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#AdvancedProductTargeting.SCHEMA_REPRESENTATION)
- [SurfaceTargetingSettings](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#SurfaceTargetingSettings)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#SurfaceTargetingSettings.SCHEMA_REPRESENTATION)
- [YouTubeSelectSettings](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#YouTubeSelectSettings)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#YouTubeSelectSettings.SCHEMA_REPRESENTATION)
- [OnTargetAudienceMetrics](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#OnTargetAudienceMetrics)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#OnTargetAudienceMetrics.SCHEMA_REPRESENTATION)
- [ReachCurve](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#ReachCurve)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#ReachCurve.SCHEMA_REPRESENTATION)
- [ReachForecast](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#ReachForecast)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#ReachForecast.SCHEMA_REPRESENTATION)
- [PlannedProductReachForecast](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductReachForecast)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductReachForecast.SCHEMA_REPRESENTATION)
- [PlannedProductForecast](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductForecast)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductForecast.SCHEMA_REPRESENTATION)
- [Try it!](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#try-it)

Generates a reach forecast for a given advertiser and targeting configuration.

<br />

> [!WARNING]
> API support for generating reach forecasts and retrieving related metadata is in beta. This method is only available to allowlisted users.

<br />

### HTTP request

`POST https://displayvideo.googleapis.com/v5/advertisers/{advertiserId}/reachForecast:generateReachForecast`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `advertiserId` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. The ID of the advertiser that will run the planned campaign. |

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "targeting": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#Targeting`) }, "campaignDuration": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#CampaignDuration`) }, "currencyCode": string, "plannedProducts": [ { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProduct`) } ], "minEffectiveFrequency": integer } ``` |

| Fields ||
|---|---|
| `targeting` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#Targeting`)`` Required. The targeting parameters of the planned campaign. |
| `campaignDuration` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#CampaignDuration`)`` Required. The duration of the planned campaign. |
| `currencyCode` | `string` Required. The currency code for the plan in ISO 4217 format. |
| `plannedProducts[]` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProduct`)`` Required. The list of line items to include in the forecast. |
| `minEffectiveFrequency` | `integer` Optional. The minimum effective frequency for the reported reach metrics. This is the smallest number of times a customer must be exposed to the ad for it to be considered effective. This setting only impacts reporting. Must be between 1 and 10, inclusive. If not specified, a default of 1 is applied. |

### Response body

Response message for ReachForecastService.GenerateReachForecast.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "onTargetAudienceMetrics": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#OnTargetAudienceMetrics`) }, "reachCurve": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#ReachCurve`) } } ``` |

| Fields ||
|---|---|
| `onTargetAudienceMetrics` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#OnTargetAudienceMetrics`)`` The estimated audience sizes for the targeted geography. |
| `reachCurve` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#ReachCurve`)`` The generated forecast curve. |

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/display-video`

For more information, see the [OAuth 2.0 Overview](https://developers.google.com/identity/protocols/OAuth2).

## Targeting

Targeting settings for a planned campaign.

| JSON representation |
|---|
| ``` { "plannableLocationIds": [ string ], "ageRange": enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableAgeRange`), "genders": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/Gender`) ], "devices": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/DeviceType`) ] } ``` |

| Fields ||
|---|---|
| `plannableLocationIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. IDs of plannable locations to target. Plannable locations can be retrieved using the `reachForecast.retrievePlannableLocations` method. |
| `ageRange` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableAgeRange`)`` Optional. The age range to target. |
| `genders[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/Gender`)`` Optional. The gender options to target. |
| `devices[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/DeviceType`)`` Optional. The devices to target. |

## CampaignDuration

The duration of the reach plan.

| JSON representation |
|---|
| ``` { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "durationDays": integer, "dateRange": { object (`https://developers.google.com/display-video/api/reference/rest/v5/DateRange`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| Choice of campaign duration. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `durationDays` | `integer` Required. The number of days the plan covers. |
| `dateRange` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/DateRange`)`` Required. The date range the plan covers. |
| End of mutually exclusive fields. ||

## PlannedProduct

Configuration for a specific product in the plan.

| JSON representation |
|---|
| ``` { "plannableProductCode": string, "budgetMicros": string, "advancedProductTargeting": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#AdvancedProductTargeting`) } } ``` |

| Fields ||
|---|---|
| `plannableProductCode` | `string` Required. The code for the product, e.g. "VIDEO_REACH_CAMPAIGN". |
| `budgetMicros` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. The budget for this product in micros. |
| `advancedProductTargeting` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#AdvancedProductTargeting`)`` Optional. Optional line item level targeting overrides. |

## AdvancedProductTargeting

Product-specific targeting overrides.

| JSON representation |
|---|
| ``` { "surfaceTargetingSettings": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#SurfaceTargetingSettings`) }, "targetFrequency": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.lineItems#TargetFrequency`) }, "frequencyCap": { object (`https://developers.google.com/display-video/api/reference/rest/v5/FrequencyCap`) }, "ageRange": enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableAgeRange`), "genders": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/Gender`) ], "devices": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/DeviceType`) ], "userInterestIds": [ string ], "userListIds": [ string ], "youtubeSelectSettings": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#YouTubeSelectSettings`) }, "dateRange": { object (`https://developers.google.com/display-video/api/reference/rest/v5/DateRange`) }, "plannableLocationIds": [ string ], "network": enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableNetwork`) } ``` |

| Fields ||
|---|---|
| `surfaceTargetingSettings` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#SurfaceTargetingSettings`)`` Optional. Plannable surfaces to target. |
| `targetFrequency` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.lineItems#TargetFrequency`)`` Optional. The average number of times the ads will show to the same person over a certain period of time. |
| `frequencyCap` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/FrequencyCap`)`` Optional. The frequency cap for the specific product. |
| `ageRange` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableAgeRange`)`` Optional. The age range to target. |
| `genders[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/Gender`)`` Optional. The gender options to target. |
| `devices[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/DeviceType`)`` Optional. The devices to target. |
| `userInterestIds[]` | `string` Optional. The user interest IDs to target. Plannable user interests can be retrieved using the `reachForecast.retrievePlannableUserInterests` method. |
| `userListIds[]` | `string` Optional. The user list IDs to target. Plannable user lists can be retrieved using the `reachForecast.retrievePlannableUserInterests` method. |
| `youtubeSelectSettings` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#YouTubeSelectSettings`)`` Optional. YouTube Select settings. |
| `dateRange` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/DateRange`)`` Optional. The date range to target. |
| `plannableLocationIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. Plannable location IDs to target. |
| `network` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableNetwork`)`` Optional. The network to target. |

## SurfaceTargetingSettings

Surface targeting selection.

| JSON representation |
|---|
| ``` { "surfaces": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableSurface`) ] } ``` |

| Fields ||
|---|---|
| `surfaces[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableSurface`)`` Optional. The surfaces to target. |

## YouTubeSelectSettings

Settings for YouTube Select Lineups.

| JSON representation |
|---|
| ``` { "lineupId": string } ``` |

| Fields ||
|---|---|
| `lineupId` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. The ID of the YouTube Select Lineup. |

## OnTargetAudienceMetrics

Estimated audience sizes for a targeted geography.

| JSON representation |
|---|
| ``` { "youtubeAudienceSize": string, "censusAudienceSize": string } ``` |

| Fields ||
|---|---|
| `youtubeAudienceSize` | `string (https://developers.google.com/discovery/v1/type-format format)` Estimated size of the YouTube audience. |
| `censusAudienceSize` | `string (https://developers.google.com/discovery/v1/type-format format)` Size of the audience based on the census data of the targeted geography. |

## ReachCurve

The generated reach curve.

| JSON representation |
|---|
| ``` { "reachForecasts": [ { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#ReachForecast`) } ] } ``` |

| Fields ||
|---|---|
| `reachForecasts[]` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#ReachForecast`)`` Points along the curve, ordered by cost. |

## ReachForecast

A single point in the reach curve.

| JSON representation |
|---|
| ``` { "costMicros": string, "plannedProductReachForecasts": [ { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductReachForecast`) } ], "forecast": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductForecast`) } } ``` |

| Fields ||
|---|---|
| `costMicros` | `string (https://developers.google.com/discovery/v1/type-format format)` Total cost for this point in micros. |
| `plannedProductReachForecasts[]` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductReachForecast`)`` Breakdown for individual products at this cost point. |
| `forecast` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductForecast`)`` Aggregate forecast for the entire plan. |

## PlannedProductReachForecast

Performance forecast for a specific product.

| JSON representation |
|---|
| ``` { "costMicros": string, "plannableProductCode": string, "plannedProductForecast": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductForecast`) } } ``` |

| Fields ||
|---|---|
| `costMicros` | `string (https://developers.google.com/discovery/v1/type-format format)` The cost in micros for this product. |
| `plannableProductCode` | `string` The code for the product. |
| `plannedProductForecast` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/generateReachForecast#PlannedProductForecast`)`` Performance metrics for the product. |

## PlannedProductForecast

Performance metrics for a forecast point.

| JSON representation |
|---|
| ``` { "onTargetReach": string, "onTargetImpressions": string, "trueviewViews": string, "totalReach": string, "totalImpressions": string, "viewableImpressions": string, "onTargetCoviewReach": string, "totalCoviewReach": string, "onTargetCoviewImpressions": string, "totalCoviewImpressions": string } ``` |

| Fields ||
|---|---|
| `onTargetReach` | `string (https://developers.google.com/discovery/v1/type-format format)` Number of unique people reached that match the on-target definition. |
| `onTargetImpressions` | `string (https://developers.google.com/discovery/v1/type-format format)` Number of on-target impressions. |
| `trueviewViews` | `string (https://developers.google.com/discovery/v1/type-format format)` Number of TrueView views. |
| `totalReach` | `string (https://developers.google.com/discovery/v1/type-format format)` Total number of unique people reached. |
| `totalImpressions` | `string (https://developers.google.com/discovery/v1/type-format format)` Total number of impressions. |
| `viewableImpressions` | `string (https://developers.google.com/discovery/v1/type-format format)` Number of viewable impressions. |
| `onTargetCoviewReach` | `string (https://developers.google.com/discovery/v1/type-format format)` Number of unique people reached that match the on-target definition including co-viewers. |
| `totalCoviewReach` | `string (https://developers.google.com/discovery/v1/type-format format)` Total number of unique people reached including co-viewers. |
| `onTargetCoviewImpressions` | `string (https://developers.google.com/discovery/v1/type-format format)` Number of on-target impressions including co-viewers. |
| `totalCoviewImpressions` | `string (https://developers.google.com/discovery/v1/type-format format)` Total number of impressions including co-viewers. |