# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Multi-account consolidation</strong></td><td>If you manage multiple Apple Search Ads accounts, select all of them in a single data flow and use the **Append** transformation to combine the data. This is faster than running separate data flows and keeps your reporting in one place.</td></tr><tr><td><strong>Separate flows by report type</strong></td><td>Create individual data flows for different report types (campaign performance, keyword performance, demographic insights). This makes it easier to schedule them at different times and troubleshoot issues.</td></tr><tr><td><strong>Use dynamic date ranges</strong></td><td>Instead of manually updating dates each month, use macros like `{{30daysago}}` and `{{yesterday}}` to make your date range dynamic. This keeps your data flows current without manual intervention.</td></tr><tr><td><strong>Link to BigQuery for analysis</strong></td><td>For large-scale analysis or combining Apple Search Ads data with other sources, export to BigQuery instead of Sheets. This makes joining with other datasets and running complex queries much faster.</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>Export after campaign day ends</strong></td><td>Schedule data flows to run early morning (e.g., 6 AM) so you're always getting complete daily data from the previous day. Avoid pulling data for "today" since metrics are still updating.</td></tr><tr><td><strong>Weekly demographic deep-dives</strong></td><td>Run demographic/geographic reports weekly instead of daily to reduce API calls and focus on actionable insights. Daily campaign performance reports can be updated more frequently.</td></tr><tr><td><strong>Monitor data freshness**</strong></td><td>Apple Search Ads data is typically available within 2-4 hours of the reporting period ending. If you need real-time data, run manual checks instead of scheduling frequent automated refreshes.</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>Use "Totals only" when possible</strong></td><td>If you don't need daily/weekly/monthly breakdowns, select "Totals only" in the split-by-period setting. This reduces data volume and makes reports easier to read.</td></tr><tr><td><strong>Filter by active campaigns</strong></td><td>Include only active or recently active campaigns to avoid pulling data for paused campaigns. This reduces noise and makes analysis faster.</td></tr></tbody></table>

## Common pitfalls

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

* Verify the API Account Manager role is assigned before connecting
* Test with a manual run and small date range first
* Use meaningful names for your data flows (e.g., "Apple Search Ads - Campaign Performance - Weekly")
* Schedule flows for early morning to ensure data is finalized
* Keep demographic reports separate from performance reports for clarity
  {% endcolumn %}

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

* Don't use your main admin account if it lacks API permissions — create a dedicated API user instead
* Don't pull data for "today" or the current day — wait until it's finalized the next day
* Don't run multiple data flows simultaneously if you have rate limit concerns
* Don't mix multiple report types in one data flow if you need different scheduling for each
* Don't assume all metrics are available for all campaign types — check Apple Search Ads directly if data seems missing
  {% endcolumn %}
  {% endcolumns %}

{% hint style="danger" %}
**API access requirement:** The API Account Manager role is non-negotiable. If your admin account doesn't have this role, you must either request the role assignment or use a different user account. This is an Apple Search Ads security requirement and Coupler.io cannot work around it.
{% endhint %}
