Best Practices for Testing Attribution Measurement During MMP Migration
When migrating from your existing mobile measurement partner (MMP) to Singular, you may want to compare attribution results across both MMPs simultaneously. This setup is often used to validate Singular’s measurement before fully switching over.
To run dual-MMP attribution, both of the following must be true:
- Your app integrates both MMP SDKs.
- Your media sources support sending attribution to multiple MMPs.
Media Source Support & Limitations
Self-Attributing Networks (SANs)
| Network | Dual-MMP Support | Successful Test? | Notes & Limitations |
|---|---|---|---|
| Apple Search Ads | ✅ Yes | Installs tracked on Singular Reports | Fully supported. Both MMPs can call the ASA API and receive attribution data. |
| DV360 (Google Marketing Platform) | ✅ Yes | Installs tracked on Singular Reports | Requires separate line items for each Floodlight (Link ID). |
| Google Ads | ✅ Yes | Installs tracked on Singular Reports | Multiple Link IDs can be registered and postbacks delivered to each MMP. |
| Meta (Facebook) | ⚠️ Partial | Installs tracked on Singular Reports | Supports multiple MMPs, but events should ideally come from only one MMP to avoid deduplication issues. |
| Snapchat | ⚠️ Partial | Installs tracked on Singular Reports | Dual reporting is possible, but overlapping migration periods should be minimized due to event duplication. |
| TikTok for Business | ❌ No | N/A for dual MMP | Only one MMP supported at a time. You must disable the existing MMP before enabling another. |
| X Ads (Twitter Ads) | ❌ No | N/A for dual MMP | Does not support multiple MMP integrations. |
SKAdNetwork (iOS)
SKAN postbacks can only be sent to one MMP. Even if both SDKs are integrated, only one MMP receives SKAN conversions.
Migrating Non-SAN Ad Network Campaigns
To migrate non-SAN ad network campaigns, follow these steps:
-
Activate the relevant ad networks in Singular.
-
Generate Singular Tracking links for each ad network.
-
Replace the existing campaign links with the newly generated Singular attribution links.
A new tracking link has to be created to replace the old one when migrating. Please make sure to coordinate the switch date and test the tracking link first ensuring it provides the desired user flow including app store and in app redirects as well as results in attribution. Two tracking links from two different MMPs cannot be used to track the same campaign with a Partner using dual MMP tracking links. -
Postbacks:
- Install postbacks must be deduped to avoid double billing.
- In-app event postbacks should be sent from only one MMP, or deduped by the partner.
Owned Media (Email, SMS, QR, Web → App)
For owned media campaigns, use Singular links to ensure proper tracking and user experience. Examples of owned media channels include:
-
Email
-
SMS
-
Social networks referral
-
Landing pages
-
QR codes
Singular links support attribution, redirection, and deep linking capabilities. They enable you to seamlessly convert users from both owned and paid media into app users—regardless of device, operating system, channel, or platform. By using Singular links, you can deliver a consistent and optimized user experience, whether conversions originate from websites, banners, social media posts, emails, or text messages.
✅ Singular’s Mobileweb-to-app attribution flow avoids duplication by attributing installs from websites/landing pages based on a single engagement when user lands on the app post installation.
Best Practices to Minimize Discrepancies
- Align attribution settings: Match lookback windows, post-install windows, and re-engagement settings across both MMPs.
- Limit overlap period: Run dual-MMP setups only as long as needed for validation.
- Choose one MMP for in-app events: Prevents conflicts and duplication.
- Use consistent campaign naming: Ensure campaign level parameters match across both MMPs.
- Monitor side-by-side: Compare raw logs and focus on discrepancies in installs, revenue, or event counts.
- Retire the old MMP: Once validated, disable the old MMP to establish Singular as the single source of truth.
- Comparison of Data between Two MMP's: When evaluating results across two MMPs, keep the following best practices in mind:
-
Focus on overall daily volumes: Compare data at the daily aggregate level instead of source-level or campaign-level attribution.
-
Attribution waterfalls differ across platforms: Each MMP processes attribution waterfalls differently, making source-level comparisons unreliable.
-
Older MMP visibility:The older MMP typically has access to all campaign touchpoints (including owned media) and the full existing user base.
-
Data parity matters: Unless the new MMP is configured with exact parity in data and setup, results between the two platforms will not be directly comparable.. For more details on how attribution works please see here.
Use Cases for Dual-MMP Measurement
- Migration validation: Confirm Singular’s results match your existing MMP before switching.
- Benchmarking: Compare attribution logic to detect anomalies.
- Feature testing: Validate new Singular features (e.g., ROAS, deep linking) against your current setup.
Migration Checklist
1. Preparation
- Confirm both MMP SDKs are integrated
- List all active media sources (SAN + non-SAN)
- Validate dual-MMP support per partner
- Align attribution settings
2. Configuration
- Add app to Singular & generate links
- Connect SANs to both MMPs without conflict
- Configure non-SAN links and make a switch to measure attribution
- Decide which MMP sends in-app event postbacks
3. Validation
- Test install and event flows end-to-end
- Run limited A/B campaigns with the New MMP
- Compare dashboards, logs, and exports
4. Monitoring
- Check discrepancies daily (installs, cost, revenue, events)
- Track SAN-specific nuances (Meta, TikTok, etc.)
- Document differences & escalate to Singular if needed
5. Switchover
- Disable the previous MMP’s postbacks
- Update ad partners to send events only to Singular
- Remove the old SDK when migration is complete
Troubleshooting & Common Questions
| Issue | Cause | Solution |
|---|---|---|
| Installs differ across MMPs | Attribution windows or deduplication logic differ | Sync attribution settings, check raw logs, reduce overlap |
| Event counts conflict | Both MMPs sending postbacks | Configure only one MMP for events |
| SKAN data missing in one MMP | SKAdNetwork supports only one MMP | Compare non-SKAN channels instead |
| Network doesn’t support dual attribution | Network restricts to a single MMP | Follow migration guidance—disable old MMP before enabling Singular |