# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Start with a single account and short date range</strong></td><td>Create your first data flow for one account with a 7-day date range. Once you verify the data is correct, expand to longer ranges or multiple accounts. This reduces troubleshooting complexity.</td></tr><tr><td><strong>Name your data flows clearly</strong></td><td>Use descriptive names like "Amazon Ads - Campaign Performance - Daily" or "Amazon Ads - Search Terms - Weekly." This helps you manage multiple data flows and quickly identify which reports are pulling what data.</td></tr><tr><td><strong>Use Append for multi-account reporting</strong></td><td>If you manage multiple Amazon Ads accounts, pull each account separately, then Append them in the transformation step. This preserves account-level granularity and makes it easy to filter by account in your destination.</td></tr><tr><td><strong>Add a manual refresh before automating</strong></td><td>Always run your data flow once manually before scheduling. This catches configuration errors early and ensures your destination table is set up correctly.</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 pulls during off-peak hours</strong></td><td>Amazon's API is busiest during business hours. Schedule your data flows for early morning (6–8 AM) or late evening (9–11 PM) to reduce timeout errors and speed up report generation.</td></tr><tr><td><strong>Use weekly pulls for longer historical periods</strong></td><td>If you need data spanning more than 31 days, create a weekly data flow that pulls the last 7 days. Run it every Monday to build a rolling history. This avoids hitting the 31-day API limit.</td></tr><tr><td><strong>Plan for data latency (24–48 hours)</strong></td><td>Amazon Ads data isn't finalized until 24–48 hours after activity. If you need "real-time" reporting, pull data from 2–3 days ago instead of yesterday, and refresh every 2–3 days rather than daily.</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" for weekly/monthly summaries</strong></td><td>If you only need aggregate metrics (total spend, total sales) for a week or month, select "Totals only" split instead of "Daily." This significantly reduces rows and makes reports faster to generate and load.</td></tr><tr><td><strong>Pull only the metrics you need</strong></td><td>Each metric you add increases processing time. Select only the metrics relevant to your analysis. For example, if you only care about spend and sales, don't pull impressions, clicks, or ACOS.</td></tr><tr><td><strong>Use advanced filters to narrow scope</strong></td><td>If you have hundreds of campaigns, filter to active campaigns only or campaigns with minimum spend. This reduces the data volume and speeds up report generation significantly.</td></tr></tbody></table>

## Common pitfalls

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

* Test with a 7-day date range first before scaling up
* Use separate data flows for different report types (campaign vs. search terms)
* Schedule weekly instead of daily if your use case allows
* Pull data from 2–3 days ago to account for Amazon's data latency
* Use Append transformations when combining multiple accounts
  {% endcolumn %}

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

* Try to pull more than 31 days in a single date range
* Pull all metrics at once; select only what you need
* Schedule data flows during peak business hours (9 AM–5 PM)
* Rely on data from "today" or "yesterday" as final; allow 48 hours for processing
* Run multiple data flows simultaneously on the same account (can cause API throttling)
  {% endcolumn %}
  {% endcolumns %}

{% hint style="danger" %}
**Avoid exceeding the 31-day limit.** The Amazon Ads API will reject requests with date ranges longer than 31 days. Always check your date range before running, or use weekly scheduled pulls to build historical data over time.
{% endhint %}
