> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adriel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQs

> Common questions, expected behaviors, and troubleshooting for the Google Ads data source.

## Why do my Performance Max campaigns show a warning instead of data?

Performance Max campaigns do not expose the same data as standard campaigns, so two specific warnings can appear. Both are expected behavior, not a connection problem.

<AccordionGroup>
  <Accordion title="GOOGLE_PMAX_DATA_NOT_AVAILABLE">
    This warning appears when a query combines more than one breakdown and the ad account contains Performance Max campaigns. The message reads "Google PMax campaign reports are not supported for this breakdown".

    Performance Max reporting is only available with a single breakdown. Campaign-level Performance Max metrics are not affected — reduce the widget to one breakdown to clear the warning.
  </Accordion>

  <Accordion title="GOOGLE_PMAX_AD_NO_METRICS">
    This warning appears when a query targets the ad level for ads that belong to Performance Max campaigns. The message reads "Metrics are not available for Google PMax campaigns at the ads level (no metrics on assets)".

    Performance Max campaigns replace the ad set and ad tiers with an asset group and asset structure, and Google does not return performance metrics at the ad level for them. Query at the asset-group or campaign level instead.
  </Accordion>
</AccordionGroup>

## Why does my Google Ads dashboard need reauthorization?

Google Ads uses an OAuth connection tied to the Google account that authorized it. When that authorization can no longer be used, the data source is disconnected automatically and prompts for reauthorization. Common triggers:

* The authorizing user revoked Adriel's access, or changed the Google account password.
* Google account 2-Step Verification was enabled or changed for the authorizing account.
* The authorizing user lost access to the Google Ads account or manager account.
* The Google sign-in session ended and needs to be re-established.

<Steps>
  <Step title="Reconnect the data source">
    Open the Google Ads data source and start the reconnect flow, then complete Google's consent screen with an account that still has access to the ad account. See [How to connect Google Ads to Adriel](/data-sources/g-n/google-ads/how-to-connect).
  </Step>

  <Step title="Confirm the account has access">
    Reauthorize with a Google account that can open the ad account directly in Google Ads. An account that has lost access to the ad account will reconnect but return no data.
  </Step>
</Steps>

<Note>
  Reauthorization does not change historical data. Once the connection is restored, the next refresh backfills the affected date range.
</Note>

## Why does my widget show a `dataTruncated` indicator?

A `dataTruncated` indicator means the query asked for more data than the connector can return in a single response, so the result set was capped and some rows were left out. This is a size limit, not a data-loss issue in the account.

To return a complete result, reduce the size of the request:

* Narrow the date range.
* Reduce the number of breakdowns applied to the widget.
* Query at a higher level — for example, campaign instead of keyword.

Applying any of these lowers the row count enough for the full result to load.

## Why do conversion counts differ between two Google Ads widgets?

Two widgets built on the same account can show different conversion totals because Google Ads exposes several distinct conversion metrics. The most common cause is a mismatch between which metric each widget uses.

| Metric                         | What it counts                                                                                                    |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
| Conversions                    | Only conversion actions flagged as **primary** in the Google Ads setup (defaults to "Purchase" when none is set). |
| All conversions (Google)       | Every recorded conversion action — primary plus secondary.                                                        |
| Conversions By Conversion Date | Conversions counted by the date the conversion occurred, rather than the date of the click or interaction.        |

When two widgets disagree, confirm whether each is using **Conversions** or **All conversions**, and whether one is counting **by conversion date** while the other counts by interaction date. Aligning the metric across both widgets resolves the difference.

## Why is an older campaign missing from my dashboard?

Only campaigns **created within the last 3 years** are imported when the Google Ads data source is first connected. Campaigns created before that window are not back-filled, so they will not appear in widgets even when the date range covers the period they were active.

Because Adriel caches Google Ads data as it syncs, history accumulates from the connection date onward — the longer the data source stays connected, the more historical data is stored.

## Common issues

<AccordionGroup>
  <Accordion title="Why do some Google Ads metrics or breakdowns return no data at the ad-account level or on long date ranges?">
    Several Google Ads metrics are restricted by the API to specific levels, campaign types, or date ranges:

    * `video_quartile_p100_rate` is only available at the campaign level, so ad-account totals intentionally exclude it.
    * `unique_users` and `average_impression_frequency_per_user` are only requestable for date ranges of 92 days or fewer, only on Display, Video, Discovery, Demand Gen, and App campaigns, and cannot be aggregated at the ad-account level.
    * Performance Max (PMax) campaigns have no Ad level in the Google Ads API. Nested breakdowns that force a fetch at ad level exclude PMax from the child breakdown while still including it in the parent, so totals can't match — the workaround is to isolate PMax into a separate label.
    * PMax campaigns also have no ad sets, so any custom breakdown with an ad-set condition returns 0 for PMax rows. Remove the ad-set condition and hard refresh.
  </Accordion>

  <Accordion title="Why aren't Google Ads Demand Gen or Performance Max campaigns rolling up under a single Google row?">
    Adriel tracks each Google campaign type as a separate `google_subchannel` — Performance Max, Demand Gen, Display, Search, and others. There's no native way to aggregate them into a single Google total. The workaround is to build a custom breakdown that groups all Google subchannels into a single Google label.

    Related: if a view filter selects only the YouTube sub-channel, Demand Gen campaigns are excluded because they aren't classified under YouTube. Broaden the view filter to include Demand Gen.
  </Accordion>

  <Accordion title="Why doesn't the Google Ads Purchase metric match the Google Ads UI?">
    The **Purchase** metric in Adriel corresponds to a specific Google Ads conversion action named `Purchase`, while **Category: PURCHASE** aggregates all conversion actions categorized under PURCHASE. Values differ when a customer's conversion actions aren't categorized as PURCHASE in Google Ads.

    To match the Google Ads UI, switch to **Category: PURCHASE**, **Conversions**, or **Conversion Value**. Google Ads events are exposed as metrics — the event names appear in the metric picker.
  </Accordion>

  <Accordion title="Why does Adriel show an ad as Active even though it didn't deliver during the selected period?">
    Google Ads ad status reflects the current resource state in Google Ads — `ENABLED`, `PAUSED`, or `REMOVED` — not whether delivery occurred in the selected date range. An ad returned as `ENABLED` shows as Active in Adriel regardless of period activity.

    Adriel's Ad-level view also maps to `Campaigns.Ads` in Google Ads. Comparing against `Assets.Videos` or other sub-views in the Google Ads UI will not line up.
  </Accordion>
</AccordionGroup>

## Related

* [Google Ads data reference](/data-sources/g-n/google-ads/data-reference) — metrics, breakdowns, refresh cadence, and limits
* [How to connect Google Ads to Adriel](/data-sources/g-n/google-ads/how-to-connect) — step-by-step setup guide
* [Refresh strategies](/data-sources/how-data-works/refresh-strategies) — how on-demand and scheduled data refreshes work
* [Why revenue looks different in GA4 vs Google Ads](/troubleshooting/revenue-ga4-vs-google-ads) — reconciling conversion and revenue numbers across Google sources
