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 givenStep 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: Updatewindow.cj.advertiserConsentStatusbased on user consent preferences
Step 4: Whitelist Required Cookies
Ensure these cookies are whitelisted in your consent management system:
cjConsentcookie- All cookies with
cjprefix - recommended (see cookie list here)
Verification
1. Check Tag Configuration
Verify in tag.js:
enableAdvertiserConsentSignal: trueenableAdvertiserLoyaltyOverride: 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
- Open Developer Tools → Network tab
- Filter by pageInfo
- Verify
isDeviceAccessGrantedproperty matches consent status
4. Confirm Cookie Creation
- Open Developer Tools → Application tab
- Check for
cjConsentcookie - 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.cjobject 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.
Updated 11 days ago
