Kochava
Kochava is a mobile measurement platform. Advertisers integrated with Kochava can send attribution and in-app event data to CJ through automated postback URLs configured in the Kochava console β no manual server-to-server encoding required.
- You must have an active Kochava account with your app already configured in the Kochava console.
- Your CJ Client Integration Engineering (CIE) team will provide your CID (Account ID), TYPE (Action ID for each event), and Signature authentication token. No additional tagging document is required.
- Decide which CJ postback template to use based on your link type: the Legacy template for platform-specific tracking links, or the Universal / SmartLink template for universal links and Kochava SmartLinks.
- The Kochava SDK must be integrated in your app before postbacks can fire. If using server-to-server (S2S), ensure your S2S pipeline is operational.
- For iOS apps, ensure your app requests ATT authorization using Apple's AppTrackingTransparency framework before any tracking begins.
Step 1 β Configure Postback URLs
When a user completes an in-app action (such as a purchase), Kochava fires a postback URL to notify CJ. Kochava provides pre-configured CJ postback templates that simplify this setup.
As of March 2026, both simple and advanced actions are supported, and select vertical parameters are supported (see Vertical Parameters below).
How postbacks flow:
- User completes an in-app action (purchase, registration, etc.)
- Your app sends the event to the Kochava SDK or S2S endpoint
- Kochava processes the event and fires the configured CJ postback URL
- CJ receives the conversion data and attributes it to the correct campaign and publisher
Choosing a Postback Template
Kochava provides two postback templates for CJ, differentiated by the type of tracking link used in your campaign. Both templates send a trackingSource parameter to CJ to identify the origin.
| Template | Use With | Tracking Source |
|---|---|---|
| Legacy Template | Platform-specific tracking links (iOS or Android links created separately) | Kochava_legacy |
| Universal / SmartLink Template | Universal links or Kochava SmartLinks that route to multiple platforms from a single URL | Kochava_universal |
Access Postback Configuration
Postback Parameters
CIDTYPESignatureEvent ValueOID Behavior
The value sent in the OID parameter varies by event type:
- Install events: Kochava always sends
{kochava_device_id}_{timestamp_md5}. - In-app purchase events: Kochava sends the value of whatever macro the client has entered for OID β as long as the mapping matches an available value in the event segmentation. If no value is entered, Kochava defaults to
{kochava_device_id}_{timestamp_md5}.
For example, if an advertiser passes a value called offer_id in their event segmentation and wants it forwarded to CJ, they should enter {offer_id} in the OID field.
cjevent Click Tracking
For CJ to attribute in-app conversions back to the correct publisher click, the cjevent value must be passed in the click tracking link:
cjevent={eventId}
Contact your CJ CIE team to confirm this parameter is configured on your advertiser account before going live.
Vertical Parameters
As of March 2026, Kochava supports select CJ vertical parameters for situational commissioning. A complete reference is available at Additional Vertical Parameters.
Step 2 β SmartLinks for Install Attribution
SmartLinks are intelligent links that route users to the correct app store based on device type and attribute app installs back to the originating campaign. They are commonly used for off-network marketing channels (email, SMS, company website, social) and QR code campaigns.
What SmartLinks Do
- Automatically redirects iOS users to the App Store and Android users to Google Play β no manual branching required.
- Attributes installs from email, SMS, social media, and QR codes β channels that don't pass through traditional affiliate networks.
- Generates dynamic QR codes for digital use or static QR codes for print media directly from the Kochava console. Ideal for packaging, print ads, and employee onboarding flows.
Default SmartLinks for iOS and Android are created automatically when you configure a new app in Kochava β check whether these already exist before creating new ones.
Default SmartLinks are created for for iOS and Android. Amazon devices will be redirected to the Google Play Store when an Amazon App is added to a Smartlink. Windows devices will be redirected to the Catch-All Destination URL when a Windows App is added to a Smartlink.
For detailed SmartLink setup instructions, see Creating and Editing SmartLinks.
iOS App Tracking Transparency (ATT)
Since iOS 14, apps must request user permission before collecting device identifiers used for tracking. Kochava's Privacy Profiles automate the correct behavior based on each user's ATT consent status.
How Kochava Handles ATT
Kochava applies a default ATT opt-out privacy profile automatically for users who deny tracking. This profile maximizes data collection within Apple's compliance guidelines and maintains attribution capability β typically through SKAdNetwork β without requiring additional configuration for most apps.
You only need to customize the privacy profile if your organization requires stricter data limits beyond Apple's baseline requirements.
SDK Integration (Client-Side)
When using the Kochava SDK, the privacy profile rules apply automatically based on the user's ATT response. No additional code is required for standard compliance.
import AppTrackingTransparency
// Request ATT authorization before initializing Kochava
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Full IDFA available β standard tracking enabled
print("ATT authorized")
case .denied, .restricted:
// Kochava privacy profile takes effect automatically
print("ATT denied β privacy profile active")
case .notDetermined:
print("ATT not yet determined")
@unknown default:
break
}
// Initialize Kochava SDK after ATT response
KochavaTracker.shared.start(withAppGuid: "{{appGuid}}")
}Server-to-Server (S2S) Integration
When using S2S integration, privacy profile rules do not apply automatically. You must apply data redaction on your server before sending payloads to Kochava, and you must include the ATT status in every request.
- Apply data redaction for opted-out users BEFORE sending payloads to Kochava β privacy profiles do not automatically filter S2S data.
- Always include the att parameter in your S2S payload. If omitted, Kochava infers opt-out status from the absence of an IDFA.
- Only include the idfa field when ATT status is authorized (att: 3). Sending IDFA for denied or restricted users violates Apple's privacy policy.
{
"app_tracking_transparency": {
"att": {{attStatus}}
},
"device_ids": {
"idfa": "{{idfa}}"
},
"event_name": "purchase",
"event_data": {
"revenue": 29.99,
"currency": "USD"
}
}
// att values:
// 0 = not determined
// 1 = restricted
// 2 = denied
// 3 = authorized (only send idfa when att is 3)ATT Tracking Behavior
ATT AuthorizedATT Denied / RestrictedATT Not DeterminedCustomize Privacy Profiles (Optional)
For full documentation on privacy profile configuration, see the Kochava Privacy Profiles Guide.
