Skip to main content

Advertiser Tracking Details

A complete reference for advertiser tracking in Swaarm - click macros for the tracking link, postback parameters, ATT macros, impression tracking, and sample URLs.

Updated over a week ago

This article is the reference for setting up tracking between Swaarm and your advertiser. It covers the macros you add to the advertiser tracking link and the postback parameters the advertiser sends back to Swaarm when a conversion occurs.

ℹ️ Looking for step-by-step setup instructions? See Create and configure an advertiser →

How S2S tracking works

Swaarm uses server-to-server (S2S) tracking - the standard method in performance marketing. Here's the flow at a high level:

  1. A user clicks the publisher's ad and is redirected through Swaarm

  2. Swaarm records the click and assigns a unique click ID

  3. Swaarm forwards the user to the advertiser's offer (via their MMP or direct link)

  4. The advertiser's platform / MMP stores the Swaarm click ID

  5. When the user converts (installs, purchases, etc.), the advertiser platform / MMP fires a postback to Swaarm containing the click ID

  6. Swaarm matches the postback to the original click and credits the publisher

The click ID / PEA chain is the thread that connects everything - without it, Swaarm cannot match the conversion back to the click.


Click Macros for Advertiser Tracking Link

These macros are added to the advertiser's tracking URL. Swaarm fills them in dynamically at the time of each click.

⚠️ {id} (click id) or {pea.chain} (token for privacy-enabled attribution conversions) are mandatory. The advertiser must pass it back in their postback URL so Swaarm can match the conversion to the click. Without it, conversions will appear in the Postback Log as unattributed.

Core macros

Macro

Description

Example

{id}

Swaarm click ID

BKCw30EAAAGLYGZcsAAAcVoAAAACAAAAAAAAACcP

{pea.chain}

Non-unique token generated by Swaarm (used for privacy-enabled attribution)

e6UKM7lLUwlwAWXUyNO25TCY

Publisher macros

Macro

Description

Example

{publisher.id}

Swaarm Publisher ID

123

{publisher.clickId}

Publisher's own click ID

0a81ad386f991aef1c191dfd60cc

{publisher.subId}

Publisher sub ID

456

{publisher.subSubId}

Publisher sub sub ID

789_1011_1213

{publisher.originalSubId}

Publisher group original sub ID

456

{publisher.realId}

Publisher group original publisher ID

2

{publisher.app}

Publisher app name or ID

coolgame_app

{publisher.app_store_id}

Publisher app store ID

343204456

{publisher.site}

Publisher site identifier

abc_game123

{publisher.placement}

Publisher placement identifier

abc_game123

{publisher.creative}

Publisher creative ID or name

coolgame_320x50

{publisher.unique1}

Publisher custom value 1

customvalue1

{publisher.unique2}

Publisher custom value 2

customvalue2

{publisher.unique3}

Publisher custom value 3

customvalue3

{publisher.unique4}

Publisher custom value 4

customvalue4

{publisher.unique5}

Publisher custom value 5

customvalue5

{term}

Search term (keyword)

Electric Vehicle

Offer macros

Macro

Description

Example

{offerId} / {offer.id}

Swaarm offer ID

12345

{offer.name}

Offer name

Ocean Clean Game

{offer.weGet}

Revenue per conversion

5

{offer.theyGet}

Payout per conversion

3

{offer.appsflyer_revenue}

Encrypted WeGet value for Appsflyer

big string value

{appsflyer.signature}

Appsflyer click signing signature

big string value

Device & user macros

Macro

Description

Example

{device.ids.idfa}

Apple iOS advertising identifier

4D6F-1226-9C60-0050E4C04654

{device.ids.gaid}

Google advertising identifier

GR56-1886-9D60-005776FC0465

{device.ids.idfa.sha1}

SHA1-hashed IDFA

4b9f7e7af585d014178cf26ec0c4aa18bd54a509

{device.ids.gaid.sha1}

SHA1-hashed GAID

8f0d9c8f1c5dcb4f0fbc7b5a87b9c9f4c8f9d4a3

{device.ids.idfv}

Identifier for Vendor (IDFV)

3K0XXXXX-83XX-HEXX-KIXX-29KH83XXXXXX

{device.geo.country}

Country code

DE

{device.geo.city}

City

Berlin

{device.geo.region}

Region or state

CA

{user.os}

Device operating system

Android

{user.os_version}

OS version

16.0.0

{user.make}

