To measure the causal impact of your ad campaigns on brand perception,
conversions, conversion value, and organic search behavior, query the lift
measurement reporting resources in the Google Ads API:

- **[Brand Lift reporting](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#brand-lift-reporting)**: Evaluates how ad exposure influences brand perception across surveyed measurement types in Google Ads API v25 and later.
- **[Conversion Lift reporting](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#conversion-lift-reporting)** : Measures incremental conversions, conversion value, cost per incremental conversion (iCPA), and incremental return on ad spend (iROAS) against an unexposed holdback group in Google Ads API v25 and later, including:
  - **[Standalone Conversion Lift reporting](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#cls-reporting)**: Evaluates study-level and sliced incrementality across measured campaigns.
  - **[A/B + Conversion Lift reporting](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#ab-lift-reporting)**: Evaluates per-arm holdback incrementality and Bayesian head-to-head winner scores across competing experiment arms.
- **[Search Lift reporting](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#search-lift-reporting)**: Quantifies the incremental increase in organic search query volume across Google Search and YouTube driven by ad exposure in Google Ads API v26 and later.

For standard A/B experiment reporting on the `experiment` and `campaign`
resources, see [Report on
experiments](https://developers.google.com/google-ads/api/docs/experiments/reporting).

## Brand Lift reporting

To evaluate how your ad campaigns influence brand perception in Google Ads API v25 and
later, query the dedicated Brand Lift measurement resources.

> [!IMPORTANT]
> **Important:** To query Brand Lift data, the customer ID must be on the allowlist managed by Global Product Solutions (GPS). Contact your Google representative or GPS contact before starting your integration.

### Brand Lift resources and breakdown views

Brand Lift configurations, flights, and breakdown views are read-only in the
Google Ads API (all fields are `OUTPUT_ONLY`) and are configured in the Google Ads UI or
with your Google representative or GPS contact. Query these resources by using
the `customer_id` parameter of the account (manager or child account) that owns
the study.

Query the [`LiftMeasurementFlight`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight.md.txt) resource to retrieve
flight-level Brand Lift schedule and survey collection metadata, including the
flight status ([`lift_measurement_flight.status`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight.md.txt#status), defined
by the [`LiftMeasurementFlightStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlightStatusEnum.LiftMeasurementFlightStatus.md.txt) enum with values
`ENABLED` for active flights and `STOPPED` for manually halted flights), the
flight date ranges ([`lift_measurement_flight.start_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight.md.txt#start_date)
and [`lift_measurement_flight.end_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight.md.txt#end_date)) in the customer's
time zone, and the target survey response collection progress
([`lift_measurement_flight.survey_lift_measurement.response_collection_ratio_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlightSurveyLiftMeasurement.md.txt#response_collection_ratio_micros),
where `0` equals 0% and `1000000` equals 100%). To determine whether an
`ENABLED` flight is in progress or completed, compare the current date in the
customer's time zone against `lift_measurement_flight.start_date` and
`lift_measurement_flight.end_date`, and check whether
`response_collection_ratio_micros` has reached `1000000`.

Query the [`LiftMeasurementConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt) resource to retrieve overall
study-level Brand Lift metrics, or query the following breakdown resources to
analyze Brand Lift metrics across specific dimensions:

- [`LiftMeasurementCampaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementCampaign.md.txt): Breakdown by campaign.
- [`LiftMeasurementAgeRange`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementAgeRange.md.txt): Breakdown by age range.
- [`LiftMeasurementDevice`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementDevice.md.txt): Breakdown by device.
- [`LiftMeasurementGender`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementGender.md.txt): Breakdown by gender.
- [`LiftMeasurementVideo`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementVideo.md.txt): Breakdown by video asset.

Include the [`segments.brand_lift_measurement_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#brand_lift_measurement_type)
segment to break down Brand Lift metrics by surveyed question type, defined by
the [`BrandLiftMeasurementType`](https://developers.google.com/google-ads/api/reference/rpc/v26/BrandLiftMeasurementTypeEnum.BrandLiftMeasurementType.md.txt) enum (such as `RECALL` or
`AWARENESS`). When you omit the `segments.brand_lift_measurement_type` segment,
the API returns metrics for a single auto-selected measurement type per slice.
Include the [`segments.date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#date) segment to break down Brand Lift metrics
by date (`YYYY-MM-DD`). The
[`metrics.cost_per_lifted_cookie`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#cost_per_lifted_cookie) metric is returned in
micros of the study-owning account's currency.

In Google Ads API v27 and later, you can also select the read-only (`OUTPUT_ONLY`)
`lift_guidance` field (`lift_guidance.outcome` and
`lift_guidance.guidance_message`, of type `LiftGuidance`) in the Google Ads Query Language (GAQL)
`SELECT` clause on `lift_measurement_config` and on the five Brand Lift
breakdown resources (`lift_measurement_age_range`, `lift_measurement_campaign`,
`lift_measurement_device`, `lift_measurement_gender`, and
`lift_measurement_video`) to receive row-level statistical interpretation. On
`lift_measurement_config`, `lift_guidance` is populated only when the query also
selects or filters on Lift metrics or segments (it is omitted on metadata-only
configuration queries), and `lift_guidance.guidance_message` can contain inline
Markdown links (such as `[Learn more](https://support.google.com/...)`). You
cannot filter or sort on `lift_guidance` subfields in `WHERE` or `ORDER BY`
clauses. For descriptions of the `LiftOutcomeEnum.LiftOutcome` values returned
in `lift_guidance.outcome`, see [Interpret Brand Lift
outcomes](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting#brand-lift-outcomes).

#### Reportability thresholds and empty responses

Brand Lift reporting is both **latency-gated** (requiring a 24--48 hour pipeline
delay after a study starts) and **response-gated** per surveyed measurement type
(`segments.brand_lift_measurement_type`) to satisfy statistical reportability
and privacy thresholds:

- **Positive response rates
  (`metrics.brand_lift_baseline_positive_response_rate*` and
  `metrics.brand_lift_exposed_positive_response_rate*`)** : At least **50** survey responses in the corresponding arm (exposed or suppressed).
- **Strict positive lift threshold (overall study on `LiftMeasurementConfig`
  or independent slice)** : Statistically positive lift (`p_value <= 0.50`) with at least **2,000** total responses and **860** responses per arm.
- **Relaxed slice positive lift threshold (on a breakdown resource when the
  overall study meets the strict threshold with positive lift)** : Statistically positive lift (`p_value <= 0.50`) with at least **500** total responses and **200** responses per arm.
- **Complete non-positive lift threshold (`NO_SIGNIFICANT_LIFT` versus
  `NOT_ENOUGH_DATA`)** : At least **4,100** total responses per metric when no statistically positive lift is detected.

Queries to `LiftMeasurementConfig` and the five Brand Lift breakdown resources
(`LiftMeasurementAgeRange`, `LiftMeasurementGender`, `LiftMeasurementDevice`,
`LiftMeasurementCampaign`, and `LiftMeasurementVideo`) return an empty response
(`results: []`) rather than an error in the following cases:

- The queried `customer_id` parameter is not on the allowlist or doesn't own the study.
- The `WHERE` date filters fall outside evaluated flight dates (`lift_measurement_flight.start_date` and `lift_measurement_flight.end_date`).
- The study or specific demographic, device, campaign, or video slice hasn't met the 24--48 hour reporting delay and survey response volume thresholds, even when `LiftMeasurementConfig` returns overall study results.

To troubleshoot empty responses, complete the following steps:

1. Query `lift_measurement_flight` to verify that `lift_measurement_flight.status = 'ENABLED'`, check that your `WHERE` date filters fall within `lift_measurement_flight.start_date` and `lift_measurement_flight.end_date`, and inspect survey progress in `lift_measurement_flight.survey_lift_measurement.response_collection_ratio_micros` (where `1000000` equals 100%).
2. Query `LiftMeasurementConfig` to confirm whether the overall study has generated reportable Brand Lift metrics before querying dimensional breakdown resources.

### Interpret Brand Lift outcomes

In Google Ads API v27 and later, the `lift_guidance.outcome` field returns a
`LiftOutcomeEnum.LiftOutcome` value that classifies the statistical state of
each returned row alongside human-readable remediation advice in
`lift_guidance.guidance_message`:

- **In-progress study outcomes** (when `lift_measurement_flight.status` is `ENABLED` and the current date in the customer's time zone is on or before `lift_measurement_flight.end_date` with `lift_measurement_flight.survey_lift_measurement.response_collection_ratio_micros` less than `1000000`):
  - `STUDY_IN_PROGRESS_WITH_LIFT`: The study is in progress and preliminary positive lift is emerging.
  - `STUDY_IN_PROGRESS_NO_LIFT_YET`: The study is in progress with sufficient initial volume, and no statistically significant lift has been detected yet.
  - `STUDY_IN_PROGRESS_COLLECTING_DATA`: The study is in progress and actively collecting initial survey responses toward statistical reporting thresholds.
- **Completed study outcomes** (when `lift_measurement_flight.end_date` has passed or `lift_measurement_flight.survey_lift_measurement.response_collection_ratio_micros` has reached `1000000`):
  - `POSITIVE_LIFT_DETECTED`: Statistically significant positive lift was detected for the completed study or slice.
  - `NO_SIGNIFICANT_LIFT`: The completed study or slice met statistical precision thresholds (at least 4,100 total responses per metric), and no statistically significant positive lift was detected.
  - `NOT_ENOUGH_DATA`: The completed study or slice did not meet the survey response thresholds required for statistical reportability (at least 2,000 total and 860 per-arm responses for positive lift on the overall study, 500 total and 200 per-arm responses for positive lift on a slice when the overall study has positive lift, or 4,100 total responses per metric when no positive lift is detected).

Apply the following guidelines when interpreting Brand Lift results:

- **In-progress versus completed flights (`STUDY_IN_PROGRESS_*`)** : While an `ENABLED` study flight is still in progress (before `lift_measurement_flight.end_date` passes and before `response_collection_ratio_micros` reaches `1000000`), survey responses and bias-corrected modeling are still stabilizing. Treat in-progress metrics as preliminary and avoid pausing campaigns or reducing budgets until the flight completes.
- **Positive lift (`POSITIVE_LIFT_DETECTED`)** : When positive Brand Lift is detected, query the dimensional breakdown resources (`LiftMeasurementAgeRange`, `LiftMeasurementGender`, `LiftMeasurementDevice`, `LiftMeasurementCampaign`, and `LiftMeasurementVideo`) to identify high-performing audience cohorts ("bright spots") and evaluate creative resonance across the brand funnel.
- **Insufficient data or no significant lift (`NOT_ENOUGH_DATA` or
  `NO_SIGNIFICANT_LIFT`)** : When survey response volume is insufficient (fewer than 4,100 total responses per metric without positive lift, or fewer than the 2,000/860 strict or 500/200 relaxed slice thresholds for positive lift) or no statistically significant lift is detected on a slice, do not treat this as campaign failure or exclude audiences based on single-slice sample insufficiency. Check overall study metrics on `LiftMeasurementConfig`, query other surveyed `segments.brand_lift_measurement_type` values (such as upper-funnel `RECALL` or `AWARENESS`), and check remaining breakdown dimensions.

### Example Brand Lift queries

Because flight metadata and lift statistics reside on separate resources,
querying flight details and performance statistics requires separate GAQL
queries.

#### Flight details query

To retrieve metadata for a Brand Lift flight, such as its status, measurement
type, scheduled dates, and survey collection progress, query the
[`LiftMeasurementFlight`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight.md.txt) resource:

```sql
SELECT
  lift_measurement_flight.lift_measurement_config_id,
  lift_measurement_flight.lift_measurement_flight_id,
  lift_measurement_flight.name,
  lift_measurement_flight.status,
  lift_measurement_flight.lift_type,
  lift_measurement_flight.start_date,
  lift_measurement_flight.end_date,
  lift_measurement_flight.survey_lift_measurement.response_collection_ratio_micros
FROM lift_measurement_flight
WHERE lift_measurement_flight.lift_measurement_config_id = CONFIG_ID
  AND lift_measurement_flight.lift_type = 'SURVEY'
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration (`lift_measurement_config.lift_measurement_config_id`).

#### Statistics query

To retrieve Brand Lift metrics, query the [`LiftMeasurementConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt)
resource or the appropriate breakdown resource. For example, the following query
retrieves Brand Lift metrics segmented by campaign and Brand Lift measurement
type from the [`LiftMeasurementCampaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementCampaign.md.txt) resource:

```sql
SELECT
  lift_measurement_campaign.lift_measurement_config_id,
  lift_measurement_campaign.campaign,
  segments.brand_lift_measurement_type,
  metrics.absolute_brand_lift,
  metrics.relative_brand_lift
FROM lift_measurement_campaign
WHERE lift_measurement_campaign.lift_measurement_config_id = CONFIG_ID
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.

## Conversion Lift reporting

In Google Ads API v25 and later, Conversion Lift reporting measures the incremental
impact of your ads on conversions and conversion value. Conversion Lift studies
compare converting behavior between an exposed group (users who were eligible to
see your ads) and an unexposed control group (users held back from seeing your
ads).

> [!IMPORTANT]
> **Important:** To query Conversion Lift data, the customer ID must be on the allowlist managed by Global Product Solutions (GPS). Contact your Google representative or GPS contact before starting your integration.

Conversion Lift configurations, flights, and experiment links are read-only in
the Google Ads API (all fields are `OUTPUT_ONLY`) and are configured in the Google Ads UI
or with your Google representative or GPS contact. Query the
`lift_measurement_config` resource by using the `customer_id` parameter of the
account that owns the study. A manager account can directly query cross-account
Conversion Lift studies that it owns. Query studies owned by a child account by
using the child account's `customer_id` parameter (optionally authenticated with
the `login-customer-id` header).

Conversion Lift reporting supports two study workflows, both of which share the
same [study and flight discovery](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#cls-discovery-workflow), [cumulative snapshot
date ranges](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting#cls-cumulative-snapshots), and [conversion action
scopes](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting#cls-conversion-action-scope):

- **[Standalone Conversion Lift reporting](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#cls-reporting)**: Measures overall incrementality, cost per incremental conversion (iCPA), and incremental return on ad spend (iROAS) across the selected conversion actions or all conversion actions from the measured campaigns in the study.
- **[A/B + Conversion Lift reporting](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#ab-lift-reporting)**: Measures per-arm incrementality and Bayesian winner scores between two competing experiment arms (control versus treatment) alongside overall study incrementality.

For assistance constructing valid queries to the `lift_measurement_config`
resource, use the
[Google Ads Query Builder](https://developers.google.com/google-ads/api/fields/v26/lift_measurement_config_query_builder.md.txt)
tool.

In Google Ads API v27 and later, you can select the read-only (`OUTPUT_ONLY`)
`lift_measurement_config.lift_guidance` field (`lift_guidance.outcome` and
`lift_guidance.guidance_message`, of type `LiftGuidance`) in the GAQL `SELECT`
clause on `lift_measurement_config` to receive row-level statistical
interpretation for standalone Conversion Lift and A/B + Conversion Lift queries.
On `lift_measurement_config`, `lift_guidance` is populated only when the query
also selects or filters on Lift metrics or segments (it is omitted on
metadata-only configuration queries), and `lift_guidance.guidance_message` can
contain inline Markdown links (such as
`[Learn more](https://support.google.com/...)`). You cannot filter or sort on
`lift_guidance` subfields in `WHERE` or `ORDER BY` clauses. The
`lift_guidance.outcome` field returns one of the following
`LiftOutcomeEnum.LiftOutcome` values:

- **In-progress study outcomes** (when `lift_measurement_flight.status` is `ENABLED` and the current date in the customer's time zone is on or before `lift_measurement_flight.end_date`):
  - `STUDY_IN_PROGRESS_WITH_LIFT`: The study is in progress and preliminary positive lift is emerging.
  - `STUDY_IN_PROGRESS_NO_LIFT_YET`: The study is in progress with sufficient initial volume, and no statistically significant lift has been detected yet.
  - `STUDY_IN_PROGRESS_COLLECTING_DATA`: The study is in progress and actively collecting initial conversion data toward statistical reporting thresholds.
- **Completed study outcomes** (when `lift_measurement_flight.end_date` has passed):
  - `POSITIVE_LIFT_DETECTED`: Statistically significant positive lift was detected for the completed study, experiment arm, or slice.
  - `AB_WINNER_WITH_LIFT`: An A/B + Conversion Lift study completed with a winning experiment arm head-to-head and statistically significant positive lift over the unexposed holdback group.
  - `AB_WINNER_PARITY_VS_CONTROL`: An A/B + Conversion Lift study completed with a winning experiment arm head-to-head, but at parity with the unexposed holdback group.
  - `NO_SIGNIFICANT_LIFT`: The completed study, experiment arm, or slice met statistical precision thresholds, and no statistically significant positive lift was detected.
  - `NOT_ENOUGH_DATA`: The completed study, experiment arm, or slice did not accumulate enough conversions to reach statistical precision thresholds.

> [!NOTE]
> **Note:** Queries to the `lift_measurement_config` resource return an empty response (`results: []`) rather than an error when the queried `customer_id` parameter is not on the allowlist or doesn't own the study, when `WHERE` date filters fall outside evaluated windows within the flight dates in the `lift_measurement_flight` resource, or when a newly started study hasn't completed its initial reporting delay (typically up to 7 days for Conversion Lift). To troubleshoot empty responses, query `lift_measurement_flight` to verify that `lift_measurement_flight.status = 'ENABLED'` (`LiftMeasurementFlightStatus` defines `ENABLED` for active flights and `STOPPED` for manually halted flights. To determine whether an `ENABLED` flight is in progress or completed, compare the current date in the customer's time zone against `lift_measurement_flight.start_date` and `lift_measurement_flight.end_date`) and that your `WHERE` date filters fall within `lift_measurement_flight.start_date` and `lift_measurement_flight.end_date`.

### Discover study configurations and flights

To report on a Conversion Lift study, first discover the study configuration and
its flight schedule:

1. **Retrieve the study configuration** : Query the [`LiftMeasurementConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt) resource to retrieve the study's name, holdback ratio ([`lift_measurement_config.conversion_lift_holdback_ratio_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt#conversion_lift_holdback_ratio_micros)), tracked conversion actions ([`lift_measurement_config.conversion_actions`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt#conversion_actions%5B%5D)), and---in Google Ads API v26 and later---actively linked campaigns ([`lift_measurement_config.campaigns`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt#campaigns%5B%5D)). The `conversion_lift_holdback_ratio_micros` field is expressed in micros where `1,000,000` equals 100% (for example, `300000` represents a 30% unexposed holdback group). If you don't know the study's `CONFIG_ID`, omit the `WHERE` clause to list all study configurations in the account.
2. **Retrieve flight observation windows** : Query the [`LiftMeasurementFlight`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight.md.txt) resource to find the scheduled flight dates ([`lift_measurement_flight.start_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight.md.txt#start_date) and [`lift_measurement_flight.end_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight.md.txt#end_date)) in the customer's time zone. Because a single `LiftMeasurementConfig` resource can group Brand Lift (`SURVEY`), Conversion Lift (`CONVERSION`), and Search Lift (`SEARCH`) flights, include the [`lift_measurement_flight.lift_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight.md.txt#lift_type) field in the `SELECT` clause and filter by `lift_measurement_flight.lift_type = 'CONVERSION'` in the `WHERE` clause. The `lift_measurement_flight.start_date` and `lift_measurement_flight.end_date` fields are sortable in `ORDER BY` clauses, but you cannot filter on them in a `WHERE` clause.

The following query retrieves the study configuration (omit the
`lift_measurement_config.campaigns` field in Google Ads API v25, as that field
requires Google Ads API v26 and later):

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  lift_measurement_config.name,
  lift_measurement_config.conversion_lift_holdback_ratio_micros,
  lift_measurement_config.conversion_actions,
  lift_measurement_config.campaigns
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration (`lift_measurement_config.lift_measurement_config_id`).

The following query retrieves the Conversion Lift flight schedule for the study:

```sql
SELECT
  lift_measurement_flight.lift_measurement_config_id,
  lift_measurement_flight.lift_measurement_flight_id,
  lift_measurement_flight.name,
  lift_measurement_flight.status,
  lift_measurement_flight.lift_type,
  lift_measurement_flight.start_date,
  lift_measurement_flight.end_date
FROM lift_measurement_flight
WHERE lift_measurement_flight.lift_measurement_config_id = CONFIG_ID
  AND lift_measurement_flight.lift_type = 'CONVERSION'
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration (`lift_measurement_config.lift_measurement_config_id`).

In Google Ads API v26 and later, you can also discover the lift measurement
configuration linked to a campaign directly from the
[`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign.md.txt) resource by querying the
[`campaign.lift_measurement_config`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.md.txt#lift_measurement_config) field. Querying this
field avoids having to cross-reference the
[`LiftMeasurementConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt) resource separately:

```sql
SELECT
  campaign.id,
  campaign.lift_measurement_config
FROM campaign
WHERE campaign.id = CAMPAIGN_ID
```

Replace the following:

- `CAMPAIGN_ID`: the integer ID of the campaign (`campaign.id`).

The `campaign.lift_measurement_config` field returns a resource name in the
format `customers/CUSTOMER_ID/liftMeasurementConfigs/CONFIG_ID`. If a campaign
has participated in multiple lift studies, this field identifies the most
recently linked configuration (active or inactive). In contrast, the
`lift_measurement_config.campaigns` field lists only actively linked campaigns.

### Query cumulative snapshot date ranges

Conversion Lift results are structured as **daily cumulative evaluation
snapshots** starting from the flight's start date:

- The [`segments.conversion_lift_start_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_lift_start_date) segment remains pinned to the flight's start date (`lift_measurement_flight.start_date`).
- The [`segments.conversion_lift_end_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_lift_end_date) segment advances daily up to the flight's end date (`lift_measurement_flight.end_date`).

Both `segments.conversion_lift_start_date` and
`segments.conversion_lift_end_date` are `INT64` fields formatted as unquoted
8-digit integers without hyphens in `YYYYMMDD` format (for example, `20260501`).
In contrast, the `lift_measurement_flight.start_date` and
`lift_measurement_flight.end_date` fields return date strings in ISO 8601
`YYYY-MM-DD` format (for example, `2026-05-01`). Unlike in Brand Lift and Search
Lift queries, the [`segments.date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#date) segment is incompatible with all
Conversion Lift metrics and segments. Selecting the `segments.date` segment
alongside Conversion Lift segments (such as
`segments.conversion_lift_start_date`) in the `SELECT` clause returns a
`QueryError.PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE` error, whereas
combining `segments.date` with Conversion Lift metrics returns a
`QueryError.PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE` error.

The newest computed snapshot can lag behind an active flight's end date while
processing data. Always query the `lift_measurement_config` resource for
available `(segments.conversion_lift_start_date,
segments.conversion_lift_end_date)` pairs ordered by
`segments.conversion_lift_end_date DESC` first to identify the most recent
evaluated snapshot.

The following query retrieves the available snapshot date ranges for a study:

```sql
SELECT
  segments.conversion_lift_start_date,
  segments.conversion_lift_end_date,
  segments.conversion_lift_included_conversion_action_types
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
  AND segments.conversion_lift_included_conversion_action_types = 'SELECTED'
ORDER BY segments.conversion_lift_end_date DESC
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.

### Filter by conversion action scope

Conversion Lift evaluates incrementality across two scopes defined by the
[`segments.conversion_lift_included_conversion_action_types`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_lift_included_conversion_action_types)
segment:

- `SELECTED`: Conversion actions selected during study setup, or all biddable (primary) conversion actions if custom conversion actions were not specified.
- `ALL`: All conversion actions from the campaigns measured in the study.

When you query the `lift_measurement_config` resource for Conversion Lift
metrics without filtering on the
`segments.conversion_lift_included_conversion_action_types` segment, the API
returns two rows per slice---one for `ALL` and one for `SELECTED`. In GAQL, any
non-date segment field (and any Conversion Lift snapshot date segment) filtered
in the `WHERE` clause must also appear in the `SELECT` clause. Otherwise, the
API returns a `QueryError.EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE` error.
When you filter by `segments.conversion_lift_included_conversion_action_types =
'SELECTED'` in the `WHERE` clause, include that segment in the `SELECT` clause.

### Standalone Conversion Lift reporting

Standalone Conversion Lift studies measure the incremental impact of your ads
against an unexposed holdback group without splitting campaigns into competing
treatment arms.

#### Query conversion lift and iCPA

Conversion Lift reports point estimates alongside 90% one-sided confidence
bounds (`*_p90_lower_bound` and `*_p90_upper_bound`, which together form an 80%
two-sided confidence interval) and p-values (`p_value <= 0.10` corresponds to
90% one-sided statistical significance):

- [`metrics.conversion_lift_baseline_conversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#conversion_lift_baseline_conversions): Modeled baseline conversions scaled to the size of the exposed group (so `metrics.conversion_lift_exposed_conversions` equals `metrics.conversion_lift_baseline_conversions +
  metrics.incremental_conversions`). Omitted when `<= 0`.
- [`metrics.conversion_lift_exposed_conversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#conversion_lift_exposed_conversions): Modeled conversions in the exposed group. Omitted when `<= 0`.
- [`metrics.incremental_conversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversions): Incremental conversions attributed to ad exposure, with 90% one-sided confidence bounds ([`metrics.incremental_conversions_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversions_p90_lower_bound) and [`metrics.incremental_conversions_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversions_p90_upper_bound)) and statistical significance ([`metrics.incremental_conversions_p_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversions_p_value)).
- [`metrics.cost_per_incremental_conversion`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#cost_per_incremental_conversion): Cost per incremental conversion (iCPA), with 90% one-sided confidence bounds ([`metrics.cost_per_incremental_conversion_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#cost_per_incremental_conversion_p90_lower_bound) and [`metrics.cost_per_incremental_conversion_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#cost_per_incremental_conversion_p90_upper_bound)). Returned in standard currency units of the study-owning account (for example, `11.5` represents `$11.50` in USD, not micros---unlike the `metrics.cost_micros` or `metrics.cost_per_conversion` metrics). The `metrics.cost_per_incremental_conversion_p90_upper_bound` field is unset when `metrics.incremental_conversions_p90_lower_bound <= 0`.
- [`metrics.relative_conversion_lift`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#relative_conversion_lift): Relative lift in conversions expressed as a decimal proportion (for example, `0.20` represents a 20% lift), with 90% one-sided confidence bounds ([`metrics.relative_conversion_lift_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#relative_conversion_lift_p90_lower_bound) and [`metrics.relative_conversion_lift_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#relative_conversion_lift_p90_upper_bound)).

The API omits Conversion Lift metrics on returned rows in the following cases:

- The inclusive snapshot window is fewer than 4 days.
- Unscaled observed conversion volume is less than the minimum precision thresholds (fewer than 65 observed baseline conversions in the holdback group or fewer than 150 observed exposed conversions, evaluated before scaling `metrics.conversion_lift_baseline_conversions`).
- Measured lift is non-positive (`metrics.incremental_conversions_p_value >
  0.5` for conversion metrics, or `metrics.incremental_conversion_value_p_value > 0.5` for conversion value metrics).
- In Google Ads API v27 and later, iROAS metrics (`metrics.incremental_conversion_value_per_cost*`) and conversion-value winner score metrics (`metrics.incremental_conversion_value_winner_score` and `metrics.incremental_conversion_value_per_cost_winner_score`) are queried on a study that was configured during setup with **conversion
  count** rather than **conversion value** as its primary metric. Non-cost conversion value metrics (`metrics.conversion_lift_baseline_conversion_value`, `metrics.conversion_lift_exposed_conversion_value`, `metrics.incremental_conversion_value*`, and `metrics.relative_conversion_value_lift*`) remain populated on conversion-count-primary studies whenever conversion value lift is reportable.
- Multiple rows or studies are aggregated because you omitted the `lift_measurement_config.lift_measurement_config_id`, `segments.conversion_lift_start_date`, `segments.conversion_lift_end_date`, or `segments.conversion_lift_included_conversion_action_types` fields from the `SELECT` clause.

Apply the following guidelines when interpreting standalone Conversion Lift
outcomes:

- **In-progress versus completed flights (`STUDY_IN_PROGRESS_*`)** : While an `ENABLED` study flight is still in progress (when the current date in the customer's time zone is on or before `lift_measurement_flight.end_date`), baseline and treatment conversion modeling and delayed conversion attribution are still stabilizing. Treat in-progress metrics as preliminary and avoid pausing campaigns or reducing budgets until the flight completes.
- **Positive lift (`POSITIVE_LIFT_DETECTED`)** : Conversion Lift metric reportability and `lift_guidance.outcome = 'POSITIVE_LIFT_DETECTED'` trigger whenever measured lift is positive (`p_value <= 0.50`, corresponding to at least 50% certainty with a positive point estimate, whereas `p_value <= 0.10` indicates 90% one-sided statistical significance where `*_p90_lower_bound >= 0`) and minimum precision thresholds (at least 4 snapshot days, at least 65 unscaled baseline conversions, and at least 150 unscaled exposed conversions) are met. When positive lift is detected, query [dimensional breakdowns](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#cls-dimensional-breakdowns) (demographics, device, country, or conversion category and conversion action) to identify high-performing cohorts ("bright spots").
- **Insufficient data or no significant lift (`NOT_ENOUGH_DATA` or
  `NO_SIGNIFICANT_LIFT`)** : When data volume is insufficient (fewer than 65 unscaled baseline conversions or fewer than 150 unscaled exposed conversions) or no statistically significant lift is detected on a slice, do not treat this as campaign failure or exclude audiences based on single-slice sample insufficiency. Check overall study metrics and query `segments.conversion_lift_included_conversion_action_types = 'ALL'` (if `SELECTED` shows no lift) or remaining dimensional breakdowns to verify whether positive lift was isolated elsewhere.

The following query retrieves overall conversion incrementality, confidence
bounds, and iCPA:

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  segments.conversion_lift_start_date,
  segments.conversion_lift_end_date,
  segments.conversion_lift_included_conversion_action_types,
  metrics.conversion_lift_baseline_conversions,
  metrics.conversion_lift_exposed_conversions,
  metrics.incremental_conversions,
  metrics.incremental_conversions_p90_lower_bound,
  metrics.incremental_conversions_p90_upper_bound,
  metrics.incremental_conversions_p_value,
  metrics.cost_per_incremental_conversion,
  metrics.cost_per_incremental_conversion_p90_lower_bound,
  metrics.cost_per_incremental_conversion_p90_upper_bound,
  metrics.relative_conversion_lift,
  metrics.relative_conversion_lift_p90_lower_bound,
  metrics.relative_conversion_lift_p90_upper_bound
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
  AND segments.conversion_lift_start_date = START_DATE
  AND segments.conversion_lift_end_date = END_DATE
  AND segments.conversion_lift_included_conversion_action_types = 'SELECTED'
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.
- `START_DATE`: the snapshot start date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260501`).
- `END_DATE`: the snapshot end date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260515`).

#### Query conversion value lift and iROAS

To evaluate incremental revenue generated by your ad spend, query conversion
value metrics and the
[`metrics.incremental_conversion_value_per_cost`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_per_cost) metric.
Non-cost conversion value metrics
(`metrics.conversion_lift_baseline_conversion_value`,
`metrics.conversion_lift_exposed_conversion_value`,
`metrics.incremental_conversion_value*`, and
`metrics.relative_conversion_value_lift*`) are populated whenever the study has
reportable conversion value lift, regardless of whether the study's primary
metric is conversion count or conversion value. In Google Ads API v27 and later, the
iROAS metrics (`metrics.incremental_conversion_value_per_cost*`)---along with
`metrics.incremental_conversion_value_winner_score` and
`metrics.incremental_conversion_value_per_cost_winner_score`---are returned only
when the study was configured during setup with **conversion value** as its
primary metric (and are omitted on conversion-count-primary studies):

- [`metrics.conversion_lift_baseline_conversion_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#conversion_lift_baseline_conversion_value): Modeled baseline conversion value in the currency of the study-owning account, scaled to the size of the exposed group. Omitted when `<= 0`.
- [`metrics.conversion_lift_exposed_conversion_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#conversion_lift_exposed_conversion_value): Modeled conversion value in the exposed group. Omitted when `<= 0`.
- [`metrics.incremental_conversion_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value): Incremental conversion value attributed to ads, with 90% one-sided confidence bounds ([`metrics.incremental_conversion_value_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_p90_lower_bound) and [`metrics.incremental_conversion_value_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_p90_upper_bound)) and statistical significance ([`metrics.incremental_conversion_value_p_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_p_value)).
- [`metrics.relative_conversion_value_lift`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#relative_conversion_value_lift): Relative lift in conversion value expressed as a decimal proportion (for example, `0.20` represents a 20% lift), with 90% one-sided confidence bounds ([`metrics.relative_conversion_value_lift_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#relative_conversion_value_lift_p90_lower_bound) and [`metrics.relative_conversion_value_lift_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#relative_conversion_value_lift_p90_upper_bound)).
- [`metrics.incremental_conversion_value_per_cost`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_per_cost): Incremental return on ad spend (iROAS), expressed as a dimensionless currency ratio (for example, `2.5` represents `$2.50` of incremental conversion value per `$1.00` spent in the study-owning account's currency), with 90% one-sided confidence bounds ([`metrics.incremental_conversion_value_per_cost_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_per_cost_p90_lower_bound) and [`metrics.incremental_conversion_value_per_cost_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_per_cost_p90_upper_bound)). The `metrics.incremental_conversion_value_per_cost_p90_lower_bound` field is unset when `metrics.incremental_conversion_value_p90_lower_bound < 0`.

The following query retrieves conversion value incrementality, confidence
bounds, and iROAS:

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  segments.conversion_lift_start_date,
  segments.conversion_lift_end_date,
  segments.conversion_lift_included_conversion_action_types,
  metrics.conversion_lift_baseline_conversion_value,
  metrics.conversion_lift_exposed_conversion_value,
  metrics.incremental_conversion_value,
  metrics.incremental_conversion_value_p90_lower_bound,
  metrics.incremental_conversion_value_p90_upper_bound,
  metrics.incremental_conversion_value_p_value,
  metrics.incremental_conversion_value_per_cost,
  metrics.incremental_conversion_value_per_cost_p90_lower_bound,
  metrics.incremental_conversion_value_per_cost_p90_upper_bound,
  metrics.relative_conversion_value_lift,
  metrics.relative_conversion_value_lift_p90_lower_bound,
  metrics.relative_conversion_value_lift_p90_upper_bound
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
  AND segments.conversion_lift_start_date = START_DATE
  AND segments.conversion_lift_end_date = END_DATE
  AND segments.conversion_lift_included_conversion_action_types = 'SELECTED'
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.
- `START_DATE`: the snapshot start date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260501`).
- `END_DATE`: the snapshot end date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260515`).

#### Segment results by dimension

Segment incremental conversion metrics by conversion category, conversion
action, demographics, device, or geography. When querying the
`lift_measurement_config` resource, select only compatible segment combinations:

- **Conversion category and conversion action segments** : You can select the [`segments.conversion_lift_conversion_category`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_lift_conversion_category), [`segments.conversion_action`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_action), and [`segments.conversion_action_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_action_name) segments individually, pair them with one another, or combine them with at most one demographic, device, or country dimension. (When querying the `segments.experiment_arm` segment, only the `segments.conversion_lift_conversion_category` segment is compatible.)
- **Demographic, device, and geographic segments** : The [`segments.age_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#age_range), [`segments.gender`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#gender), [`segments.device`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#device), and country ([`segments.country`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#country) with [`segments.country_localized_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#country_localized_name)) dimensions are mutually incompatible with one another and with the `segments.experiment_arm` segment. Select at most one of these four dimensions per query.

Selecting mutually incompatible segments in the `SELECT` clause fails query
validation and returns a
`QueryError.PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE` error. Use the
[Google Ads Query Builder](https://developers.google.com/google-ads/api/fields/v26/lift_measurement_config_query_builder.md.txt) to
validate segment combinations interactively.

Evaluate cost-efficiency metrics (`metrics.cost_per_incremental_conversion*` and
`metrics.incremental_conversion_value_per_cost*`) only on **overall study rows**
or **`segments.experiment_arm` rows** . In Google Ads API v25 and v26, the schema
permits selecting the six cost-ratio metrics
([`metrics.cost_per_incremental_conversion`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#cost_per_incremental_conversion),
`metrics.cost_per_incremental_conversion_p90_lower_bound`,
`metrics.cost_per_incremental_conversion_p90_upper_bound`,
[`metrics.incremental_conversion_value_per_cost`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_per_cost),
`metrics.incremental_conversion_value_per_cost_p90_lower_bound`, and
`metrics.incremental_conversion_value_per_cost_p90_upper_bound`) with the eight
non-arm slice segments (`segments.conversion_action`,
`segments.conversion_action_name`,
`segments.conversion_lift_conversion_category`, `segments.age_range`,
`segments.gender`, `segments.device`, `segments.country`, and
`segments.country_localized_name`). Starting in Google Ads API v27, selecting any of
these six cost-ratio metrics with any of those eight non-arm slice segments
fails query validation and returns a
`QueryError.PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE` error.
Non-cost conversion value metrics
(`metrics.conversion_lift_baseline_conversion_value`,
`metrics.conversion_lift_exposed_conversion_value`,
`metrics.incremental_conversion_value*`, and
`metrics.relative_conversion_value_lift*`) remain supported on conversion
category, conversion action, demographic, device, and country segments whenever
conversion value lift is reportable (regardless of whether the study's primary
metric is conversion count or conversion value).

To evaluate lift across conversion categories defined in the
[`ConversionActionCategory`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory.md.txt) enum (such as `PURCHASE`,
`SIGNUP`, or `SUBMIT_LEAD_FORM`), segment results by the
[`segments.conversion_lift_conversion_category`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_lift_conversion_category) segment:

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  segments.conversion_lift_start_date,
  segments.conversion_lift_end_date,
  segments.conversion_lift_included_conversion_action_types,
  segments.conversion_lift_conversion_category,
  metrics.conversion_lift_baseline_conversions,
  metrics.conversion_lift_exposed_conversions,
  metrics.incremental_conversions,
  metrics.relative_conversion_lift
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
  AND segments.conversion_lift_start_date = START_DATE
  AND segments.conversion_lift_end_date = END_DATE
  AND segments.conversion_lift_included_conversion_action_types = 'SELECTED'
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.
- `START_DATE`: the snapshot start date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260501`).
- `END_DATE`: the snapshot end date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260515`).

The [`segments.conversion_action`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_action) segment returns the
conversion action resource name in the format
`customers/CUSTOMER_ID/conversionActions/CONVERSION_ACTION_ID`. Select the
[`segments.conversion_action_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_action_name) segment on the
`lift_measurement_config` resource to retrieve human-readable conversion action
names without querying the `conversion_action` resource separately. The
following query segments Conversion Lift metrics by conversion action,
conversion action name, and conversion category:

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  segments.conversion_lift_start_date,
  segments.conversion_lift_end_date,
  segments.conversion_lift_included_conversion_action_types,
  segments.conversion_action,
  segments.conversion_action_name,
  segments.conversion_lift_conversion_category,
  metrics.conversion_lift_baseline_conversions,
  metrics.conversion_lift_exposed_conversions,
  metrics.incremental_conversions,
  metrics.relative_conversion_lift
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
  AND segments.conversion_lift_start_date = START_DATE
  AND segments.conversion_lift_end_date = END_DATE
  AND segments.conversion_lift_included_conversion_action_types = 'SELECTED'
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.
- `START_DATE`: the snapshot start date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260501`).
- `END_DATE`: the snapshot end date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260515`).

The following query segments Conversion Lift metrics by the
[`segments.device`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#device) segment. Substitute the
[`segments.age_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#age_range) or [`segments.gender`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#gender) segment
in separate requests to retrieve demographic breakdowns (optionally combined
with conversion category or conversion action segments):

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  segments.conversion_lift_start_date,
  segments.conversion_lift_end_date,
  segments.conversion_lift_included_conversion_action_types,
  segments.device,
  metrics.conversion_lift_baseline_conversions,
  metrics.conversion_lift_exposed_conversions,
  metrics.incremental_conversions,
  metrics.relative_conversion_lift
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
  AND segments.conversion_lift_start_date = START_DATE
  AND segments.conversion_lift_end_date = END_DATE
  AND segments.conversion_lift_included_conversion_action_types = 'SELECTED'
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.
- `START_DATE`: the snapshot start date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260501`).
- `END_DATE`: the snapshot end date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260515`).

To break down results by geography, include the
[`segments.country`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#country) and
[`segments.country_localized_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#country_localized_name) segments (optionally
combined with conversion category or conversion action segments). The
`segments.country` segment returns a global geo target constant resource name in
the format `geoTargetConstants/CRITERION_ID` (for example,
`geoTargetConstants/2840` for the United States).

The following query segments Conversion Lift metrics by country criterion
resource name and localized country name:

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  segments.conversion_lift_start_date,
  segments.conversion_lift_end_date,
  segments.conversion_lift_included_conversion_action_types,
  segments.country,
  segments.country_localized_name,
  metrics.conversion_lift_baseline_conversions,
  metrics.conversion_lift_exposed_conversions,
  metrics.incremental_conversions,
  metrics.relative_conversion_lift
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
  AND segments.conversion_lift_start_date = START_DATE
  AND segments.conversion_lift_end_date = END_DATE
  AND segments.conversion_lift_included_conversion_action_types = 'SELECTED'
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.
- `START_DATE`: the snapshot start date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260501`).
- `END_DATE`: the snapshot end date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260515`).

### A/B + Conversion Lift reporting

In Google Ads API v25 and later, A/B + Conversion Lift studies combine a two-arm
experiment (comparing control versus treatment strategies) with holdback
measurement in the Google Ads API to assess individual arm incrementality and compute
Bayesian winner scores. Unlike [direct experiment
reporting](https://developers.google.com/google-ads/api/docs/experiments/reporting#direct-experiment-reporting)
on the `experiment` resource, which compares unadjusted arm-versus-arm traffic
metrics, querying the `lift_measurement_config` resource with the
`segments.experiment_arm` segment measures each arm's incremental lift against
an unexposed holdback baseline.

#### Discover experiments and arms

An A/B + Conversion Lift study links a [`LiftMeasurementConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt)
resource to a two-arm [`experiment`](https://developers.google.com/google-ads/api/fields/v26/experiment.md.txt) resource through the
read-only (`OUTPUT_ONLY`)
[`experiment.lift_measurement_config`](https://developers.google.com/google-ads/api/reference/rpc/v26/Experiment.md.txt#lift_measurement_config) field.

To discover the linked experiment and its arms in a single request, query the
[`ExperimentArm`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentArm.md.txt) resource with attributed `experiment` fields and
filter on the `experiment.lift_measurement_config` field. The response includes
each arm's control status ([`experiment_arm.control`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentArm.md.txt#control)), traffic
split ([`experiment_arm.traffic_split`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentArm.md.txt#traffic_split)), linked
campaigns ([`experiment_arm.campaigns`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentArm.md.txt#campaigns%5B%5D)), and resource name.
Use the returned `experiment_arm.resource_name` value (formatted as
`customers/CUSTOMER_ID/experimentArms/EXPERIMENT_ID~ARM_ID`) to filter on the
[`segments.experiment_arm`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#experiment_arm) segment:

```sql
SELECT
  experiment.experiment_id,
  experiment.name,
  experiment.lift_measurement_config,
  experiment_arm.resource_name,
  experiment_arm.name,
  experiment_arm.control,
  experiment_arm.traffic_split,
  experiment_arm.campaigns
FROM experiment_arm
WHERE experiment.lift_measurement_config =
  'customers/CUSTOMER_ID/liftMeasurementConfigs/CONFIG_ID'
```

Replace the following:

- `CUSTOMER_ID`: the 10-digit customer ID of the account that owns the study (without hyphens).
- `CONFIG_ID`: the integer ID of the lift measurement configuration.

If you start from a known `EXPERIMENT_ID` (or want to list all lift-enabled
experiments in the account), run the same `experiment_arm` query filtered by
`WHERE experiment.experiment_id = EXPERIMENT_ID` (or `WHERE
experiment.lift_measurement_config IS NOT NULL`).

#### Query per-arm incrementality and winner scores

To measure incrementality for each arm and evaluate the statistical probability
that an arm is the winner, include the [`segments.experiment_arm`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#experiment_arm)
segment in your query to the `lift_measurement_config` resource.

The following Bayesian winner score metrics evaluate the probability (from `0.0`
to `1.0`, summing to `1.0` across both arms when both arms have reportable
positive lift) that a given arm is superior:

- [`metrics.incremental_conversions_winner_score`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversions_winner_score): The probability that this arm is the winner for incremental conversions, normalized by arm traffic split (`experiment_arm.traffic_split`).
- [`metrics.incremental_conversion_value_winner_score`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_winner_score): The probability that this arm is the winner for incremental conversion value, normalized by arm traffic split (`experiment_arm.traffic_split`). In Google Ads API v27 and later, populated only when the study's primary metric is conversion value, and omitted (left unset) on conversion-count-primary studies.
- [`metrics.cost_per_incremental_conversion_winner_score`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#cost_per_incremental_conversion_winner_score): The probability that this arm is the winner for cost per incremental conversion (lowest iCPA), normalized by spend.
- [`metrics.incremental_conversion_value_per_cost_winner_score`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_conversion_value_per_cost_winner_score): The probability that this arm is the winner for incremental conversion value per cost (highest iROAS), normalized by spend. In Google Ads API v27 and later, populated only when the study's primary metric is conversion value, and omitted (left unset) on conversion-count-primary studies.

The following query retrieves per-arm incrementality and Bayesian winner scores
for both arms:

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  segments.conversion_lift_start_date,
  segments.conversion_lift_end_date,
  segments.conversion_lift_included_conversion_action_types,
  segments.experiment_arm,
  metrics.conversion_lift_baseline_conversions,
  metrics.conversion_lift_exposed_conversions,
  metrics.incremental_conversions,
  metrics.cost_per_incremental_conversion,
  metrics.incremental_conversions_winner_score,
  metrics.cost_per_incremental_conversion_winner_score,
  metrics.incremental_conversion_value,
  metrics.incremental_conversion_value_winner_score,
  metrics.incremental_conversion_value_per_cost_winner_score
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
  AND segments.conversion_lift_start_date = START_DATE
  AND segments.conversion_lift_end_date = END_DATE
  AND segments.conversion_lift_included_conversion_action_types = 'SELECTED'
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.
- `START_DATE`: the snapshot start date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260501`).
- `END_DATE`: the snapshot end date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260515`).

To filter for a single arm, add `AND segments.experiment_arm =
'customers/CUSTOMER_ID/experimentArms/EXPERIMENT_ID~ARM_ID'` to the `WHERE`
clause, where `EXPERIMENT_ID` is the experiment ID and `ARM_ID` is the arm ID
returned in the `experiment_arm.resource_name` field. The
`segments.experiment_arm` segment supports filtering in `WHERE` clauses (`=`,
`!=`, `IN`, `NOT IN`), but you cannot sort on it in an `ORDER BY` clause.

#### Interpret A/B + Conversion Lift outcomes

An A/B + Conversion Lift study evaluates two hypotheses simultaneously:
head-to-head arm superiority (`metrics.*_winner_score`) and causal lift against
the unexposed holdback group (`metrics.incremental_*` and `*_p_value`). While an
`ENABLED` study flight is still in progress (`STUDY_IN_PROGRESS_*`, when the
current date in the customer's time zone is on or before
`lift_measurement_flight.end_date`), head-to-head arm comparison and holdback
conversion modeling are still stabilizing. Treat in-progress metrics as
preliminary and avoid promoting an experiment arm or reallocating budgets until
the flight completes.

On completed studies, an experiment arm is classified as a head-to-head winner
when it meets the minimum precision thresholds (at least 4 snapshot days, 65
unscaled baseline conversions, and 150 unscaled exposed conversions), has `0 <=
p_value <= 0.50`, and achieves a Bayesian winner score **greater than `0.55`**
(`> 0.55`) on the study's primary metric. This dual-hypothesis evaluation
produces two distinct winner states (also reflected in `lift_guidance.outcome`
in Google Ads API v27 and later):

- **Clear winner with causal lift (`AB_WINNER_WITH_LIFT`)** : The winning arm outperforms the competing arm head-to-head (`winner_score > 0.55`) and generates statistically significant incremental conversions or conversion value over the unexposed holdback group. Promote or scale the winning arm's strategy, and query dimensional breakdowns to review high-performing cohorts.
- **Head-to-head winner at parity with holdback
  (`AB_WINNER_PARITY_VS_CONTROL`)** : The winning arm outperforms the competing arm head-to-head (`winner_score > 0.55`), but neither arm produces statistically significant incremental lift over the unexposed holdback group at the queried level. Before scaling spend on the winning arm, query `ALL` conversions (`segments.conversion_lift_included_conversion_action_types = 'ALL'`) and `segments.conversion_lift_conversion_category` breakdowns to verify whether positive causal lift was isolated elsewhere.

The `POSITIVE_LIFT_DETECTED` outcome applies across A/B + Conversion Lift query
granularities as follows:

- **Combined-arm (`OVERALL`) study rows** (queries without `segments.experiment_arm`): The study generated positive lift over the unexposed holdback group (`p_value <= 0.50`), and neither arm achieved a head-to-head winner score greater than `0.55`.
- **Per-arm (`segments.experiment_arm`) rows** : When one arm wins (`winner_score > 0.55`) and both arms achieve positive lift over the holdback group, the winning arm row returns `AB_WINNER_WITH_LIFT` while the non-winning arm row returns `POSITIVE_LIFT_DETECTED`.
- **Conversion category (`segments.conversion_lift_conversion_category`) slice
  rows** : Positive lift rows always return `POSITIVE_LIFT_DETECTED` because winner scores are not evaluated per conversion category.

When a slice returns `NOT_ENOUGH_DATA` or `NO_SIGNIFICANT_LIFT`, do not pause
arms or exclude audiences based on single-slice sample insufficiency. Check
overall study metrics and `ALL` conversions
(`segments.conversion_lift_included_conversion_action_types = 'ALL'`).

#### Query combined-arm and multi-study results

When you omit the `segments.experiment_arm` segment from a query on the
`lift_measurement_config` resource, the API returns study-level incrementality
aggregated across both combined arms. On combined-arm queries, omit the four
`metrics.*_winner_score` metrics, which apply only across competing arms and are
omitted (left unset) on combined-arm rows without `segments.experiment_arm`. Use
the study-level queries in [Query conversion lift and
iCPA](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting#cls-overall-incrementality-query) and [Query conversion value lift and
iROAS](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting#cls-revenue-lift).

When you segment A/B + Conversion Lift results by the
[`segments.experiment_arm`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#experiment_arm) segment, the API supports only the
[`segments.conversion_lift_conversion_category`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_lift_conversion_category) segment as an
additional breakdown dimension. Because arm spend is not attributed to
individual conversion categories, evaluate conversion and conversion value lift
metrics (omitting iCPA and iROAS metrics, which fail query validation with a
`QueryError.PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE` error in
Google Ads API v27 and later) when you include the
`segments.conversion_lift_conversion_category` segment. The
[`segments.conversion_action`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_action),
[`segments.conversion_action_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#conversion_action_name),
[`segments.age_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#age_range), [`segments.gender`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#gender),
[`segments.device`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#device), [`segments.country`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#country),
[`segments.country_localized_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#country_localized_name), and
[`segments.date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#date) segments are incompatible with the
`segments.experiment_arm` segment and with the `metrics.*_winner_score` metrics.
Selecting any of these incompatible segments alongside `segments.experiment_arm`
returns a `QueryError.PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE` error (and
a `QueryError.PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE` error if
the query also selects any `metrics.*_winner_score` metric).

To retrieve results for multiple study configurations in a single request,
filter with the `IN` operator:

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  segments.conversion_lift_start_date,
  segments.conversion_lift_end_date,
  segments.conversion_lift_included_conversion_action_types,
  segments.experiment_arm,
  segments.conversion_lift_conversion_category,
  metrics.incremental_conversions,
  metrics.incremental_conversions_winner_score,
  metrics.incremental_conversion_value,
  metrics.incremental_conversion_value_winner_score
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id IN (
    CONFIG_ID_1, CONFIG_ID_2)
  AND segments.conversion_lift_start_date = START_DATE
  AND segments.conversion_lift_end_date = END_DATE
  AND segments.conversion_lift_included_conversion_action_types = 'SELECTED'
```

Replace the following:

- `CONFIG_ID_1`: the integer ID of the first lift measurement configuration.
- `CONFIG_ID_2`: the integer ID of the second lift measurement configuration.
- `START_DATE`: the snapshot start date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260501`).
- `END_DATE`: the snapshot end date as an unquoted 8-digit `YYYYMMDD` integer (for example, `20260515`).

Exact date equality (`= START_DATE` and `= END_DATE`) returns rows only for
studies that share that exact snapshot window. When querying studies with
different flight start dates or latest evaluated snapshot dates, filter with
range operators (`>=` and `<=`) or omit the date filters from the `WHERE` clause
while keeping both the `segments.conversion_lift_start_date` and
`segments.conversion_lift_end_date` segments in the `SELECT` clause.

## Search Lift reporting

To measure the increase in organic search query volume driven by your ad
campaigns in Google Ads API v26 and later, query Search Lift reporting resources.
Search Lift quantifies the difference in search behavior for your brand or
products between users exposed to your ads and an unexposed control group.

> [!IMPORTANT]
> **Important:** To query Search Lift data, the customer ID must be on the allowlist managed by Global Product Solutions (GPS). Contact your Google representative or GPS contact before starting your integration.

### Search Lift resources and segmentation

Query the [`SearchLiftKeywordBundle`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchLiftKeywordBundle.md.txt) resource to
retrieve details about keyword bundles configured for Search Lift studies. The
`SearchLiftKeywordBundle` resource is read-only in the Google Ads API (all fields are
`OUTPUT_ONLY`), and keyword bundles are configured in the Google Ads UI or by your
Google representative or GPS contact. Its queryable fields in GAQL are
`resource_name`, `search_lift_keyword_bundle_id`, `source`
([`SearchLiftMatchingInfoSource`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchLiftMatchingInfoSourceEnum.SearchLiftMatchingInfoSource.md.txt)), and `status`
([`SearchLiftKeywordBundleStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchLiftKeywordBundleStatusEnum.SearchLiftKeywordBundleStatus.md.txt)) (the repeated `keywords`
field is not selectable in GAQL queries).

Query the [`LiftMeasurementConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt) resource to retrieve Search
Lift metrics and overall study configurations.

In Google Ads API v27 and later, you can also select the read-only (`OUTPUT_ONLY`)
`lift_measurement_config.lift_guidance` field (`lift_guidance.outcome` and
`lift_guidance.guidance_message`, of type `LiftGuidance`) in the GAQL `SELECT`
clause on `lift_measurement_config` when querying Search Lift metrics or
segments (`segments.search_lift_keyword_bundle` or `segments.search_property`).
On `lift_measurement_config`, `lift_guidance` is omitted on metadata-only
configuration queries, and `lift_guidance.guidance_message` can contain inline
Markdown links (such as `[Learn more](https://support.google.com/...)`). For
Search Lift, `lift_guidance.outcome` returns `STUDY_IN_PROGRESS_WITH_LIFT`,
`STUDY_IN_PROGRESS_NO_LIFT_YET`, `STUDY_IN_PROGRESS_COLLECTING_DATA`,
`POSITIVE_LIFT_DETECTED` (at least 70% certainty, `p_value <= 0.30`),
`NO_SIGNIFICANT_LIFT`, or `NOT_ENOUGH_DATA` (evaluated against thresholds of at
least 1,000,000 overall impressions or 100,000 slice impressions, at least 75
observed searches, and at least 17 of 20 cookie buckets, where a single
underpowered keyword bundle causes overall study results to report
`NOT_ENOUGH_DATA`).

> [!NOTE]
> **Note:** Queries to `lift_measurement_config` for Search Lift return an empty response (`results: []`) when the queried `customer_id` parameter is not on the allowlist or doesn't own the study, when `WHERE` date filters fall outside the flight boundaries in `lift_measurement_flight`, when no impressions were served after the keyword bundle was created, or when the flight is a passive Search Lift flight.

Segment Search Lift performance across the following dimensions:

- [`segments.search_lift_keyword_bundle`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#search_lift_keyword_bundle): Segment by the keyword bundle resource name. Compatible with the `segments.search_property`, `segments.date`, and demographic segments (`segments.device`, `segments.age_range`, and `segments.gender`). Every keyword bundle reports the full campaign cost and impressions, and keywords can belong to more than one bundle. Do not sum `metrics.search_lift_cost_micros`, `metrics.search_lift_impressions`, or Search Lift metrics across keyword bundles.
- [`segments.search_property`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#search_property): Segment by the search property where the search occurred, defined by the [`SearchLiftSearchProperty`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchLiftSearchPropertyEnum.SearchLiftSearchProperty.md.txt) enum (such as `GOOGLE_SEARCH` or `YOUTUBE`). The `segments.search_property` segment is compatible only with the `segments.search_lift_keyword_bundle` and `segments.date` segments. Combining `segments.search_property` with demographic segments (`segments.device`, `segments.age_range`, or `segments.gender`) fails query validation. Because `segments.search_property` partitions where subsequent organic searches occurred rather than where ads were served, rows segmented by `segments.search_property` repeat unpartitioned campaign-level cost and impressions in Google Ads API v26. Starting in Google Ads API v27, all eight spend and impression metrics (`metrics.search_lift_cost_micros`, `metrics.search_lift_impressions`, `metrics.normalized_incremental_searches_per_cost*`, and `metrics.normalized_incremental_searches_per_impression*`) are incompatible with `segments.search_property` and fail query validation with a `QueryError.PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE` error.
- Demographic and date segments: [`segments.device`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#device), [`segments.age_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#age_range), [`segments.gender`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#gender), and [`segments.date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments.md.txt#date).

### Search Lift metrics

The [`LiftMeasurementConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig.md.txt) resource provides Search Lift
metrics to evaluate search behavior changes:

- [`metrics.relative_search_lift`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#relative_search_lift): The difference in search query volume between the exposed and control groups, expressed as a fraction of search queries in the control group.
- [`metrics.relative_search_lift_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#relative_search_lift_p90_lower_bound) and [`metrics.relative_search_lift_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#relative_search_lift_p90_upper_bound): The 90% one-sided confidence bounds (which together form an 80% two-sided confidence interval) for relative search lift.
- [`metrics.incremental_searches_p_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#incremental_searches_p_value): The p-value for incremental searches, representing the statistical probability that the observed increase in search queries occurred by chance.
- [`metrics.search_lift_cost_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#search_lift_cost_micros): The total cost (in micros) of ad impressions served for this Search Lift measurement slice. Incompatible with `segments.search_property` in Google Ads API v27 and later.
- [`metrics.search_lift_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#search_lift_impressions): The total number of ad impressions served for this Search Lift measurement slice. Incompatible with `segments.search_property` in Google Ads API v27 and later.

The following normalized incremental metrics---along with their corresponding 90%
one-sided confidence bounds (`*_p90_lower_bound` and `*_p90_upper_bound`)---are
reported when lift is statistically positive:

- [`metrics.normalized_incremental_searches`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#normalized_incremental_searches) (with [`metrics.normalized_incremental_searches_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#normalized_incremental_searches_p90_lower_bound) and [`metrics.normalized_incremental_searches_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#normalized_incremental_searches_p90_upper_bound)): Estimated number of incremental search queries driven by ad exposure, normalized across exposed and control groups.
- [`metrics.normalized_incremental_searches_per_cost`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#normalized_incremental_searches_per_cost) (with [`metrics.normalized_incremental_searches_per_cost_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#normalized_incremental_searches_per_cost_p90_lower_bound) and [`metrics.normalized_incremental_searches_per_cost_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#normalized_incremental_searches_per_cost_p90_upper_bound)): Estimated incremental search queries generated per unit of ad spend. Incompatible with `segments.search_property` in Google Ads API v27 and later.
- [`metrics.normalized_incremental_searches_per_impression`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#normalized_incremental_searches_per_impression) (with [`metrics.normalized_incremental_searches_per_impression_p90_lower_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#normalized_incremental_searches_per_impression_p90_lower_bound) and [`metrics.normalized_incremental_searches_per_impression_p90_upper_bound`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics.md.txt#normalized_incremental_searches_per_impression_p90_upper_bound)): Estimated incremental search queries generated per ad impression. Incompatible with `segments.search_property` in Google Ads API v27 and later.

> [!NOTE]
> **Note:** The `metrics.relative_search_lift*`, `metrics.normalized_incremental_searches*`, `metrics.normalized_incremental_searches_per_cost*`, and `metrics.normalized_incremental_searches_per_impression*` metrics are ratios with jackknife confidence intervals. Do not sum or average them across `segments.date`. Query the full date range instead. Likewise, do not sum `metrics.search_lift_cost_micros`, `metrics.search_lift_impressions`, or Search Lift metrics across `segments.search_lift_keyword_bundle`.

### Example Search Lift queries

The following GAQL queries demonstrate how to retrieve Search Lift keyword
bundles and performance metrics.

#### Keyword bundle query

To retrieve keyword bundles configured for Search Lift measurements, query the
`search_lift_keyword_bundle` resource:

```sql
SELECT
  search_lift_keyword_bundle.resource_name,
  search_lift_keyword_bundle.search_lift_keyword_bundle_id,
  search_lift_keyword_bundle.source,
  search_lift_keyword_bundle.status
FROM search_lift_keyword_bundle
```

#### Metrics query

The `search_lift_keyword_bundle.resource_name` values retrieved in the keyword
bundle query correspond to the values returned in the
`segments.search_lift_keyword_bundle` segment in the following query. To
discover the `CONFIG_ID`, linked campaigns, and flight schedule for your study,
follow [Discover study configurations and flights](https://developers.google.com/google-ads/api/docs/experiments/lift-reporting.md.txt#cls-discovery-workflow) on
the `lift_measurement_config` and `lift_measurement_flight` resources (filtering
flights by `lift_measurement_flight.lift_type = 'SEARCH'`).

The following query retrieves Search Lift metrics segmented by keyword bundle
and search property (omit `segments.search_property` when selecting
`metrics.search_lift_cost_micros` or `metrics.search_lift_impressions`):

```sql
SELECT
  lift_measurement_config.lift_measurement_config_id,
  segments.search_lift_keyword_bundle,
  segments.search_property,
  metrics.relative_search_lift,
  metrics.relative_search_lift_p90_lower_bound,
  metrics.relative_search_lift_p90_upper_bound,
  metrics.incremental_searches_p_value,
  metrics.normalized_incremental_searches,
  metrics.normalized_incremental_searches_p90_lower_bound,
  metrics.normalized_incremental_searches_p90_upper_bound
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
```

Replace the following:

- `CONFIG_ID`: the integer ID of the lift measurement configuration.