Skip to main content

Cookie Object

Overview

The cookie object contains detailed information about cookies used for platform and destination tracking in API implementations only. This object is specifically designed for server-side tracking where cookie values must be collected and preserved from the original user session, then transmitted through the API to enable proper attribution and tracking across various advertising platforms and analytics destinations.

Each cookie object represents a single cookie name-value pair that was present during the user's browser session and is required by specific tracking platforms or destinations used by the client for marketing attribution, conversion tracking, and audience building.

Core Structure

The cookie object consists of essential properties for platform integration:

  • Cookie Identification - Cookie name as used by tracking platforms
  • Cookie Value - The actual cookie value from user's browser session
  • Platform Requirements - Cookies required by specific destinations and platforms

Complete Reference

cookies[0] object

name string required

info

Cookie name.

name: "cookie_name"

value string required

info

Cookie value.

value: "cookie_value"

Implementation Examples

[
{
name: "_gid",
value: "GA1.2.123456789.1640995200"
},
{
name: "_ga",
value: "GA1.2.987654321.1640995200"
},
{
name: "_gcl_aw",
value: "GCL.1640995200.CjwKCAiA"
}
]

Different advertising and analytics platforms require specific cookies for proper attribution:

Google Analytics cookies:

[
{
name: "_ga", // Client ID
value: "GA1.2.123456789.1640995200"
},
{
name: "_gid", // Session ID
value: "GA1.2.987654321.1640995200"
}
]

Google Ads cookies:

[
{
name: "_gcl_aw", // Google Click ID for Ads
value: "GCL.1640995200.CjwKCAiA"
},
{
name: "_gcl_dc", // DoubleClick Campaign Manager
value: "GCL.1640995200.AbCdEfGh"
}
]

Server-Side Implementation Requirements

Since cookies are only available in API implementations, they must be collected and stored during the user's browser session:

// Example: Collecting cookies server-side for later API transmission
const sessionData = {
user_cookies: {
// Google Analytics
"_ga": request.cookies["_ga"],
"_gid": request.cookies["_gid"],

// Google Ads
"_gcl_aw": request.cookies["_gcl_aw"],

// Facebook Pixel
"_fbp": request.cookies["_fbp"],
"_fbc": request.cookies["_fbc"],

// Custom tracking
"custom_session_id": request.cookies["custom_session_id"]
}
};

// Later used in API call
const cookiesArray = Object.entries(sessionData.user_cookies)
.filter(([name, value]) => value !== undefined)
.map(([name, value]) => ({ name, value }));
// Store cookies in session for delayed API calls
function preserveCookiesInSession(req, session) {
const requiredCookies = [
'_ga', '_gid', '_gcl_aw', '_fbp', '_fbc'
];

session.tracking_cookies = {};

requiredCookies.forEach(cookieName => {
if (req.cookies[cookieName]) {
session.tracking_cookies[cookieName] = req.cookies[cookieName];
}
});
}

Client Destination Configuration

The cookies object should include only cookies required by the client's active destinations and platforms:

E-commerce Client Example

// Client using Google Ads + Facebook Ads
const ecommerceClientCookies = [
// Google Ads conversion tracking
{
name: "_gcl_aw",
value: "GCL.1640995200.CjwKCAiA"
},
// Google Analytics for attribution
{
name: "_ga",
value: "GA1.2.123456789.1640995200"
},
// Facebook Pixel for retargeting
{
name: "_fbp",
value: "fb.1.1640995200.123456789"
}
];

B2B Client Example

// Client using LinkedIn + Google Analytics
const b2bClientCookies = [
// LinkedIn conversion tracking
{
name: "_guid",
value: "12345678-1234-1234-1234-123456789012"
},
// Google Analytics for web analytics
{
name: "_ga",
value: "GA1.2.123456789.1640995200"
},
// Custom lead tracking
{
name: "lead_source_id",
value: "linkedin_campaign_123"
}
];

Multi-Platform Client Example

// Client using comprehensive tracking setup
const comprehensiveClientCookies = [
// Google ecosystem
{
name: "_ga",
value: "GA1.2.123456789.1640995200"
},
{
name: "_gcl_aw",
value: "GCL.1640995200.CjwKCAiA"
},
// Meta/Facebook
{
name: "_fbp",
value: "fb.1.1640995200.123456789"
},
// TikTok
{
name: "_ttp",
value: "123456789.abcdefgh"
},
// Pinterest
{
name: "_pin_unauth",
value: "dWlkPWFiY2RlZmdoaWprbG1ub3A"
}
];

Usage in API Events

