Best Practices
Recommended setup
Start with a single account and report type
Create your first data flow with one Microsoft Ads account and one report type (e.g., Campaign performance). Once you've verified the data looks correct, add more accounts or reports. This reduces troubleshooting complexity.
Use predefined reports first
Predefined reports (Campaign performance, Keyword performance, etc.) are faster and more reliable than custom reports. Start there; only build custom reports if you need unusual metric or dimension combinations.
Pull 2–3 days of history instead of today's data
Microsoft Ads takes 24–48 hours to finalize reporting data. Schedule imports for early morning (7–8 AM) and pull data from 2–3 days ago to ensure you have complete, accurate data.
Set Split data by period to Daily for trend analysis
If you're building charts or dashboards, use **Split data by period = Daily** to get daily granularity. This lets you spot trends and sudden performance drops in Looker Studio or other dashboards.
Data refresh and scheduling
Schedule imports early morning (7–8 AM)
Microsoft's reporting API processes data overnight. Scheduling a 7–8 AM import ensures yesterday's complete data is available. Avoid imports during business hours when the API is busier.
Use weekly or biweekly reports for large accounts
If you're importing 90+ days of data or have 100+ campaigns, use weekly refreshes instead of daily. This reduces API strain and memory usage. Append multiple weeks together in your destination for a rolling view.
Enable date picker for dynamic ranges
Instead of hardcoding a date range, use Coupler.io's date picker or macros (if supported) to automatically pull the last 30 days. This keeps your report always fresh without manual updates.
Performance optimization
Use advanced filters to reduce data size
If you only care about search campaigns, add a filter for device type or network. Filtering down reduces the API payload and speeds up the import. Don't pull data you won't use.
Aggregate daily data to weekly/monthly in your dashboard
If you pull daily data, aggregate it in Looker Studio or BigQuery using SUM(Spend), SUM(Conversions), etc. Don't let the destination accumulate thousands of rows — roll up to the appropriate time grain for your use case.
Append multiple accounts in one data flow
Instead of creating separate data flows for each Microsoft Ads account, select all accounts in one flow. This is more efficient than running 5 individual imports.
Common pitfalls
Don't pull data for today or yesterday. Microsoft Ads data takes 24–48 hours to fully process. If you import today's data, you'll get incomplete metrics and may have to reimport tomorrow. Always pull from 2+ days ago.
Don't use "Custom" report period for automated scheduling. If you set a custom date range (e.g., Jan 1–30) and schedule the import, it will pull the same date range every month, not a rolling window. Use preset periods (Last 30 days, Last 7 days) or manually update the date range each month.
Don't mix split granularities across reports. If one data flow pulls Campaign performance with Split = Daily and another pulls Keyword performance with Split = Monthly, your destination will have rows at different time grains, making aggregation harder. Keep the split setting consistent across related reports.
Do
Test with a single account and report type first
Pull data 2–3 days after it was generated
Use predefined reports for standard metrics
Schedule imports during early morning (7–8 AM)
Apply advanced filters to reduce data size
Append data from multiple accounts in one flow
Don't
Pull data for today or yesterday
Use custom date ranges in scheduled flows
Mix split periods across related reports
Run multiple data flows simultaneously if your account is large
Import every single metric if you only need a few
Leave data in your destination without aggregation (roll up to appropriate time grain)
Last updated
Was this helpful?
