# 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 page IDs instead of aliases</strong></td><td>Numeric page IDs (e.g., 123456789) are more reliable than public aliases. If you have multiple pages, store their IDs in a spreadsheet for easy reference and to avoid typos.</td></tr><tr><td><strong>Verify "Followers and Public Content" settings</strong></td><td>Before connecting a page, go to page settings and confirm that "Followers and Public Content" is set to public. This is required for any data to be exported — even if the page is otherwise public.</td></tr><tr><td><strong>Start with one page, then scale</strong></td><td>Test your first data flow with a single page ID to confirm the setup works. Once you're confident, add multiple page IDs (one per line) to consolidate all your pages into one data flow.</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 daily or weekly, not hourly</strong></td><td>Facebook's API updates data on a delay (usually 1–3 hours). Hourly refreshes waste quota and return the same data. A daily or weekly schedule is sufficient for most use cases.</td></tr><tr><td><strong>Refresh posts with a rolling window</strong></td><td>For "Public posts statistics", use a date range that covers the last 7–30 days instead of fetching all-time data. This keeps refresh times fast and avoids duplicate rows from posts you've already imported.</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>Combine multiple pages with Append transformation</strong></td><td>If you're importing from many pages, enter all page IDs in one data flow, then use an Append transformation to stack them into a single table. This is faster than running separate data flows for each page.</td></tr><tr><td><strong>Use Join to correlate with other data</strong></td><td>Combine post statistics with campaign or revenue data in Google Sheets or BigQuery using a Join transformation. Match by date to understand the relationship between organic Facebook engagement and business outcomes.</td></tr></tbody></table>

## Common pitfalls

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

* Use numeric page IDs when possible
* Set a reasonable date range for post data (7–30 days)
* Test with one page before adding multiple
* Schedule refreshes daily or weekly, not hourly
* Confirm page settings are fully public before connecting
  {% endcolumn %}

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

* Use full Facebook URLs or display names instead of page IDs
* Try to import data from personal profiles (only pages work)
* Run multiple data flows for the same page simultaneously
* Expect real-time data (allow 1–3 hours for Facebook to update)
* Leave date ranges too broad for post data (very old posts slow down imports)
  {% endcolumn %}
  {% endcolumns %}

{% hint style="danger" %}
**Do not share your full page URL or access token in public.** While Coupler.io uses OAuth (so your password is never stored), keep your Coupler.io data flow URLs private to avoid accidental exposure of your page data.
{% endhint %}
