> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/ppc/google-analytics/best-practices.md).

# Best Practices

Get the most out of your Google Analytics 4 data in Coupler.io by following these recommendations.

### Recommended setup and configuration

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Start with default metrics</strong></td><td>The default selection (Views, Total users, New users, Event count, Key events) with the Date dimension covers the most common reporting needs. Add more metrics only as needed.</td></tr><tr><td><strong>Use the Date dimension</strong></td><td>Always include the Date dimension if you want to track trends over time. It's selected by default for a reason.</td></tr><tr><td><strong>Check dimension–metric compatibility first</strong></td><td>Before configuring your data flow, verify your metric–dimension combination using the <a href="https://ga-dev-tools.web.app/ga4/dimensions-metrics-explorer/">GA4 Dimensions &#x26; Metrics Explorer</a>. Incompatible pairs are the #1 source of GA4 errors.</td></tr><tr><td><strong>Plan your dimensions and metrics upfront</strong></td><td>With a limit of 9 dimensions and 10 metrics, decide what you need before configuring the data flow. If you need more than 10 metrics, set up multiple data flows and <a href="https://docs.coupler.io/functionality/data-set/combining-data/join-data">combine them with a join</a>.</td></tr></tbody></table>

## Data refresh and scheduling tips

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Avoid using today as the end date</strong></td><td>GA4 data processing can take several hours. Setting your end date to yesterday ensures you always get complete numbers.</td></tr><tr><td><strong>Keep date ranges current</strong></td><td>Use a consistent rolling window (e.g., the last 60 days) and update your start date periodically so your reports stay relevant. Pair with auto-refresh so new data is pulled automatically.</td></tr><tr><td><strong>Schedule refreshes wisely</strong></td><td>If you have multiple data flows pulling from the same GA4 property, stagger their schedules to avoid hitting API quota limits.</td></tr><tr><td><strong>Match your refresh frequency to your needs</strong></td><td>Daily refreshes work well for most use cases. Hourly refreshes are only worth it if you're tracking real-time campaigns.</td></tr></tbody></table>

## Performance optimization

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Limit dimensions</strong></td><td>Each dimension increases the number of rows in your report. Adding Country + Device category + Page path to a long date range can result in tens of thousands of rows. Only add dimensions you actually need.</td></tr><tr><td><strong>Narrow your date range</strong></td><td>Pulling months of historical data in one go can be slow. For initial backfills, consider pulling data in shorter chunks.</td></tr><tr><td><strong>Split large reports</strong></td><td>If you need more than 10 metrics, create multiple data flows with different metric sets and combine them in your destination. See <a href="https://docs.coupler.io/functionality/data-set/combining-data/join-data">this article</a> for details.</td></tr><tr><td><strong>Avoid high-cardinality dimensions</strong></td><td>Dimensions like <code>Landing page + query string</code> produce a very large number of unique values. This slows down reports and can trigger GA4's thresholding, which hides rows to protect privacy.</td></tr></tbody></table>

## Dashboard accuracy

{% hint style="warning" %}
User-based metrics like `Total users` and `Active users` are **not summable** across dimensions. A single user can appear in multiple channel groups, countries, or device categories. Do not use SUM to aggregate user counts — the total will be inflated. Use the report-level total or pull a separate data flow without the breakdown dimension.
{% endhint %}

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Compare apples to apples</strong></td><td>When checking Coupler.io data against the GA4 interface, make sure the date range, property, timezone, dimensions, and metrics match exactly. Even a one-day offset or an extra dimension will change the numbers.</td></tr><tr><td><strong>Use Data Aggregation for rolled-up views</strong></td><td>If your data flow includes a Date dimension but your dashboard shows monthly totals, add a <a href="https://docs.coupler.io/functionality/data-set/combining-data/aggregate-data">Data Aggregation</a> transformation to sum metrics per month. This avoids manual SUMIF formulas in your destination.</td></tr><tr><td><strong>Keep key event names clean</strong></td><td>GA4 key event names must contain only letters, numbers, and underscores. Special characters in event names will cause API errors. Rename any non-compliant events in your GA4 property settings.</td></tr><tr><td><strong>Migrate from Conversions to Key events</strong></td><td>Google deprecated all "Conversions" metrics. Update your data flows, Transformations, and destination formulas to use the new "Key events" equivalents. See the <a href="https://help.coupler.io/article/531-may-2024-deprecated-conversions-metrics">migration guide</a> for details.</td></tr></tbody></table>

## Common pitfalls to avoid

{% columns %}
{% column %}
**Do**

* Set your end date to yesterday
* Verify dimension–metric compatibility before setup
* Start with default metrics and add incrementally
* Stagger refresh schedules for the same property
* Export historical data before retention expires
* Use the GA4 Dimensions & Metrics Explorer
  {% endcolumn %}

{% column %}
**Don't**

* Use today as the end date — data will be incomplete
* Exceed the 9-dimension or 10-metric limits
* Ignore thresholding when Google Signals is on
* SUM user metrics across dimension breakdowns
* Use special characters in key event names
* Keep deprecated "Conversions" metrics in your flows
  {% endcolumn %}
  {% endcolumns %}

{% hint style="danger" %}
**Don't confuse GA4 with Universal Analytics** — GA4 uses an event-based model. Metrics like "conversions" are now called "key events" and are counted per event, not per session. If you're comparing to UA data, the numbers will not match.
{% endhint %}

{% hint style="danger" %}
**Don't ignore thresholding** — If Google Signals is enabled, GA4 may withhold rows with too few users. High-cardinality dimensions like `Landing page + query string` make this worse. If you're seeing gaps in your data, check whether thresholding is the cause before troubleshooting elsewhere.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/sources/category/ppc/google-analytics/best-practices.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
