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.

πŸ“‹Before You Implement
  • 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:

  1. User completes an in-app action (purchase, registration, etc.)
  2. Your app sends the event to the Kochava SDK or S2S endpoint
  3. Kochava processes the event and fires the configured CJ postback URL
  4. 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.

TemplateUse WithTracking Source
Legacy TemplatePlatform-specific tracking links (iOS or Android links created separately)Kochava_legacy
Universal / SmartLink TemplateUniversal links or Kochava SmartLinks that route to multiple platforms from a single URLKochava_universal

Access Postback Configuration

1
Log in to the Kochava console at console.kochava.com.
2
Navigate to your app under Apps & Assets.
3
Select Event Configuration > Postbacks.
4
Click Add Postback or New Postback Template.
5
Select CJ (Commission Junction) from the network dropdown.
6
Choose the appropriate template (Legacy or Universal / SmartLink) based on your link type.
7
Enter your CID, specify the TYPE (action ID) for the event, and input the Signature value. These values are provided by your CJ CIE team.
8
Click Save. Repeat for each in-app event you want to track.

Postback Parameters

Click any row to see type, format, and value examples.
Parameter
Description
Required
CID
Your unique CJ Account Identifier. Provided by your CJ CIE team.
Required
Type: StringFormat: Numeric string
Examples
5558879
Note: Your CID is tied to a specific advertiser program in CJ. Use the CID associated with the app you are configuring.
TYPE
The action ID for the event you are tracking. Must match the action tracker ID configured in CJ.
Required
Type: StringFormat: Numeric string
Examples
456354
Note: Your TYPE corresponds to a specific action ID on your CJ advertiser account.
Signature
Authentication token provided by CJ to verify that postback requests originate from an authorized source.
Optional
Event Value
The revenue or conversion value passed with the event. Typically mapped to a dynamic Kochava macro such as {revenue}.
Recommended
Type: Decimal
Examples
29.99
149.00
Note: Map this to the Kochava {revenue} macro so the actual transaction value is forwarded to CJ dynamically.

OID 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

  1. Automatically redirects iOS users to the App Store and Android users to Google Play β€” no manual branching required.
  2. Attributes installs from email, SMS, social media, and QR codes β€” channels that don't pass through traditional affiliate networks.
  3. 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.

Swift β€” ATT Request (iOS)
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.

πŸ“‹Before You Implement
  • 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.
S2S Payload β€” JSON
{
  "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

Click any row to see type, format, and value examples.
Parameter
Description
Required
ATT Authorized
User has opted in. Full device identifier (IDFA) collection is available. Standard attribution and postbacks fire with complete data.
Full tracking
Note: IDFA is available. All standard Kochava tracking features are enabled. CJ postbacks fire with full attribution data including device-level identifiers.
ATT Denied / Restricted
User has opted out. No IDFA is collected. Kochava uses SKAdNetwork for privacy-preserving attribution. Postbacks fire with available data per the active privacy profile.
Limited tracking
Note: Attribution relies on Apple's SKAdNetwork framework. Conversion data is aggregated β€” individual-level attribution is not available. Privacy profile controls which fields are included in postbacks.
ATT Not Determined
The ATT prompt has not been shown yet. Kochava treats this as opted-out until the user responds.
Deferred
Note: Request ATT authorization as early as possible in your app flow, before any tracking-dependent features are used.

Customize Privacy Profiles (Optional)

1
In the Kochava console, navigate to Apps & Assets > Privacy.
2
Select Privacy Profiles.
3
Click Create New Profile or edit the existing default profile.
4
Configure data collection rules for opted-out users per your organization's requirements.
5
Apply the profile to your app and click Save.

For full documentation on privacy profile configuration, see the Kochava Privacy Profiles Guide.