Best Practices

Use "Daily" split for active campaign monitoring

If you're optimizing campaigns in real time, split your performance data by "Daily" so you can see day-to-day trends. This helps you spot underperforming days and adjust spending quickly.

Pull "List" reports separately for reference data

Create dedicated data flows for "List of Campaigns," "List of Ads," and "List of Creatives." Refresh these monthly or after major campaign changes. Use them to join with performance data to add human-readable names.

Use Join transformations to add dimension context

If you export a performance report without demographic breakdowns, then export a geo&demography report separately, use Coupler's **Join** transformation to combine them on campaign/ad ID. This gives you rich segmentation in one place.

Set attribution windows to match your sales cycle

If your product has a longer consideration cycle, use 7 or 28 days post-swipe. For immediate-purchase products, 1 day post-swipe is usually sufficient. Consistency across platforms (Snapchat, Facebook, Google) makes multi-channel analysis easier.

Data refresh and scheduling

Account for Snapchat's 24–48 hour conversion reporting lag

Don't schedule data flows to run within 24 hours of campaign end. Schedule refreshes at least once daily, preferably in the evening or overnight, so you're always working with near-complete data.

Schedule multi-account flows during off-peak hours

If you manage 5+ ad accounts, run scheduled flows outside 9 AM–5 PM to avoid API rate limits. Early morning (before 8 AM) or late evening (after 6 PM) is ideal.

Use incremental date ranges for high-frequency updates

Instead of re-pulling 90 days every hour, create a flow that pulls only the last 3–7 days and appends it to your historical data. This reduces API strain and keeps your dashboard fresh without hitting rate limits.

Performance optimization

Avoid overly granular dimensional breakdowns in the same flow

If you combine multiple dimensions (e.g., Age + Gender + Country), you'll get one row per combination, which explodes row count. Create separate flows for different dimensional analyses—one for demographic trends, one for geographic performance.

Filter out inactive campaigns to reduce data volume

Use the advanced filter "Campaign Status = Active" to exclude paused or archived campaigns. This keeps your data lean and makes dashboards faster. Create a separate "historical" flow for paused campaigns if you need historical reference.

Pull only the metrics you need

Don't select every available metric. Choose 8–12 core metrics (spend, impressions, clicks, conversions, ROAS, CPC, CPA) relevant to your analysis. Extra metrics you don't use slow down the flow and clutter your destination.

Common pitfalls

Do

  • Start with a manual test run to verify your settings before scheduling

  • Use "Totals" split when comparing against Snapchat Ads Manager to ensure exact alignment

  • Document your attribution window choice so the team knows how conversions are counted

  • Create separate flows for different report types (performance vs. lists vs. geo&demography)

  • Check Snapchat Ads Manager a day after your campaign ends before pulling final numbers

Don't

  • Assume zero conversions mean zero data—wait 48 hours and re-run before investigating

  • Mix multiple ad accounts in one flow if any are in different organizations (authorization may fail)

  • Use demographic dimensions on campaigns targeting countries where those dimensions aren't available

  • Schedule hourly refreshes for data from large account portfolios—this will hit API rate limits

  • Re-run the same flow multiple times in quick succession without waiting for the first to complete

Last updated

Was this helpful?