Skip to main content
Attribution connects a user with the channel or campaign that brought them to your app.

How attribution works in your app

Your attribution provider, such as AppsFlyer, Firebase, or Facebook, resolves the attribution data. Send it to PNLight with the SDK after the provider returns conversion data. PNLight uses the project attribution settings to decide which source has priority when more than one source can describe the same user.
1

Start the campaign

Launch the campaign in AppsFlyer and use AppsFlyer links for user acquisition.
2

Receive the AppsFlyer ID

When a user opens the campaign link, AppsFlyer creates a unique ID for that user.
3

Request ATT permission

After the app is installed, request App Tracking Transparency permission when your app needs IDFA-based attribution.
4

Update IDFA in PNLight

If PNLight initialized before the ATT response, call updateIdfa() after authorization.
5

Initialize AppsFlyer

Initialize the AppsFlyer SDK after the ATT response.
6

Share the PNLight user ID

Optionally set the PNLight user ID in your attribution tools, such as appsFlyer.setCustomerUserId, so the same user ID appears across tools.
7

Send conversion data to PNLight

Read the AppsFlyer conversion result and send it to PNLight with addAttribution.
8

Request Remote UI

On the first app launch, wait 4-5 seconds after AppsFlyer initialization before calling getUIConfig or showing RemoteUiView. When attributionRequired is true, the SDK also waits for attribution internally.

Send attribution

If you enable AppsFlyer S2S events in the dashboard, pass the AppsFlyer user ID (AppsFlyer UID) as the attribution identifier. PNLight uses it to send mapped subscription lifecycle events back to AppsFlyer.

AppsFlyer examples

On the first launch, AppsFlyer attribution usually accounts for most of the wait before a Remote UI request. When attribution is required, wait 4-5 seconds after AppsFlyer initialization.

Supported provider names

Dashboard settings

Open Settings and configure the attribution priority:
  • Put the preferred source first.
  • Keep at least one source selected.
  • Set the wait window for preferred attribution.
A longer wait window can improve attribution completeness. It can also delay early decisions while PNLight waits for the preferred source to respond. If the preferred source reports no attribution, PNLight can continue to the next enabled source without waiting for the full window.