Device manufacturer

Samsung

{user.model}

Device model

GM-9621

{user.ip}

Device IP address

102.109.100.2

{user.language}

Device language

EN

{user.encodedLanguage}

URL-encoded device language

en-GB%2Cen%3Bq%3D0.9

{user.ua}

User agent string

Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/613.2.7 (KHTML, like Gecko) Mobile/19F77 Listonic3/501

{user.encoded_ua}

URL-encoded user agent string

Mozilla%2F5.0+%28iPhone%3B+CPU+iPhone+OS+10_3_1+like+Mac+OS+X%29+AppleWebKit%2F603.1.30+%28KHTML%2C+like+Gecko%29+Version%2F10.0+Mobile%2F14E304+Safari%2F602.1

{user.carrier}

Device carrier

Verizon

{http.referer}

HTTP referrer

Time macros

Macro

Description

Example

{time.date}

Date of click

2025-09-06

{time.datetime}

Date and time of click

2025-09-06T16:34:20

{time.timestamp}

Unix timestamp of click

1694018060

ATT / iOS privacy macros

Apple's iOS 14.5+ App Tracking Transparency (ATT) framework requires MMPs to pass additional parameters on click and impression URLs. Swaarm supports the following ATT macros for the advertiser tracking link:

Macro

Description

Example

{att}

ATT authorisation status

  • 0 = tracking not authorized

  • 1 = tracking is authorized

  • Unpopulated for mobile web traffic

{att_detail}

ATT authorisation detail

  • Authorization

  • Denied

  • Restricted

  • notDetermined

{att_duration}

Time in seconds the user took to respond to ATT prompt

59175525

{att_time}

Unix timestamp of ATT authorisation

1622163110

{device.ids.idfv}

Identifier for Vendor (IDFV) - used as a privacy-safe alternative to IDFA

3K0XXXXX-83XX-HEXX-KIXX-29KH83XXXXXX

🔗 Sample ATT tracking link:

ℹ️ Publishers pass ATT values into Swaarm using their own parameters: att, att_time, att_duration, att_detail, idfv, traffic_type on the click URL. See Publisher tracking details → for the corresponding publisher-side parameters.

To get to know more about SKAdNetwork and ATT tracking, go to SKAd Network.

MMP-specific transform macros

Macro

Description

{kochava_ad_platform}

Transforms traffic_type for Kochava:

in_appin_app,

mob_webm_web,

desktop_webweb

{performcb_ad_platform}

Transforms traffic_type for PerformCB: in_appapp,

mob_webweb,

desktop_webweb

{taptica_ad_platform}

Transforms traffic_type for Taptica:

in_app1,

mob_web2,

desktop_web3


Postback Parameters Supported by SWAARM

These are the parameters the advertiser (or their MMP) can pass back to Swaarm in the postback URL when a conversion occurs.

🔗 Sample postback URL

https://track.{yourdomain}.swaarm-clients.com/postback?click_id=[Click ID macro for Advertiser]&event_id=[Advertiser Event ID/name Macro]&sale_amount=[Payout per conversion macro]&gaid=[Google Advertising ID macro]&idfa=[iOS advertising ID Macro]

Core parameters

Parameter

Description

Example

click_id

Swaarm click ID

BKCw30EAAAGLYGZcsAAAcVoAAAACAAAAAAAAACcP

pea_chain

A non-unique token generated by the Swaarm platform

e6UKM7lLUwlwAWXUyN

event_id

ID of the conversion event

45332

our_event_type_id

Swaarm's internal event type ID for which the event was attributed

20876

event_name

Name of the conversion event

Purchase

event_value

JSON object with custom event data

{"level_reached": "4"}

offer_id

Swaarm offer ID

987654

publisher_id

Swaarm publisher ID

123

publisher_sub_id

Swaarm publisher sub ID

456

status

Advertiser's status for the conversion

Approved / Rejected

rejection_reason

Advertiser's reason for rejected attribution

in_app_store_validation

rejected_reason_value

Value related to the rejection

10

rejected_reason_subvalue

Sub-value related to the rejection

bot_traffic

Revenue & sale parameters

Parameter

Description

Example

aggregated_event_value

Total revenue generated by the user for this event (e.g. purchase value). Used to calculate ROAS.

10.00

sale_amount

Payout amount received from the advertiser for this conversion. Used for dynamic payouts instead of a fixed amount.

5.00

sale_amount_currency

