The Google Ads API offers several views to analyze where your ads have appeared and how
they are performing:
[`managed_placement_view`](https://developers.google.com/google-ads/api/fields/v26/managed_placement_view),
[`group_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_placement_view),
[`detail_placement_view`](https://developers.google.com/google-ads/api/fields/v26/detail_placement_view), and
[`performance_max_placement_view`](https://developers.google.com/google-ads/api/fields/v26/performance_max_placement_view). Each view provides a
different lens on your placement data.

## Managed placement view

- **What it shows:** The [`managed_placement_view`](https://developers.google.com/google-ads/api/fields/v26/managed_placement_view) resource provides performance data aggregated by the placements you are explicitly targeting (managed placements). It reflects the performance of your `Placement` criteria.
- **UI Equivalent:** **Content \> Placements**
- **Query Builder:** [Explore in Query Builder](https://developers.google.com/google-ads/api/fields/v26/managed_placement_view_query_builder)

### Example query

To fetch performance metrics for managed placements over the last 30 days:

    SELECT
      campaign.id,
      ad_group.id,
      managed_placement_view.resource_name,
      ad_group_criterion.placement.url,
      metrics.impressions,
      metrics.clicks,
      metrics.cost_micros
    FROM managed_placement_view
    WHERE segments.date DURING LAST_30_DAYS

## Group placement view

- **What it shows:** The [`group_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_placement_view) resource shows where your ads *actually served* on the Display Network and YouTube, regardless of whether the placements were explicitly targeted or discovered automatically by Google's system. This can include websites, YouTube channels or videos, and apps.
- **UI Equivalent:** **Content \> Where ads showed**
- **Query Builder:** [Explore in Query Builder](https://developers.google.com/google-ads/api/fields/v26/group_placement_view_query_builder)

### "Total: Other" row

Performance data for placements with very low activity, as measured by
impressions or clicks, may be aggregated into a summary row---often referred to as
"Total: Other"---where `group_placement_view.placement` or
`detail_placement_view.placement` has the value `"Other"`. Individual
low-traffic placements might not be listed separately to provide faster report
generation. As a result, the sum of individual placement rows in
[`group_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_placement_view) and
[`detail_placement_view`](https://developers.google.com/google-ads/api/fields/v26/detail_placement_view) might not always
match the total statistics for the ad group or campaign. For more information,
see [About the "Where ads showed" report](https://support.google.com/google-ads/answer/13787926).

### TargetingSetting options

The behavior and utility of the
[`group_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_placement_view) are influenced by the
[`TargetingSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetingSetting) for the `PLACEMENT`
dimension at the ad group level. This setting contains a list of
[`target_restrictions`](https://developers.google.com/google-ads/api/fields/v26/ad_group#ad_group.targeting_setting.target_restrictions), each with a `bid_only` boolean
field that dictates whether your ads show only on targeted placements or on
other placements as well. See [About "Targeting" and "Observation"
settings](https://support.google.com/google-ads/answer/7365594).

- `bid_only = false`: This value corresponds to **Targeting** in the Google Ads UI for placements. If your ad group is set to "Targeting", your ads only show on the placements you've explicitly added as criteria. You can choose to apply bid adjustments to these placements. In this scenario, [`group_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_placement_view) largely mirrors [`managed_placement_view`](https://developers.google.com/google-ads/api/fields/v26/managed_placement_view), but is still subject to "Total: Other" aggregation.
- `bid_only = true`: This value corresponds to **Observation** in the Google Ads UI for placements. If your ad group is set to "Observation", your ads can show on any eligible placement on the Display Network and YouTube. You can also apply bid adjustments to any placements you have targeted. In this case, [`group_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_placement_view) is crucial for discovering new placements where your ads are showing, which you might then choose to add as managed placements or exclusions.

## Detail placement view

- **What it shows:** The [`detail_placement_view`](https://developers.google.com/google-ads/api/fields/v26/detail_placement_view) resource provides a more granular breakdown of placements, offering details beyond the domain or channel level. For example, it can show specific URLs or YouTube video IDs where your ads appeared.
- **UI Equivalent:** Equivalent to selecting rows in **Content \> Where ads
  showed** , then clicking **View details**.
- **Query Builder:** [Explore in Query Builder](https://developers.google.com/google-ads/api/fields/v26/detail_placement_view_query_builder)
- **Important Considerations:** Similar to [`group_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_placement_view), this view is also subject to the "Total: Other" row aggregation for low-traffic placements.

> [!NOTE]
> **Note:** `detail_placement_view` reports at a granular level (individual URLs and video IDs) and can return high-cardinality data. Always filter queries by date ranges or specific campaigns and ad groups to avoid large payload sizes and query timeouts.

## Performance Max placement view

- **What it shows:** The [`performance_max_placement_view`](https://developers.google.com/google-ads/api/fields/v26/performance_max_placement_view) resource provides impression data (`metrics.impressions`) for placements where Performance Max ads served. In **v24 and later** , you can segment `performance_max_placement_view` by [`segments.ad_network_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_network_type) (not supported in **v23**).
- **Query Builder:** [Explore in Query Builder](https://developers.google.com/google-ads/api/fields/v26/performance_max_placement_view_query_builder)

## Which view to use?

- Use [`managed_placement_view`](https://developers.google.com/google-ads/api/fields/v26/managed_placement_view) to assess the performance of placements you are actively targeting and bidding on.
- Use [`group_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_placement_view) to understand the full scope of where your ads are appearing, especially when using the "Observation" setting, to discover new targeting opportunities or exclusions.
- Use [`detail_placement_view`](https://developers.google.com/google-ads/api/fields/v26/detail_placement_view) to get the most granular details about specific URLs or videos where your ads showed, often used after identifying a domain or channel of interest in the [`group_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_placement_view).
- Use [`performance_max_placement_view`](https://developers.google.com/google-ads/api/fields/v26/performance_max_placement_view) to inspect placement impressions for Performance Max campaigns.