Skip to main content

Privacy Postback - Receiving Conversions Without a Click ID

This article explains how Trackier's privacy postback solution enables probabilistic attribution for iOS campaigns using campaign IDs and publisher IDs instead of click IDs.

Updated this week


Overview

With Apple's App Tracking Transparency (ATT) framework introduced in iOS 14, passing user-level identifiers like click IDs, IP addresses, and device IDs in postbacks is no longer feasible for opted-out users.

Traditional conversion tracking relies on a click ID being passed from the click all the way through to the conversion postback. This allows platforms like Trackier to match a conversion back to the exact click that triggered it.

With iOS 14 and above, users who opt out of tracking via ATT prevent this click ID from being passed breaking the traditional attribution chain. Since most users choose not to be tracked, this impacts a significant portion of iOS campaign traffic.

To address this, Trackier introduced privacy postbacks a method that uses campaign IDs and publisher IDs instead of click IDs to attribute conversions probabilistically.

This allows you to continue tracking iOS conversions and attributing them to the right publisher and campaign, even without user-level data.

Privacy Postback: Receiving Postbacks without Click ID


Trackier has introduced a new procedure to address this situation, which allows you to use privacy postbacks to achieve probabilistic attribution and trackable data.

The MMP will no longer be returning click ids, so we will need to use Trackier and their sub-publishers and sub-campaigns to send them publisher and campaign ids from Adnetwork.

What Changed and Why

Since MMPs (Mobile Measurement Partners) like AppsFlyer can no longer return click IDs for opted-out users, a new parameter is needed to carry the campaign and publisher identification data through the tracking chain.

The parameter used depends on the platform in the chain:

Platform

Parameter

AppsFlyer

af_adset_id

Trackier

p8

Affise

sub8

Swarm

pea_chain

The configuration logic follows this structure:

&p8={p8}|{camp_id},{publisher_id}

This passes the publisher's campaign ID and publisher ID through each hop in the redirect chain, allowing each platform to attribute the conversion correctly at their level.

Why is this required?

  • In order to track conversion on Trackier's panel, we require a campaign ID and publisher ID because the advertiser will not send a click ID.

  • Additionally, we require the publisher's ID and campaign ID from the publisher end, which is why the configuration looks like this: &p8{p8}|{camp_id},{publisher_id}

Advertiser's Integration

There are two scenarios where your advertiser may be integrated.

Case 1: When your Advertiser is integrated with AppsFlyer

Step 1: Add the parameter to the Campaign URL

Append &af_adset_id={p8}|{camp_id},{publisher_id} to your campaign URL.

  • af_adset_id - AppsFlyer's parameter for receiving campaign and publisher data

  • {p8} -Trackier's parameter that captures the publisher's campaign ID and sub-publisher ID

  • {camp_id} - Your campaign ID on Trackier

  • {publisher_id} - Your publisher ID on Trackier

Privacy Postback: Receiving Postbacks without Click ID

Step 2 — Add the parameter to the Publisher Tracking URL

In the publisher's tracking link, append:

&p8={your_campaign_id},{your_sub_publisher_id}

This ensures the campaign and publisher IDs are passed forward to AppsFlyer when the user clicks.

Privacy Postback: Receiving Postbacks without Click ID


At the Conversion Level

In the postback URL configured on your advertiser's AppsFlyer account, append &p8={af_adset_id} so that AppsFlyer sends the campaign and publisher data back to Trackier on conversion.

  • Sample AppsFlyer Postback URL:

    https://demo2.trackier.co/acquisition?click_id=CLICK_ID&security_token=b50346a1c529c82dac33&p8={af_adset_id}

  • Impression Conversions: You can also track impression-based conversions through the privacy postback by appending &vta=1 to your postback URL:

    https://demo2.trackier.co/acquisition?click_id=CLICK_ID&security_token=b50346a1c529c82dac33&p8={af_adset_id}&vta=1

Privacy Postback: Receiving Postbacks without Click ID

Note:

You can record impression conversions as well through privacy postback.

  • Append &vta=1 in your privacy postback.

