Best Practices
Recommended setup
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?
