Commission Junction

What Is Commission Junction?

Commission Junction provides a platform that connects advertisers with a network of publishers, making it easier for both parties to find suitable partnerships. Publishers promote the advertisers’ products through various channels such as websites, blogs, social media, email marketing, etc. When a user clicks on an affiliate link and completes a desired action, the publisher earns a commission.


Product Type: Affiliate

Integration Type: Starter Kit & ID Sync

Event Source Type: Web

Event Scope: Conversion Events Only


Capabilities

  • Enables Commission Junction tag removal.
  • Ensures event data is streaming into Commission Junction for accurate commission reporting.

Considerations

  • You must obtain an access token, Enterprise ID, and Action Tracker ID from Commission Junction before sending events.
  • Work with your Commission Junction representative to confirm whether you need a Simple vs. Advanced Integration Action Tracker ID.
  • The default playbook supports Simple Integration; Advanced Integration requires item-level attributes in your events.
  • To populate cjEvent, the Commission Junction identity sync must be deployed (365-day cookie lifetime recommended).
  • Currency codes must be valid three-character ISO values.
  • This integration supports batching up to 500 events per request, based on the configured batch size.
  • Only order conversion events are included (order completed, updated, canceled).

Identity Sync

  • Sync Available: Yes
  • Required for Starter Kit: Yes
  • Prerequisites: N/A
  • Documentation: See Additional Commission Junction Documentation

Sync Details

  • Captures the cjevent click ID from URL parameters.
  • Required to link conversion events to ad clicks. Without this sync, conversions may not be tracked.

Starter Kit Setup Guide

1. Deploy the Commission Junction Sync

  • To collect the sync values (e.g., cjevent), you must implement a Commission Junction ID sync. Refer to the following documentation to complete the setup: Commission Junction – ID Sync Guide.

2. Gather Credentials

  • Access Token: Log in to the developer portal and create a personal access token:https://developers.cj.com/account/personal-access-tokens
    (Store this safely — CJ hides it after navigation.)

  • Contact CJ Support for:

    • Enterprise ID
    • Action Tracker ID

    Notes on Action Tracker ID:

    • Simple Integration → no item-level data
    • Advanced Integration → supports SKU, qtyx, amtx, etc.
    • The Starter Kit defaults to Simple Integration.

3. Add a Commission Junction Integration

  • From the integration library, add a Commission Junction integration. Then, fill out the Connection Parameters:
Connection ParameterDescription
ACCESS_TOKENToken obtained from the CJ developer portal.
ACTION_TRACKER_IDIdentifier for the commissionable action assigned by CJ.
ENTERPRISE_IDAdvertiser’s CJ enterprise identifier.
ENDPOINTGraphQL endpoint identifier used for order submission.

4. Configure Event Mapping

  • MetaRouter provides all of the event mappings that Commission Junction integrations typically require. You may add custom events, parameters, or mappings in accordance with Commission Junction’s API documentation.

5. Deploy to Pipeline

  • In the Pipelines tab, add your Commission Junction integration.
  • Select the correct integration revision.
  • Click Add Integration and finalize deployment.

Event Mappings

Global

Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.

Output KeyDescriptionExpected Input
enterpriseId RequiredString: This will pull the value of the Enterprise_ID as set in the Connection Parameters.$$ENTERPRISE_ID$$
orderId RequiredString: The advertiser-supplied Order ID number that identifies the transaction. Truncated after the 96th character. CJ prohibits PII. Only alphanumeric characters allowed; URL-encode special characters.properties.order_id
actionTrackerId RequiredString: The CJ-assigned Action ID for the commissionable sale or lead.$$ACTION_TRACKER_ID$$

Event Specific

order_completed

Output KeyDescriptionExpected Input
cjEvent RequiredString: Unique CJ-generated token passed to your site on click that stores referring publisher data for cookieless attribution.context.providers.commissionJunction.cjevent
amount Required if using Simple Integration Action TrackerNumber: Subtotal of a sale or lead-based action. Decimal only. No currency symbols or commas.properties.revenue
discountNumber: Optional whole order discount for simple and item-based orders.properties.discount
couponString: Coupon applied to the order (e.g., SPRING25). Max length 256 characters.properties.coupon
currency RequiredString: Three-character currency code.properties.currency
eventTime RequiredString: Timestamp of when the event occurred.timestamp
verticalParameters.orderSubtotalNumber: Revenue associated with the transaction, excluding shipping and tax.properties.revenue
verticalParameters.taxAmountNumber: Total tax associated with the transaction.properties.tax
verticalParameters.itemIdString: ID for the item. (Simple Actions Only).Expression – joins properties.products[*].product_id with commas
Expression OutputObject: Adds a custom parameter identifying MetaRouter as the tracking source.Expression – outputs { customParameters = { trackingSource = "metarouter" } }

order_updated

Output KeyDescriptionExpected Input
amount Required if using Simple Integration Action TrackerNumber: Subtotal of a sale or lead-based action. Decimal only. No currency symbols or commas.properties.revenue
discountNumber: Optional whole order discount for simple and item-based orders.properties.discount
couponString: Coupon applied to the order (e.g., SPRING25). Max length 256 characters.properties.coupon
currency RequiredString: Three-character currency code.properties.currency
updateTime RequiredString: Timestamp of when the event occurred.timestamp
verticalParameters.orderSubtotalNumber: Revenue associated with the transaction, excluding shipping and tax.properties.revenue
verticalParameters.taxAmountNumber: Total tax associated with the transaction.properties.tax
verticalParameters.itemIdString: ID for the item. (Simple Actions Only).Expression – joins properties.products[*].product_id with commas

order_canceled

Output KeyDescriptionExpected Input
updateTime RequiredString: Timestamp of when the event occurred.originalTimestamp

Required & Recommended Identifiers

These identifiers must be mapped to Commission Junction in order for successful user matching to occur.

AttributeExampleSync Injector Required?
cjevent Required&cjevent=adlj3gw5WWjns97fgwsfYes

Integration Validation

How to check if your API request processed All successful new orders, restatements, and cancellations will be available as a new line item for that order in our Commission Detail report. You may access this information using our Commission Detail API or Commission Detail reporting in the CJ Account Manager.

For every order restatement that successfully processes, Commission Detail reports will include two new records with two unique commission IDs for the restatement. One record will appear as a "zero" record, and will be a full reversal of the order. The subsequent record will represent the new state of the order and include all information provided in the order restatement.

Test Mode: When you send a request to CJ's Tracking API, by default CJ's system will attempt to process that request in production. However you may use Test Mode to send requests that you do not want to process in production. You can do so by sending your API requests to this endpoint https://tracking.api.cj.com/graphqltest

Any API requests sent to this endpoint are subject to the same validation as the production endpoint. Additionally, we will run all requests through order processing in production, but we will not post these requests into production reporting and they will not impact any real data for your affiliate program. Test Mode will not validate whether an order is locked or closed, or if it uses open-ended locking, so it is possible for something to process correctly in Test Mode but err out in production based on the order status.

Test Mode should be used during the development process to use CJ's Tracking API, in order to not impact production data. A CJ team member can provide you with the results of your testing when you are in the development process.


Additional Commission Junction Documentation