# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Join Ratings and Stat reviews</strong></td><td>These two entities complement each other — ratings show scores and distributions, while stat reviews capture sentiment and volume. Join them on App ID for a complete picture of app reputation in one table.</td></tr><tr><td><strong>Use Append for multi-app tracking</strong></td><td>If you track apps across separate App lists, add each list as a source in the same data flow and use the Append transformation. This gives you a unified dataset across your entire portfolio without managing multiple data flows.</td></tr><tr><td><strong>Send review stats to AI destinations</strong></td><td>Pipe Stat reviews into ChatGPT, Claude, or Gemini to auto-generate weekly sentiment summaries or identify recurring themes in negative reviews — no manual analysis needed.</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>Match refresh frequency to your release cadence</strong></td><td>If you ship app updates weekly, daily rating syncs make sense to catch post-release feedback quickly. For stable apps with infrequent updates, a weekly refresh is usually sufficient.</td></tr><tr><td><strong>Always run a manual sync first</strong></td><td>Before setting a schedule, complete a successful manual run to confirm your API key, entity selection, and destination are all working correctly.</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>Separate organizational and analytical entities</strong></td><td>Users, App collections, and App lists change infrequently — sync these separately and less often. Keep Stat reviews and Ratings in their own data flow with a tighter schedule so you're not re-pulling static data unnecessarily.</td></tr><tr><td><strong>Aggregate before sending to dashboards</strong></td><td>If you're reporting to Looker Studio or BigQuery, use Coupler.io's Aggregate transformation to pre-summarize review counts or average ratings. This keeps your destination cleaner and dashboards faster.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
Don't mix App Store and Google Play data in the same row without filtering by the Store field. Rating scales and review volumes differ significantly between stores, and blended averages can be misleading.
{% endhint %}

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

* Filter by store when comparing ratings across regions
* Use App ID as the join key when combining Ratings and Stat reviews
* Track the `Updated at` field from App lists to know when your tracked set changed
  {% endcolumn %}

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

* Run multiple Appfollow data flows simultaneously — you risk hitting API rate limits
* Rely solely on rating deltas without checking absolute counts; a small app can show large swings with just a few new ratings
* Assume Users entity reflects your app's end users — it only contains Appfollow workspace members
  {% endcolumn %}
  {% endcolumns %}
