Google Analytics Data (GA4): Troubleshooting#

I see a resource exhausted error message or 429 Client Error: Too Many Requests when fetching data from Google Analytics Data (GA4)#

The Resource Exhausted Error for Property ID [ID] error message or the 429 Client Error: Too Many Requests appears because a quota on the Google Analytics 4 property has been exhausted.

Google applies these quotas per property, in an hourly bucket and a daily bucket, and also caps how many requests a property can serve at the same time. The quota belongs to the property, not to your Adverity account, so every datastream collecting from the same property draws on the same allowance. Adverity retries these requests automatically.

To resolve this issue:

  1. Check how many datastreams collect from the affected property, and schedule them at different times rather than together.

  2. Reduce the number of metrics in each datastream. Selecting more than ten metrics uses more of the property’s quota.

  3. Collect your data over several smaller fetches, for example using shorter date ranges.

Because there is an hourly bucket as well as a daily one, a fetch that fails on quota can often succeed within the same day.

For the current quota figures, see the Google documentation.

My authorization stopped working and nothing changed on the Google side#

Google limits how many active credentials a single Google account can hold for one application: 100 refresh tokens. When that limit is reached, creating the next one silently invalidates the oldest, with no notification to anyone.

An authorization that has worked for months can therefore stop working because a colleague created an unrelated authorization elsewhere using the same Google account.

To resolve this issue, re-authorize the affected authorization. To prevent it from recurring, avoid using one Google account for a large number of authorizations, and use separate accounts for separate groups of properties.

Some properties are missing from my data extract#

When Google refuses a request for one property, Adverity records a warning, skips that property, and continues with the remaining ones. The datastream completes, so the missing properties are only visible in the datastream warnings.

To resolve this issue, check the datastream warnings of the fetch to identify the affected properties, then confirm that the authorization still has access to each one.

Note

If access to a property is lost after the datastream was configured, Adverity records the warning Access to Properties ... has been lost and collects the remaining properties. Re-authorize or change the property selection to resolve it.

The values for my metrics are inflated when I collect data from Google Analytics Data (GA4)#

When fetching data, metrics such as Sessions and Users can be inflated as you add more dimensions. This is a common issue with web analytics tools, as individual sessions, users, etc. can be counted multiple times. This can happen for the following reasons:

  • Some metrics are non-aggregatable and calculated using estimates. This means that the total row in a Google Analytics Data (GA4) UI report will not accurately match the sum of all rows. For example, a report may contain 3 rows, each with 10 sessions, but the total row could contain 25 instead of 30 because the values are estimated. For more information, see the Google documentation.

  • Values are counted more than once, for example if a session spans more than one day, or a user visits more than one page in a single session.

As a result, the total that you see for these metrics in your Google Analytics Data (GA4) UI report may not match the data you see in Adverity. For more information, see the Google Analytics Data (GA4) documentation.

Adding dimensions also changes totals through cardinality grouping, thresholding and sampling, and selecting more than ten metrics changes how the report is collected. For an explanation of each mechanism and the datastream pattern that avoids them, see Why adding dimensions changes your totals.

A metric column contains only zeros#

A metric value that GA4 does not return is recorded as 0 rather than left empty, so a column of zeros does not confirm that the value is genuinely zero. This is most likely when a datastream selects more than ten metrics, which is the maximum GA4 reports on at a time.

To establish whether a zero is a real value, reduce the datastream to ten metrics or fewer and fetch again.