Consent Signal & Loyalty Exemption

Overview

The CJ Consent Signal enables advertisers to communicate consumer consent preferences for cookie usage and device access. The Universal Tag uses this signal to align tracking behavior with user privacy preferences.

Advertisers can also enable the Loyalty Exemption feature, which allows the Universal Tag to override consent restrictions during loyalty journeys.

Prerequisites

  • Universal Tag integration firing unconditionally
  • Request permission to enable Consent Signal functionality
  • Request Loyalty Exemption (optional, requires Consent Signal enabled)

Contact your CJ Client Integration Engineer to enable these features

Implementation

Step 1: Request Permissions

Contact your CJ Client Integration engineer to enable:

  • Consent Signal functionality
  • Loyalty Exemption (optional, but requires Consent Signal to be enabled)

Step 2: Set Consent Variable

Set the consent variable on every page before the Universal Tag loads:

// Boolean values (recommended)
window.cj.advertiserConsentStatus = true;  // consent given
window.cj.advertiserConsentStatus = false; // consent not given

// Numeric values (alternative)
window.cj.advertiserConsentStatus = 1; // consent given
window.cj.advertiserConsentStatus = 0; // consent not given

Step 3: Integrate with Consent Management Platform

Update consent status when users change preferences:

// Call when user consent changes
window.cjApi.setAdvertiserConsentStatus(true);  // consent given
window.cjApi.setAdvertiserConsentStatus(false); // consent not given

// Numeric alternatives
window.cjApi.setAdvertiserConsentStatus(1); // consent given
window.cjApi.setAdvertiserConsentStatus(0); // consent not given
⚠️

Important: Update window.cj.advertiserConsentStatus based on user consent preferences

Step 4: Whitelist Required Cookies

Ensure these cookies are whitelisted in your consent management system:

Verification

1. Check Tag Configuration

Verify in tag.js:

  • enableAdvertiserConsentSignal: true
  • enableAdvertiserLoyaltyOverride: true (if Loyalty Exemption enabled)

2. Verify Consent Variable

// Check in browser console
console.log(window.cj.advertiserConsentStatus);
// Should return: true, false, 1, or 0 (if undefined, there is an integration issue)

3. Check Device Access

  1. Open Developer Tools → Network tab
  2. Filter by pageInfo
  3. Verify isDeviceAccessGranted property matches consent status

4. Confirm Cookie Creation

  1. Open Developer Tools → Application tab
  2. Check for cjConsent cookie
  3. Decode cookie - sixth parameter shows consent status (Y, N, or 0)

Troubleshooting

Common Issues

Consent variable returns undefined

  • Ensure consent variable is set before Universal Tag loads
  • Check for JavaScript errors in console
  • Verify window.cj object initialization

Consent signal not updating

  • Verify window.cjApi.setAdvertiserConsentStatus() is called
  • Check CMP integration timing
  • Ensure CJ API loads before calling functions

Missing cjConsent cookie

  • Verify cookie whitelisting in CMP
  • Check browser privacy settings
  • Test with consent granted

Need help?

Submit a support ticket for account-specific support.

How to submit a ticket →