Integrations / Attribution
Attribution
Attribution turns funnel analytics into acquisition answers: which campaigns produce users who complete onboarding, start trials, and pay — not just install.
Two ways in
1. From the SDK
Forward attribution from your MMP SDK's conversion callback with UpliftFunnel.setAttribution. The four supported keys are source, campaign, ad_set, and creative; they're attached as context to every subsequent event from that device.
AppsFlyer
// pubspec: appsflyer_sdk
final appsflyer = AppsflyerSdk(AppsFlyerOptions(
afDevKey: 'YOUR_DEV_KEY',
appId: 'YOUR_IOS_APP_ID',
));
appsflyer.onInstallConversionData((res) {
final data = Map<String, dynamic>.from(res['payload'] ?? {});
UpliftFunnel.setAttribution({
'source': (data['media_source'] ?? 'organic').toString(),
'campaign': (data['campaign'] ?? '').toString(),
'ad_set': (data['af_adset'] ?? '').toString(),
'creative': (data['af_ad'] ?? '').toString(),
});
});
appsflyer.initSdk(registerConversionDataCallback: true);Adjust
// pubspec: adjust_sdk
final config = AdjustConfig('YOUR_APP_TOKEN', AdjustEnvironment.production);
config.attributionCallback = (attribution) {
UpliftFunnel.setAttribution({
'source': attribution.network ?? 'organic',
'campaign': attribution.campaign ?? '',
'ad_set': attribution.adgroup ?? '',
'creative': attribution.creative ?? '',
});
};
Adjust.start(config);Not on an MMP? You can call setAttribution with values from anywhere — a deferred deep link, your own backend, or a campaign parameter you pass at install time.
2. Server-side postbacks
Alternatively, connect AppsFlyer or Adjust from the dashboard's attribution settings and point the MMP's postbacks at the URL it gives you. Attribution then arrives server-side and is joined to users by identity — no app changes needed.
Where it shows up
The campaign table in Analytics breaks the full funnel — started, completed, activated, trial, paid — down by campaign, combining attribution with revenue data. That's cost-of-growth truth: the campaign with the most installs is often not the one with the most payers.