Currency of the sale amount

USD

original_sale_amount

Revenue in crypto per conversion

1.50

original_sale_amount_currency

Currency of the revenue in crypto

Bitcoin

Device & app parameters

Parameter

Description

Example

gaid

Google Advertising ID

4R45-1226-D565-8850E4C0465

idfa

iOS IDFA

8C6CBCOD-5F43-4765-A6E6-84DFF3D24707

app_id

Publisher app ID

332193586

app_title

Publisher app name

MyApp

app_version

App version

5.13.1

os_name

Device OS

iOS

os_version

Device OS version

10.1.3

device_language

Device language

EN

user_agent

Device user agent string

Mozilla%2F5.0+%28iPhone%3B+CPU+iPhone+OS+10_3_1+like+Mac+OS+X%29+AppleWebKit%2F603.1.30+%28KHTML%2C+like+Gecko%29+Version%2F10.0+Mobile%2F14E304+Safari%2F602.1

device_name

Device model number

G313HZ

device_manufacturer

Device manufacturer name

Samsung

ip_address / device_ip

User device IP

102.109.100.2

cpu_type

CPU type of the device

CPU_SUBTYPE_ARM64

hardware_name

Hardware name of the device

D101AP

connection_type

Internet connection type

SM-cellular, Cable/DSL, Corporate

isp

Internet service provider

Verizon Internet

network_type

Network type

CTRadioAccessTechnologyLTE

country

Two-character country code

us

region

Region code

us, gb, kr

city

City

Berlin

postal_code

Postal code based on IP

12101

Timestamp parameters

Parameter

Description

Example

click_timestamp

Click timestamp from advertiser SDK

2020-06-04T21:00:56

conversion_timestamp

Conversion timestamp from advertiser SDK

2020-06-04T21:05:56

installed_at

First app open timestamp (SDK)

2020-06-04T21:06:56

install_begin_time

App download began (Android only)

2019-06-04T21:00:56

install_finish_time

App download completed

2019-06-04T21:05:56

gp_installed_at

Google Play install timestamp

2020-06-04T21:06:56

gp_opened_at

Google Play first open timestamp

2020-06-04T21:00:56

postback_time

Postback time from advertiser

2022-01-25 07:00:00

conversion_duration

Time between click and install in seconds

3453

Attribution & tracking parameters

Parameter

Description

Example

tracker_name

Name of the MMP or SDK

Adjust

sdk_version

SDK version

12.3.3

match_type

Attribution method

fingerprint, device_tag, google

click_attribution_window

Attribution window in hours

168

adjust_device_info

Adjust device ID

18546f6171f67e29d1cb983322ad1329

impression_based

1 if impression-based,

0 if not

1

is_organic

1 if organic,

0 if non-organic

1

tracking_enabled

1 if tracking enabled,

0 if not

1

tracking_limited

1 if tracking limited,

0 if not

0

postback_id

Postback ID from advertiser

WEhtwrkgjoirdkjweh

deeplink

Deeplink URL

myapp://product?id=650

partner_parameters

Custom partner parameters from SDK

client_id

adgroup_name

Ad group name from tracker

test_group

creative_name

Creative name from tracker

320x70_en

tune_status

Whether the click/conversion was flagged as suspicious: 1 = suspicious, 0 = not suspicious

0

retargeting

Whether the conversion is retargeted: 1 = yes, 0 = no

1

first_event

Whether this is the first time the event fired for this user: 1 = yes, 0 = no

1

Session & other parameters

Parameter

Description

Example

session_count

Sessions recorded by current SDK version

56

lifetime_session_count

Total lifetime sessions

78

timezone

Device timezone

UTC+0400

uq

Unique value for duplicate detection

abc123xyz

🔗 Sample Postback Link

https://track.yournetwork.swaarm-clients.com/postback?click_id=[Click ID macro for Advertiser]&event_id=[Advertiser Event ID/name Macro]&sale_amount=[Payout per conversion macro]&gaid=[Google Advertising ID macro]&idfa=[iOS advertising ID Macro]


Impression tracking

Impression tracking works the same way as click tracking - the same macros are supported. The key difference is that {id} represents the impression ID rather than the click ID.

⚠️ Publishers must include a unique impression ID in their impression tracking link so Swaarm can match the impression to a conversion.

All click macros listed above are supported on impression URLs. Postback parameters are the same as on the click level - see the Postback parameters section above →.

Did this answer your question?