# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Use verified locations only</strong></td><td>Only verified locations will export data. If you're adding new locations, verify them in Google Business Profile first. This prevents failed runs and missing data.</td></tr><tr><td><strong>Split high-volume flows</strong></td><td>If you manage 100+ locations, create separate data flows by location group (e.g., North region, South region) or limit each flow to 50 locations. This prevents timeouts and rate-limiting.</td></tr><tr><td><strong>Match report type to your use case</strong></td><td>Use Daily metrics for performance trends, Search keywords for SEO insights, and Reviews for sentiment. Don't pull all three if you only need one—it uses unnecessary API quota.</td></tr></tbody></table>

## Data refresh and scheduling

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Schedule after 2 AM PT</strong></td><td>GBP metrics finalize after ~2 AM PT each day. Schedule your refreshes for 3–4 AM PT to ensure you're pulling complete, finalized data. Morning runs (before 2 AM) will have incomplete metrics.</td></tr><tr><td><strong>Stagger multiple flows</strong></td><td>If you have multiple GBP data flows, space them out by 10–15 minutes. Running them all at once can trigger Google's rate limits. Example: 3:00 AM, 3:15 AM, 3:30 AM.</td></tr><tr><td><strong>Use date macros for consistency</strong></td><td>Instead of manual date ranges, use macros like `{{yesterday}}` or `{{30daysago}}` for daily or rolling metrics. This keeps your data consistent and reduces the risk of accidentally pulling the same date twice.</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>Narrow your date range</strong></td><td>Pulling 90 days of data is slower than 30 days. Use the minimum date range you need. For weekly reports, pull just 7 days at a time rather than monthly.</td></tr><tr><td><strong>Reviews: pull in separate flows if at scale</strong></td><td>Reviews queries are data-heavy. If you have 50+ locations with thousands of reviews, reviews often timeout. Create a dedicated reviews flow separate from metrics flows.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
**Don't run data flows before 2 AM PT.** GBP metrics are finalized overnight. If you run at midnight, you'll get incomplete or stale data. Wait until after 2 AM PT.
{% endhint %}

{% hint style="danger" %}
**Don't pull unverified locations.** Only verified GBP locations return data. If a location is pending verification, the data flow will fail. Verify first in Google Business Profile, then reconnect.
{% endhint %}

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

* Use Append to combine data from multiple report runs into one table
* Create separate flows for reviews if you have 100+ locations
* Use a Join to match search keywords with their corresponding daily metrics
* Test with a small date range first (e.g., 7 days) before running large pulls
  {% endcolumn %}

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

* Run multiple flows simultaneously without staggering them
* Pull data before 2 AM PT when metrics are still finalizing
* Use Viewer-only GBP access; you need Manager or Admin permissions
* Expect data older than \~90 days; GBP doesn't retain older historical data
  {% endcolumn %}
  {% endcolumns %}