The cookies object is used in API implementations within the cookies array:

Integration Patterns

Standard API Implementation

// Complete API event with cookies
{
event: {
name: "checkout_completed",
value: 299.99,
currency: "USD",
id: "ORDER_12345"
},
context: {
environment: "prod",
data_source: "website"
},
cookies: [
{
name: "_ga",
value: "GA1.2.123456789.1640995200"
},
{
name: "_gcl_aw",
value: "GCL.1640995200.CjwKCAiA"
},
{
name: "_fbp",
value: "fb.1.1640995200.123456789"
}
],
user: {
email: ["[email protected]"]
}
}

Delayed Order Processing

// Order processed later with preserved cookies
function processDelayedOrder(orderData, preservedCookies) {
const apiPayload = {
event: {
name: "checkout_completed",
value: orderData.total,
currency: orderData.currency,
id: orderData.order_id
},
cookies: preservedCookies.map(cookie => ({
name: cookie.name,
value: cookie.value
})),
// ... other event data
};

// Send to API
sendToReshapeAPI(apiPayload);
}
// Include cookies based on client configuration
function buildCookiesArray(allCookies, clientConfig) {
const requiredCookies = [];

// Google Ads client
if (clientConfig.platforms.includes('google_ads')) {
if (allCookies._gcl_aw) {
requiredCookies.push({
name: "_gcl_aw",
value: allCookies._gcl_aw
});
}
}

// Facebook Pixel client
if (clientConfig.platforms.includes('facebook')) {
if (allCookies._fbp) {
requiredCookies.push({
name: "_fbp",
value: allCookies._fbp
});
}
}

return requiredCookies;
}

Privacy and Compliance

GDPR Compliance

// Include cookies only with proper consent
function getCookiesWithConsent(userCookies, consentData) {
const allowedCookies = [];

// Analytics cookies (if consent given)
if (consentData.analytics_consent) {
if (userCookies._ga) {
allowedCookies.push({
name: "_ga",
value: userCookies._ga
});
}
}

// Marketing cookies (if consent given)
if (consentData.marketing_consent) {
if (userCookies._gcl_aw) {
allowedCookies.push({
name: "_gcl_aw",
value: userCookies._gcl_aw
});
}
}

return allowedCookies;
}
// Anonymize sensitive cookie values if required
function anonymizeCookies(cookies, anonymizationLevel) {
return cookies.map(cookie => {
if (anonymizationLevel === 'high') {
// Hash cookie values for privacy
return {
name: cookie.name,
value: hashValue(cookie.value)
};
}
return cookie;
});
}

Best Practices

Data Quality

  • Required Cookies Only - Include only cookies needed by client's active platforms
  • Valid Cookie Values - Ensure cookie values are current and properly formatted
  • Platform Accuracy - Match cookie names exactly as expected by destination platforms
  • Consent Compliance - Respect user privacy preferences and consent status

Implementation

  • Session Preservation - Collect cookies during user session for later API use
  • Error Handling - Handle missing or expired cookies gracefully
  • Selective Inclusion - Include cookies based on client platform configuration
  • Performance Optimization - Minimize cookie data size for API efficiency

Security

  • Data Transmission - Always use HTTPS for API calls containing cookie data
  • Cookie Validation - Validate cookie formats before transmission
  • Access Control - Restrict cookie data access to authorized systems only
  • Audit Trail - Log cookie usage for compliance and debugging

Platform Integration

  • Destination Mapping - Map cookies to specific advertising platform requirements
  • Attribution Accuracy - Ensure proper cookie-to-conversion attribution
  • Real-time Processing - Process cookie data promptly for optimal attribution
  • Cross-Platform Coordination - Coordinate cookie usage across multiple platforms

Google Ecosystem Cookies

Cookie NamePurposeExample Value
_gaGoogle Analytics Client IDGA1.2.123456789.1640995200
_gidGoogle Analytics Session IDGA1.2.987654321.1640995200
_gcl_awGoogle Ads Click IDGCL.1640995200.CjwKCAiA
_gcl_dcDoubleClick Campaign ManagerGCL.1640995200.AbCdEfGh

Meta/Facebook Cookies

Cookie NamePurposeExample Value
_fbpFacebook Browser Pixelfb.1.1640995200.123456789
_fbcFacebook Click IDfb.1.1640995200.AbCdEfGhIjKlMnOp

Other Platform Cookies

PlatformCookie NamePurpose
LinkedIn_guidLinkedIn Insight Tag
TikTok_ttpTikTok Pixel
Pinterest_pin_unauthPinterest Tag
Snapchat_scidSnapchat Pixel