Attribution Tracking
Add your tags to Engine leads for attribution and reporting.
Format your tags
Every integration type uses {key} & {value} pairing
{key}: Your identifier, e.g.clientIdorsubId{value}: The real alphanumeric value for that specific click, e.g.8f3a2b1c9d
Supported Client Tag Keys
Below are the client tag keys that are currently supported.
Most common
tag.clientIdtag.subIdtag.subId1tag.subId2tag.campaignId
Also supported
tag.agentIdtag.clickIdtag.deviceIdtag.mediumtag.sourceIdtag.subId3tag.targettag.trafficsourcetag.userId
Client tag keys are case-sensitive. subid and subId are separate reporting keys.
❌
?tag.sub1={}&tag.sub2={}
Unsupported tags
❌
?tag.subId1={}&tag.subId2={}
{} is a literal placeholder. Engine stores empty values.
❌
?tag.subId1=value1&tag.subId2=value2
value1 and value2 are literal text, not real click values.
✅
?tag.subId1=8f3a2b1c9d&tag.subId2=4e7c1a92f0
Each key has a real value for that click.
Attribution Guides by Integration
Partner Page Embed Affiliate Link Native API Mobile SDK
Partner Page
Quick reference
Send via: URL query parameters
First tag: Start with ?
More tags: Separate each tag with &
Format & Example
Engine URL
Example with client tags
Start with your Engine URL
Engine provides the base URL, channel, and zone.
Add your tags
Start with
?. Separate multiple tags with&.Add your tags to the end of the URL.
Review the completed URL
Open the finished link.
Confirm the address bar shows real values, not
{}orvalue.
Verify and test
Web Embeds
Quick reference
Send via: HTML attribute string
First tag: Do NOT use ?
More tags: Separate each tag with &
Format & Example (No Auto-Mount)
Format & Example (If Auto-Mount)
Find your product tag
Without Automount: Find your
moneylion-{some-product}tag.With Automount: Use your product’s web-component script URL
Add the tag attribute
Do not use ?. Separate multiple tags with &.
Review the tag attribute
Confirm every key starts with tag. and uses a supported key.
Verify and test
Affiliate Link
Quick reference
Send via: URL query parameters
First query parameter: Start with ?
More parameters: Separate with &
Client tags: Start every key with tag.
Limit: Engine keeps up to five tag.* parameters
Format & Examples
Client tag parameters
Destination URL with client tags
If the URL already has query params, start with & instead of ?:
Append client tags
Destination URL with existing parameters
Example
Start with your tracking link
Use your tracking or redirect link.
Add your tags
Add
?tag.clientId=c1&tag.source=email>to the endUse your tracking platform's macro when it supplies a click value.
Review the completed URL
Click the link.
Confirm the resulting URL contains a real value, not a macro or
{}.
Verify and test
One thing that's different:
On a Partner Page, your system usually already knows the real value.
On an Affiliate Link, your affiliate/ad-tracking platform (Everflow, HasOffers/TUNE, CAKE, Impact, etc.) fills it in at the moment of the click, using that platform's own macro. See below
Third-Party Tracking or Redirect Platform
Open your offer setup in your tracking platform (Everflow, HasOffers/TUNE, CAKE, Impact, etc.).
Find the field called "Destination URL," "Offer URL," or "Tracking URL."
Set it to end with
tag.+ your key name + your platform's click-ID macro:Confirm it worked: click your own tracking link (or use your platform's link tester). The resulting URL should show
tag.subId2=followed by a real, unique value:
Native API Integrations
Quick reference
Keys: Use bare supported keys
Values: Send each value in a string array
Do not use: The tag. prefix
Format & Example
Add the clientTags object
Add
clientTagsto the top level of your request body.
Add one value per key
Give each key an array with one value. Use separate keys for multiple tags.
Review your request
Use supported bare keys. Do not add the
tag.prefix.Confirm every value is real, non-empty, and inside a string array.
Verify and test
More info: API Reference for the full request body, GET Lead Client Tags for reading tags back out.
Mobile SDK Integrations
Quick reference
Keys: Use bare supported keys
Values: Send each value in a string array
Do not use: The tag. prefix
Format & Examples
Add
clientTagsas a prop on<EngineSDK>.Give each key a string array.
Add
clientTagson the top-levelEngineSDKwidget.Use a
Map<String, List<String>>.
Pass
clientTagsinto theEngineSDKconstructor.Use
Map<String, List<String>>.
Add
clientTagsonEngineSDKConfig.Use
[String: [String]].
Add clientTags
React Native: add
clientTagsas a prop on<EngineSDK>.Flutter: add
clientTagson the top-levelEngineSDKwidget.Kotlin: pass
clientTagsinto theEngineSDKconstructor.Swift: add
clientTagsonEngineSDKConfig.
Set your tag values
React Native: give each key a string array. Use separate keys for multiple tags.
Flutter: use a
Map<String, List<String>>. Give each key one value per list.Kotlin: use a
Map<String, List<String>>. Give each key one value per list.Swift: use a
[String: [String]]dictionary. Give each key one value per array.
Review your configuration
Use supported bare keys. Do not add the
tag.prefix.Confirm every value is real, non-empty, and inside a string array.
Verify and test
Client tags are only sent on the prefill path.
Across React Native, Flutter, Kotlin, and Swift, that means bearerToken plus personalInformation must be provided. Without those, the SDK opens the default embed URL and does not attach clientTags.
Send prefill as separate named fields on the SDK (
personalInformation,loanInformation, etc.).Legacy
prefilledDatadeprecated July 2026
Last updated
Was this helpful?