https://demo2.trackier.co/acquisition?click_id=CLICK_ID&security_token=b50346a1c529c82dac33&p8={af_adset_id}&vta=1

Case 2: Advertiser Using Tracking Software (Multi-Chain Setup)

Use this setup when the redirect chain involves multiple publishers and tracking platforms between the end advertiser and the final conversion.

In this scenario, the {p8} macro carries the campaign and publisher IDs of every hop in the chain, building up a pipe-separated string of IDs that gets passed all the way to the advertiser.

Step 1 : Receive Campaign and Publisher IDs in Your Tracking Link

Add the following structure to your tracking link:

https://abcd.gotrackier.com/click?campaign_id=1&pub_id=2&p1={click_id}&p8={p8}|{camp_id},{publisher_id}

Parameter breakdown:

Parameter

Description

&pub_id=

Your Publisher ID

&campaign_id=

Your Campaign ID

&p8=

Parameter for receiving campaign and publisher IDs from your publisher's sources

{p8}

Campaign and publisher IDs passed from your publisher's sources

{camp_id}

Campaign ID on your publisher's side

{publisher_id}

Publisher ID on your publisher's side

Step 2: Pass the Chain Data to Your Advertiser

Pass your campaign ID, publisher ID, and all sub-source IDs accumulated in {p8} to your advertiser via the privacy postback:

https://track.trackier.co/privacy_postback?security_token=XXX&p8={p8}


Clicks flow:

Client

Tracking link Format

Example

Client #4

https://client3.gotrackier.com/click?pub_id=3&campaign_id=3&p8={p8}|{camp_id},{publisher_id}
https://client3.gotrackier.com/click?pub_id=3&campaign_id=3&p8=4,4

Client #3

https://client2.gotrackier.com/click?pub_id=2&campaign_id=2&p8={p8}|{camp_id},{publisher_id}
https://client2.gotrackier.com/click?pub_id=2&campaign_id=2&p8=4,4|3,3

Client #2

https://client1.gotrackier.com/click?pub_id=1&campaign_id=1&p8={p8}|{camp_id},{publisher_id}
https://client1.gotrackier.com/click?pub_id=1&campaign_id=1&p8=4,4|3,3|2,2

Client #1

http://app.appsflyer.com/com.appsflyer?af_siteid={publisher_id}_{source}&af_c_id={campaign_id}&af_adset_id={p8}|{camp_id},{publisher_id}
http://app.appsflyer.com/com.appsflyer?af_siteid=1_abc&af_c_id=1&af_adset_id=4,4|3,3|2,2|1,1


Conversions flow:

Client

Trackier postback

Example data

AppsFlyer sends

http://client1.trackier.co/privacy_postback?security_token=XX&p8={af_adset_id}
http://client1.trackier.co/privacy_postback?security_token=XX&p8=4,4|3,3|2,2|1,1

Client #1

http://client1.trackier.co/privacy_postback?security_token=XX&p8={p8}
http://client1.trackier.co/privacy_postback?security_token=XX&p8=4,4|3,3|2,2|1,1

Client #2

http://client2.trackier.co/privacy_postback?security_token=XX&p8={p8}
http://client2.trackier.co/privacy_postback?security_token=XX&p8=4,4|3,3|2,2

Client #3

http://client3.trackier.co/privacy_postback?security_token=XX&p8={p8}
http://client3.trackier.co/privacy_postback?security_token=XX&p8=4,4|3,3

Client #4

http://client4.trackier.co/privacy_postback?security_token=XX&p8={p8}
http://client4.trackier.co/privacy_postback?security_token=XX&p8=4,4

Conclusion

Privacy postbacks allow you to maintain meaningful iOS campaign attribution even when click IDs are unavailable due to ATT opt-outs.

By passing campaign and publisher IDs through the p8 parameter at every hop in the redirect chain, Trackier can probabilistically attribute conversions back to the correct publisher and campaign preserving your reporting integrity in a privacy-first environment.

For related setup guides, refer to:


We're thrilled to have put together a top-notch team of qualified experts who are available to handle any of your concerns and respond to any inquiries you may have. You can contact us at any time by sending an email to support@trackier.com or using the in-platform chat feature.

Did this answer your question?