# 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://help.coupler.io/article/546-overcome-ga4-limit-for-10-metrics-in-a-single-report">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://help.coupler.io/article/546-overcome-ga4-limit-for-10-metrics-in-a-single-report">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://help.coupler.io/article/562-data-aggregation">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 %}
