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

- [HTTP request](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#body.PATH_PARAMETERS)
- [Query parameters](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#body.QUERY_PARAMETERS)
- [Request body](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#body.request_body)
- [Response body](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#body.response_body)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#body.RetrievePlannableProductsResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#body.aspect)
- [ProductMetadata](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#ProductMetadata)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#ProductMetadata.SCHEMA_REPRESENTATION)
- [PlannableTargeting](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableTargeting)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableTargeting.SCHEMA_REPRESENTATION)
- [SurfaceTargetingCombinations](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#SurfaceTargetingCombinations)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#SurfaceTargetingCombinations.SCHEMA_REPRESENTATION)
- [SurfaceTargetingCombination](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#SurfaceTargetingCombination)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#SurfaceTargetingCombination.SCHEMA_REPRESENTATION)
- [YouTubeSelectLineUp](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#YouTubeSelectLineUp)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#YouTubeSelectLineUp.SCHEMA_REPRESENTATION)
- [PlannableProductCoreAttributes](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableProductCoreAttributes)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableProductCoreAttributes.SCHEMA_REPRESENTATION)
- [PlannableBuyingMethod](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableBuyingMethod)
- [PlannableCostModel](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableCostModel)
- [Try it!](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#try-it)

Retrieves the list of products that can be planned for a location.

<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

`GET https://displayvideo.googleapis.com/v5/advertisers/{advertiserId}/reachForecast:retrievePlannableProducts`

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 to list plannable products for. |

### Query parameters

| Parameters ||
|---|---|
| `plannableLocationId` | `string` Required. The ID of the plannable location. |

### Request body

The request body must be empty.

### Response body

Response for reachForecast.retrievePlannableProducts

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

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

| Fields ||
|---|---|
| `productMetadata[]` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#ProductMetadata`)`` Output only. The list of product metadata showing targeting possibilities. |

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

## ProductMetadata

Metadata for a plannable product.

| JSON representation |
|---|
| ``` { "plannableProductDescription": string, "plannableProductCode": string, "plannableTargeting": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableTargeting`) }, "displayName": string, "plannableProductCoreAttributes": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableProductCoreAttributes`) } } ``` |

| Fields ||
|---|---|
| `plannableProductDescription` | `string` Output only. The plain-text description of the ad product. |
| `plannableProductCode` | `string` Output only. The plannable product code (e.g. "YOUTUBE_REACH_MIX"). |
| `plannableTargeting` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableTargeting`)`` Output only. The targeting capabilities available for this product. |
| `displayName` | `string` Output only. The name associated with the ad product. For example: "Video View Campaign". |
| `plannableProductCoreAttributes` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableProductCoreAttributes`)`` Output only. Core attributes for this product. |

## PlannableTargeting

Targeting capabilities for a given product.

| JSON representation |
|---|
| ``` { "ageRanges": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableAgeRange`) ], "surfaceTargetingCombinations": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#SurfaceTargetingCombinations`) }, "genders": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/Gender`) ], "networks": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableNetwork`) ], "devices": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/DeviceType`) ], "youtubeSelectLineups": [ { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#YouTubeSelectLineUp`) } ], "defaultYoutubeSelectLineup": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#YouTubeSelectLineUp`) } } ``` |

| Fields ||
|---|---|
| `ageRanges[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableAgeRange`)`` Output only. Allowed plannable age ranges for the product. Actual targeting is computed by mapping this age range onto standard Google age targeting. |
| `surfaceTargetingCombinations` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#SurfaceTargetingCombinations`)`` Output only. Targetable surface combinations for the ad product. |
| `genders[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/Gender`)`` Output only. Targetable genders for the ad product. |
| `networks[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableNetwork`)`` Output only. Targetable networks for the ad product. |
| `devices[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/DeviceType`)`` Output only. Targetable devices for the ad product. |
| `youtubeSelectLineups[]` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#YouTubeSelectLineUp`)`` Output only. Targetable YouTube Select Lineups for the ad product. |
| `defaultYoutubeSelectLineup` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#YouTubeSelectLineUp`)`` Output only. The default YouTube Select Lineup for this product, if applicable. |

## SurfaceTargetingCombinations

Surface targeting rules.

| JSON representation |
|---|
| ``` { "availableSurfaceTypes": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableSurface`) ], "validSurfaceCombinations": [ { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#SurfaceTargetingCombination`) } ], "defaultSurfaceTypes": [ enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableSurface`) ] } ``` |

| Fields ||
|---|---|
| `availableSurfaceTypes[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableSurface`)`` Output only. The surface types available. |
| `validSurfaceCombinations[]` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#SurfaceTargetingCombination`)`` Output only. Valid combinations of surfaces that can be selected together. |
| `defaultSurfaceTypes[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableSurface`)`` Output only. The default surface types for this product. |

## SurfaceTargetingCombination

A valid combination of surfaces.

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

| Fields ||
|---|---|
| `choices[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableSurface`)`` Output only. The combination of surfaces. |

## YouTubeSelectLineUp

A Plannable YouTube Select Lineup for product targeting.

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

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

## PlannableProductCoreAttributes

Core attributes for a plannable product.

| JSON representation |
|---|
| ``` { "productCategory": enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableProductCategory`), "buyingMethod": enum (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableBuyingMethod`), "costModel": enum (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableCostModel`) } ``` |

| Fields ||
|---|---|
| `productCategory` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/PlannableProductCategory`)`` Output only. The product category. |
| `buyingMethod` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableBuyingMethod`)`` Output only. The buying method. |
| `costModel` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.reachForecast/retrievePlannableProducts#PlannableCostModel`)`` Output only. The cost model. |

## PlannableBuyingMethod

The buying method of a plannable product.

| Enums ||
|---|---|
| `PLANNABLE_BUYING_METHOD_UNSPECIFIED` | Not specified. |
| `PLANNABLE_BUYING_METHOD_AUCTION` | Auction. |
| `PLANNABLE_BUYING_METHOD_RESERVATION` | Reservation. |

## PlannableCostModel

The cost model of a plannable product.

| Enums ||
|---|---|
| `PLANNABLE_COST_MODEL_UNSPECIFIED` | Not specified. |
| `PLANNABLE_COST_MODEL_CPM` | CPM. |
| `PLANNABLE_COST_MODEL_CPV` | CPV. |
| `PLANNABLE_COST_MODEL_CPC` | CPC. |
| `PLANNABLE_COST_MODEL_CPA` | CPA. |