# DATA Reshape Knowledge Base > Server-side tracking implementation, data objects reference, and event documentation. - [DATA Reshape Knowledge Base](/index.md) ## api Server-side data collection through webhooks for e-commerce platforms, CRM systems, and enterprise applications. - [Webhooks Overview](/api.md): Server-side data collection through webhooks for e-commerce platforms, CRM systems, and enterprise applications. ### webhooks - [Custom Integration](/api/webhooks/custom.md): Custom webhook endpoints tailored to your business requirements and workflows. - [Event Create](/api/webhooks/reshape.md): Create and track event data with the Standard Integration ## destinations Supported analytics and advertising destinations for DATA Reshape server-side tracking. - [Destinations](/destinations.md): Supported analytics and advertising destinations for DATA Reshape server-side tracking. ### google-ads - [Google Ads Platform Recommended Setup](/destinations/google-ads.md) - [Google Ads Parameters](/destinations/google-ads/parameters.md) ### google-analytics Recommended Google Analytics 4 configuration for use with DATA Reshape server-side tracking. - [Google Analytics Setup](/destinations/google-analytics.md): Recommended Google Analytics 4 configuration for use with DATA Reshape server-side tracking. - [Google Analytics Parameters](/destinations/google-analytics/parameters.md): Default and custom parameters sent by DATA Reshape to Google Analytics 4. ### meta Recommended Meta Pixel and Conversions API configuration for use with DATA Reshape server-side tracking. - [Meta (Facebook) Setup](/destinations/meta.md): Recommended Meta Pixel and Conversions API configuration for use with DATA Reshape server-side tracking. - [Meta (Facebook) Parameters](/destinations/meta/parameters.md): Default and custom parameters sent by DATA Reshape to Meta Conversions API. ### tiktok Recommended TikTok Pixel and Events API configuration for use with DATA Reshape server-side tracking. - [TikTok Setup](/destinations/tiktok.md): Recommended TikTok Pixel and Events API configuration for use with DATA Reshape server-side tracking. - [TikTok Parameters](/destinations/tiktok/parameters.md): Default and custom parameters sent by DATA Reshape to TikTok Events API. ## events Events capture user interactions and business transactions on your website. They are pushed into the reshape array using window.reshape.push() and processed by the DATA Reshape script. - [Events Overview](/events.md): Events capture user interactions and business transactions on your website. They are pushed into the reshape array using window.reshape.push() and processed by the DATA Reshape script. ### ecommerce - [Billing Address Added](/events/ecommerce/billing-address-added.md): Track when visitors provide billing address information during the checkout process. - [Cart Viewed](/events/ecommerce/cart-viewed.md): Track when visitors view their shopping cart contents on your e-commerce website. - [Checkout Completed](/events/ecommerce/checkout-completed.md): Track when visitors successfully complete their purchase on your e-commerce website. - [Checkout Started](/events/ecommerce/checkout-started.md): Track when visitors begin the checkout process on your e-commerce website. - [Payment Method Selected](/events/ecommerce/payment-method-selected.md): Track when visitors select payment methods during the checkout process. - [Product Added to Cart](/events/ecommerce/product-added-to-cart.md): Track when visitors add products to their shopping cart on your e-commerce website. - [Product Added to Wishlist](/events/ecommerce/product-added-to-wishlist.md): Track when visitors add products to their wishlist or favorites list on your e-commerce website. - [Product Removed from Cart](/events/ecommerce/product-removed-from-cart.md): Track when visitors remove products from their shopping cart on your e-commerce website. - [Product Viewed](/events/ecommerce/product-viewed.md): Track when visitors view specific products on your e-commerce website with detailed product information for analytics and personalization. - [Shipping Detail Added](/events/ecommerce/shipping-detail-added.md): Track when visitors provide shipping information during the checkout process. ### forms - [Lead Closed](/events/forms/lead-closed.md): Track when qualified leads successfully convert to customers. - [Lead Created](/events/forms/lead-created.md): Track when visitors take actions that indicate potential business interest. - [Lead Disqualified](/events/forms/lead-disqualified.md): Track when leads are determined to not meet qualification criteria. - [Lead Qualified](/events/forms/lead-qualified.md): Track when leads meet qualification criteria and become sales-ready prospects. - [Login](/events/forms/login.md): Track when existing users successfully authenticate and access their accounts. - [Sign Up](/events/forms/sign-up.md): Track when visitors create new user accounts or register for services. ### interactions - [Click Interaction](/events/interactions/click.md): Track any click interaction on your website — buttons, links, images, forms, videos, and other UI elements. - [Click to Email](/events/interactions/click-to-email.md): Track when visitors click on email address links on your website. - [Click to Phone](/events/interactions/click-to-phone.md): Track when visitors click on phone number links on your website. - [Click to WhatsApp](/events/interactions/click-to-whatsapp.md): Track when visitors click on WhatsApp links on your website. ### spa - [Page Viewed](/events/spa/page_viewed.md): Track page views in Single Page Applications where URL changes don't trigger automatic page loads. ## general DATA Reshape is a server-side tracking platform that collects, processes, and streams data from your website to analytics and marketing destinations. It operates under your own domain (first-party) for accurate data collection, bypassing ad blockers and browser restrictions. - [DATA Reshape Documentation](/general.md): DATA Reshape is a server-side tracking platform that collects, processes, and streams data from your website to analytics and marketing destinations. It operates under your own domain (first-party) for accurate data collection, bypassing ad blockers and browser restrictions. ### global-code Guide to implementing the DATA Reshape tracking script on any website. - [Global Code Setup](/general/global-code.md): Guide to implementing the DATA Reshape tracking script on any website. - [Gomag implementation](/general/global-code/gomag.md) - [Global Code Implementation Guide](/general/global-code/merchantpro.md): Step-by-step guide to implementing the DATA Reshape tracking library on any website or platform. - [Shopify Implementation Guide](/general/global-code/shopify.md): Guide to implementing DATA Reshape tracking on Shopify stores. - [WordPress Implementation Guide](/general/global-code/wordpress.md): Guide to implementing DATA Reshape tracking on WordPress websites. ### monitoring How to allow the DATA Reshape tracking monitor through your firewall, WAF, or bot protection so it can verify your tracking setup. - [Allow Monitoring Your Tracking](/general/monitoring.md): How to allow the DATA Reshape tracking monitor through your firewall, WAF, or bot protection so it can verify your tracking setup. ### subdomain Guide to setting up a dedicated subdomain for server-side tracking. - [Custom Domain Setup](/general/subdomain.md): Guide to setting up a dedicated subdomain for server-side tracking. - [Cloudflare DNS Configuration](/general/subdomain/cloudflare.md): CNAME record configuration in Cloudflare with proper proxy settings. - [cPanel DNS Configuration](/general/subdomain/cpanel.md): CNAME record configuration in cPanel hosting environments. ## objects Data objects are the building blocks of the DATA Reshape tracking system. These standardized structures ensure consistent tracking across all events and implementations — both web (JavaScript) and API (webhooks). - [Objects Overview](/objects.md): Data objects are the building blocks of the DATA Reshape tracking system. These standardized structures ensure consistent tracking across all events and implementations — both web (JavaScript) and API (webhooks). ### consent-api The consent API object contains detailed information about user consent for events, enabling comprehensive tracking and analytics in backend implementations. - [Consent API Object](/objects/consent-api.md): The consent API object contains detailed information about user consent for events, enabling comprehensive tracking and analytics in backend implementations. ### context-api The context API object contains server-side context for events, enabling accurate tracking and attribution in backend implementations. - [Context API Object](/objects/context-api.md): The context API object contains server-side context for events, enabling accurate tracking and attribution in backend implementations. ### context-web The context web object contains browser context for events, enabling page tracking and analytics in JavaScript environments. - [Context Web Object](/objects/context-web.md): The context web object contains browser context for events, enabling page tracking and analytics in JavaScript environments. ### cookies The cookies object is a flat key-value map of browser cookies used for platform attribution and destination tracking in API implementations. - [Cookies Object](/objects/cookies.md): The cookies object is a flat key-value map of browser cookies used for platform attribution and destination tracking in API implementations. ### coupon The coupon object contains information about coupons and discount codes used in e-commerce events for promotion tracking and marketing analytics. - [Coupon Object](/objects/coupon.md): The coupon object contains information about coupons and discount codes used in e-commerce events for promotion tracking and marketing analytics. ### event The event object contains information about events used in e-commerce and analytics, enabling comprehensive event tracking and analytics. - [Event Object](/objects/event.md): The event object contains information about events used in e-commerce and analytics, enabling comprehensive event tracking and analytics. ### payment The payment object contains information about payment methods used in e-commerce events for payment tracking and financial analytics. - [Payment Object](/objects/payment.md): The payment object contains information about payment methods used in e-commerce events for payment tracking and financial analytics. ### product The product object contains information about products in e-commerce events for product tracking and analytics. - [Product Object](/objects/product.md): The product object contains information about products in e-commerce events for product tracking and analytics. ### shipping The shipping object contains information about shipping methods and delivery options used in e-commerce events for logistics tracking and analytics. - [Shipping Object](/objects/shipping.md): The shipping object contains information about shipping methods and delivery options used in e-commerce events for logistics tracking and analytics. ### user The user object contains information about customers and visitors for user identification, personalization, and analytics. - [User Object](/objects/user.md): The user object contains information about customers and visitors for user identification, personalization, and analytics. --- # Full Documentation Content # Webhooks Overview DATA Reshape webhooks provide server-to-server endpoints for sending tracking data directly from your backend systems. This enables reliable data collection without browser dependencies — ideal for e-commerce platforms, CRM systems, and any scenario where server-side tracking is required. ## Prerequisites[​](#Prerequisites "Direct link to Prerequisites") Plan Requirements Webhook access is available with **Data Source Addon** on **FLEX plan** and above. Contact DATA Reshape team to enable access for your account. Once approved, you'll receive: * **Script ID** — your unique project identifier (8 characters, uppercase alphanumeric) * **Access Token** — secret authentication key * **Webhook Base URL** — your configured endpoint (e.g. `https://dre2.yourdomain.com`) ## Authentication[​](#Authentication "Direct link to Authentication") All webhook requests require: * **Method**: `POST` * **Content-Type**: `application/json` * **Header**: `X-Dre-Access-Token: YOUR_ACCESS_TOKEN` * **Query Parameter**: `id=YOUR_SCRIPT_ID` ## Integration Methods[​](#Integration-Methods "Direct link to Integration Methods") ### Standard Integration[​](#Standard-Integration "Direct link to Standard Integration") Universal endpoint for tracking any approved event using the Reshape Standard Syntax. **[Event Create](/api/webhooks/standard/event-create)** — single endpoint for all event types (checkout\_completed, lead\_created, order\_canceled, etc.) with support for products, shipping, payments, coupons, user data, cookies, and consent. ``` $endpoint = 'https://dre2.yourdomain.com/webhooks/reshape/event?id=YOUR_SCRIPT_ID'; $ch = curl_init($endpoint); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode($payload), CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'X-Dre-Access-Token: YOUR_ACCESS_TOKEN' ], CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30 ]); $response = curl_exec($ch); curl_close($ch); ``` ### Custom Integration[​](#Custom-Integration "Direct link to Custom Integration") CUSTOM Plan Exclusive Available exclusively for **CUSTOM plan** subscribers with dedicated development resources. **[About Custom Integration](/webhooks/custom/about)** — specialized webhook endpoints designed for your specific business logic, data structures, and operational workflows. Built by the DATA Reshape team in collaboration with your technical team. ## Response Format[​](#Response-Format "Direct link to Response Format") ### Success[​](#Success "Direct link to Success") ``` { "emitter": "DATA Reshape", "detail": "Received. This has been processed.", "level": 2, "warnings": [] } ``` ### Success with Warnings[​](#Success-with-Warnings "Direct link to Success with Warnings") ``` { "emitter": "DATA Reshape", "detail": "Received. This has been processed.", "level": 2, "warnings": [ "context.url is missing. Fallback to config host.", "consent object does not match the required format and will be set to an object with all values set to true." ] } ``` ### Error[​](#Error "Direct link to Error") ``` { "emitter": "DATA Reshape", "detail": "event.id is missing or does not match the required format.", "level": 2 } ``` ### Development Mode[​](#Development-Mode "Direct link to Development Mode") Use `context.environment: "dev"` or append `/test` to the endpoint URL to validate payloads without processing: ``` { "emitter": "DATA Reshape", "detail": "Received. This will NOT be processed.", "level": 2, "warnings": [], "data_received": { } } ``` ## Getting Started[​](#Getting-Started "Direct link to Getting Started") 1. **Get credentials** — contact the DATA Reshape team for your Script ID and Access Token 2. **Review the data objects** — see [Objects Documentation](/objects.md) for the complete reference 3. **Implement the endpoint** — use [Event Create](/webhooks/standard/event-create) for standard integration 4. **Test with dev mode** — validate payloads using `environment: "dev"` before going to production 5. **Go live** — switch to `environment: "prod"` when ready ## Support[​](#Support "Direct link to Support") * **Email**: * **Portal**: --- # Custom Integration Custom Integration enables your business to have dedicated webhook endpoints designed specifically for your data structures, business logic, and operational workflows. Unlike the Standard Integration which uses a fixed schema, custom endpoints are built to match exactly how your systems work. CUSTOM Plan Exclusive Available exclusively for **CUSTOM plan** subscribers. Includes dedicated development resources and ongoing support from the DATA Reshape team. ## What We Build[​](#What-We-Build "Direct link to What We Build") A custom endpoint can handle any server-to-server data flow you need. The endpoint structure, validation rules, data transformation, and processing logic are all tailored to your requirements. There are no limitations on what can be built — if your system can send a POST request with JSON data, we can process it. Examples of what clients use custom endpoints for: * ERP order synchronization with custom data structures * CRM lead and customer data ingestion * Marketplace order imports with platform-specific formats * Inventory and stock update webhooks * Custom event tracking with business-specific schemas * Legacy system integration where adapting to standard schema isn't practical ## How It Works[​](#How-It-Works "Direct link to How It Works") 1. **Consultation** — we discuss your requirements, data structures, and integration points 2. **Development** — our team builds and tests the custom endpoints 3. **Testing** — you validate in a dev environment before going live 4. **Deployment** — production launch with monitoring 5. **Ongoing support** — maintenance, updates, and evolution as your business grows Typical delivery time is 5-9 weeks depending on complexity. ## What's Included[​](#Whats-Included "Direct link to What's Included") * Dedicated endpoint development by the DATA Reshape team * Technical consultation and architecture guidance * Comprehensive testing and validation * Documentation for your custom endpoints * Ongoing maintenance and support * Priority technical support with dedicated response times ## Get Started[​](#Get-Started "Direct link to Get Started") Contact the DATA Reshape team to discuss your requirements: * **Email**: * **Portal**: --- # Event Create ## Overview[​](#Overview "Direct link to Overview") The **`/webhooks/reshape/event`** endpoint provides a universal API for sending complete event data to DATA Reshape for tracking and analysis. This endpoint supports all approved event types with comprehensive data objects, enabling server-side tracking for e-commerce platforms, CRM systems, and enterprise applications. ## Endpoint Configuration[​](#Endpoint-Configuration "Direct link to Endpoint Configuration") ### **Request Details**[​](#Request-Details "Direct link to Request-Details") * **URL**: `/webhooks/reshape/event` * **Method**: `POST` * **Content-Type**: `application/json` * **Authentication**: Required ### **Authentication Requirements**[​](#Authentication-Requirements "Direct link to Authentication-Requirements") **Headers** * **`Content-Type`** *(required)* - Must be `application/json` * **`X-Dre-Access-Token`** *(required)* - Your secret access token **Query Parameters** * **`id`** *(required)* - Your script ID provided by DATA Reshape Team ### **Request Structure**[​](#Request-Structure "Direct link to Request-Structure") ``` { "event": { /* Event object with name, value, currency, id */ }, "context": { /* API context with environment, data source, user agent */ }, "products": [ /* Product array for e-commerce events */ ], "shipping": [ /* Shipping methods array */ ], "payments": [ /* Payment methods array */ ], "coupons": [ /* Discount coupons array */ ], "user": { /* Customer data object */ }, "cookies": { /* Platform cookies for attribution */ }, "consent": { /* Customer explicit consent */ } } ``` ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required info Core event object containing event identification, value, and properties. [**View complete Event Object documentation**](/objects/event.md) **name** string required info Name of the event to be sent. ``` name: "event_name" ``` **value** number required info Event value in decimal format. Represent the final total order amount, including all costs and discounts. ``` value: 123.99 ``` **currency** string required info Currency code that specifies the currency in which all monetary values from any object associated with this event are expressed. Note: This value can be overridden in nested objects if they contain their own `value` key with a currency specified. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Note: This value can be overridden in nested objects if they contain their own **value** key with a currency specified. ``` exchange_rate: 1 ``` **id** string required-if-applicable info Event ID — required for transactions or any actions that require deduplication or uniqueness. Represents the unique identifier of a transaction, order, or lead. This can be the unique order, transaction, or action ID used in your system. ``` id: "UNIQUE_TRANSACTION_123" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object required info API context object containing environment, data source, and preserved user interaction data. [**View complete Context API Object documentation**](/objects/context-api.md) **environment** string required info Allowed values: prod, dev ``` environment: "prod" ``` **data\_source** string required info Recommended values: * for website events: **website** * for admin manual added orders events: **phone** or **admin** * for app events: **app** * for marketplace events : **marketplace**. (You can replace "marketplace" word with real marketplace name.) ``` data_source: "website" ``` **user\_agent** string recommended info User-Agent string from a browser when the event occurs ``` user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36" ``` **override\_ip** string recommended info Ip address. Support ipv4 or ipv6. Recommended ipv6 if exists. ``` override_ip: "123.123.123.99" ``` **url** string recommended info URL of the page where the event occurred ``` url:"https://shop.example.com/thankyou-page" ``` **landing\_url** string recommended info URL of the first page visited in the session where the event occurred ``` landing_url:"https://shop.example.com/landing-page?query=abc" ``` **referrer\_url** string recommended info URL of the external referring site ``` referrer_url:"https://google.com" ``` **products** array required-if-applicable info Array of product objects for e-commerce events. Required for product-related events. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **shipping** array required-if-applicable info Array of shipping methods for checkout and order events. [**View complete Shipping Object documentation**](/objects/shipping.md) **shipping\[0]** object required **name** string required info Shipping method name ``` name: "Express Delivery" ``` **value** number required info Shipping cost value ``` value: 12.99 ``` **tax\_included** boolean recommended info Whether shipping cost includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for shipping (0-50) ``` tax_percent: 19 ``` **id** string info Shipping method identifier. ``` id: "SHIPPING_INTERNAL_ID" ``` **type** string info Shipping type. Free-form string, use consistent naming (e.g. "standard", "express", "next\_day", "pickup", "free"). ``` type: "standard" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **payments** array required-if-applicable info Array of payment methods for transaction events. [**View complete Payment Object documentation**](/objects/payment.md) **payments\[0]** object required **name** string required info Payment method name. ``` name: "Credit Card - Visa" ``` **value** number required info Amount paid with this payment method ``` value: 12.99 ``` **id** string info Payment method internal identifier ``` id: "PAYMENT_INTERNAL_ID" ``` **type** string info Payment type. Free-form string, use consistent naming (e.g. "card", "paypal", "bank\_transfer", "gift\_card", "cash\_on\_delivery"). ``` type: "card" ``` **coupons** array required-if-applicable info Array of discount coupons applied to the transaction. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** object required **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info Customer data object for user identification and analytics. [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` **consent** object recommended info Customer consent object. [**View complete Consent Object documentation**](/objects/consent-api.md) **analytics** boolean required info Indicates the user’s explicit consent regarding the collection and processing of data for analytical purposes, such as performance monitoring, usage statistics, and service optimization. ``` analytics: true ``` **personalization** boolean required info Indicates the user’s explicit consent regarding the collection and processing of data for personalization purposes, enabling tailored experiences and content customization. ``` personalization: true ``` **marketing** boolean required info Indicates the user’s explicit consent regarding the collection and processing of data for marketing purposes, such as targeted advertising, remarketing, and campaign measurement. ``` marketing: true ``` **cookies** object recommended info Flat key-value object with platform cookies for attribution and tracking. Each key represents the cookie name and the value represents the cookie value. Both keys and values must be strings. Only cookies mapped by DATA Reshape will be processed — unmapped cookies are accepted but silently ignored. [**View complete Cookies Object documentation**](/objects/cookies.md) ## Event Examples[​](#Event-Examples "Direct link to Event Examples") These examples demonstrate complete data object structures for key events. Each example includes both full implementation and minimal required fields. * Complete All Fields * Checkout Completed * Order Canceled * Lead Created * Lead Qualified * Lead Closed ### **Complete Example with All Possible Fields**[​](#Complete-Example-with-All-Possible-Fields "Direct link to Complete-Example-with-All-Possible-Fields") ``` { "event": { "name": "checkout_completed", "value": 2399.96, "currency": "USD", "exchange_rate": 1, "id": "ORDER_SUCCESS_789456", "properties": { "payment_method": "credit_card", "shipping_method": "express", "checkout_duration_seconds": 420, "newsletter_subscription": true, "gift_message_added": false } }, "context": { "environment": "prod", "data_source": "website", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "override_ip": "185.120.45.123", "url": "https://shop.example.com/checkout/success", "landing_url": "https://shop.example.com/electronics/professional?utm_source=google&utm_medium=cpc&utm_campaign=pro_cameras", "referrer_url": "https://google.com/search?q=professional+cameras" }, "products": [ { "id": "DSLR_CAMERA_PRO_001", "parent_id": "DSLR_CAMERA_PRO_SERIES", "sku": "DSLR-PRO-24MP-001", "parent_sku": "DSLR-PRO-24MP", "gtin": "2468135790864", "mpn": "DSLR-PRO-2024-001", "ean": "2468135790864", "name": "Professional DSLR Camera 24.2MP", "parent_name": "Professional DSLR Camera Series", "brand": "PhotoMaster", "type": "simple", "price_base": 1599.99, "price": 1399.99, "currency": "USD", "exchange_rate": 1, "tax_included": true, "tax_percent": 8, "quantity": 1, "stock_status": true, "stock_location": "Professional Equipment Warehouse", "created_at": 1748505040077, "url": "https://shop.example.com/dslr-camera-professional-24mp", "parent_url": "https://shop.example.com/dslr-cameras-professional", "image": "https://cdn.example.com/images/dslr-pro-001.jpg", "images": [ "https://cdn.example.com/images/dslr-pro-001-front.jpg", "https://cdn.example.com/images/dslr-pro-001-side.jpg" ], "category": "Electronics > Cameras > DSLR", "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Cameras", "id": "cat_cameras" }, { "name": "DSLR", "id": "cat_dslr" } ], "coupons": [ { "name": "CAMERA_DEAL", "value": 200.00, "tax_included": true, "tax_percent": 8, "type": "SEASONAL" } ], "properties": { "sensor_type": "APS-C", "megapixels": 24.2, "video_resolution": "4K", "warranty_years": 2, "model_year": 2024 } }, { "id": "LENS_ZOOM_75_300", "sku": "LENS-ZOOM-75-300", "name": "Telephoto Zoom Lens 75-300mm", "brand": "PhotoMaster", "type": "simple", "price_base": 499.99, "price": 449.99, "currency": "USD", "tax_included": true, "tax_percent": 8, "quantity": 1, "category": "Electronics > Camera Accessories > Lenses" } ], "shipping": [ { "name": "Express Delivery", "value": 24.99, "currency": "USD", "exchange_rate": 1, "tax_included": true, "tax_percent": 8, "id": "SHIP_EXPRESS_001", "type": "express" } ], "payments": [ { "name": "Credit Card - Visa", "value": 2399.96, "id": "PAY_VISA_001", "type": "card" } ], "coupons": [ { "name": "WELCOME25", "value": 400.00, "currency": "USD", "exchange_rate": 1, "tax_included": true, "tax_percent": 8, "id": "COUPON_WELCOME25", "type": "WELCOME" } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+1555123456", "first_name": "John", "last_name": "Doe", "country": "US", "region": "California", "city": "San Francisco", "street": "123 Market Street, Apt 4B", "postal_code": "94105", "orders_total_number": 3, "orders_canceled_number": 0, "orders_total_value": 3567.89, "orders_refunded_value": 0, "predicted_value": 5000.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "preferred_categories": "electronics", "loyalty_tier": "gold" } }, "consent": { "analytics": true, "personalization": true, "marketing": true }, "cookies": { "_ga": "GA1.2.123456789.1640995200", "_gid": "GA1.2.987654321.1640995200", "_gcl_aw": "GCL.1640995200.CjwKCAiA", "_fbp": "fb.1.1640995200.123456789" } } ``` ### **Complete Example**[​](#Complete-Example "Direct link to Complete-Example") ``` { "event": { "name": "checkout_completed", "value": 1299.97, "currency": "EUR", "exchange_rate": 1, "id": "ORDER_SUCCESS_789456", "properties": { "payment_method": "credit_card", "shipping_method": "express" } }, "context": { "environment": "prod", "data_source": "website", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "override_ip": "185.120.45.123", "url": "https://shop.example.com/checkout/success" }, "products": [ { "id": "LAPTOP_PRO_001", "sku": "LP-PRO-15-2024", "name": "Gaming Laptop Pro 15", "brand": "TechGaming", "type": "simple", "price_base": 1399.99, "price": 1199.99, "currency": "EUR", "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics" } ], "shipping": [ { "name": "Express Delivery", "value": 24.99, "currency": "EUR", "tax_included": true, "tax_percent": 19, "type": "express" } ], "payments": [ { "name": "Credit Card - Visa", "value": 1299.97, "type": "card" } ], "coupons": [ { "name": "WELCOME25", "value": 300.00, "currency": "EUR", "tax_included": true, "tax_percent": 19, "type": "WELCOME" } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "John", "last_name": "Doe", "country": "RO", "city": "Bucuresti" }, "consent": { "analytics": true, "personalization": true, "marketing": true } } ``` ### **Minimal Required Example**[​](#Minimal-Required-Example "Direct link to Minimal-Required-Example") ``` { "event": { "name": "checkout_completed", "value": 1299.97, "currency": "EUR", "id": "ORDER_SUCCESS_789456" }, "context": { "environment": "prod", "data_source": "website" }, "products": [ { "id": "LAPTOP_PRO_001", "price": 1199.99, "quantity": 1 } ], "shipping": [ { "name": "Standard Delivery", "value": 15.99 } ], "payments": [ { "name": "Credit Card", "value": 1299.97 } ] } ``` ### **Complete Example**[​](#Complete-Example-1 "Direct link to Complete-Example-1") ``` { "event": { "name": "order_canceled", "value": 0, "currency": "USD", "id": "ORDER_CANCEL_567890", "properties": { "cancellation_reason": "customer_request", "refund_amount": 299.99, "cancellation_source": "customer_portal" } }, "context": { "environment": "prod", "data_source": "admin", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36", "override_ip": "192.168.1.100", "url": "https://admin.example.com/orders/cancel" }, "user": { "id": "CUST_67890", "email": "customer@example.com", "phone": "+1555123456", "first_name": "Jane", "last_name": "Smith", "country": "US" } } ``` ### **Minimal Required Example**[​](#Minimal-Required-Example-1 "Direct link to Minimal-Required-Example-1") ``` { "event": { "name": "order_canceled", "id": "ORDER_CANCEL_567890" }, "context": { "environment": "prod", "data_source": "admin" } } ``` ### **Complete Example**[​](#Complete-Example-2 "Direct link to Complete-Example-2") ``` { "event": { "name": "lead_created", "value": 250.00, "currency": "EUR", "id": "LEAD_CONTACT_890", "properties": { "lead_source": "contact_form", "lead_quality_score": 85, "consultation_requested": true } }, "context": { "environment": "prod", "data_source": "website", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36", "override_ip": "185.120.45.123", "url": "https://example.com/contact/web-development" }, "user": { "email": "john.doe@company.com", "phone": "+40712345678", "first_name": "John", "last_name": "Doe", "country": "RO", "region": "Bucuresti", "city": "Bucuresti", "predicted_value": 2500.00, "created_at": 1754926521690, "properties": { "job_title": "Marketing Manager", "company_industry": "software_development", "contact_preference": "email" } }, "consent": { "analytics": true, "personalization": true, "marketing": true } } ``` ### **Minimal Required Example**[​](#Minimal-Required-Example-2 "Direct link to Minimal-Required-Example-2") ``` { "event": { "name": "lead_created", "id": "LEAD_CONTACT_890" }, "context": { "environment": "prod", "data_source": "website" } } ``` ### **Complete Example**[​](#Complete-Example-3 "Direct link to Complete-Example-3") ``` { "event": { "name": "lead_qualified", "value": 1500.00, "currency": "USD", "id": "LEAD_QUALIFIED_123", "properties": { "qualification_method": "score_threshold", "lead_score": 95, "sales_rep_assigned": "sarah_johnson", "follow_up_scheduled": true } }, "context": { "environment": "prod", "data_source": "crm", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "override_ip": "203.45.67.89", "url": "https://crm.example.com/leads/qualify" }, "user": { "id": "LEAD_USER_456", "email": "prospects@techcorp.com", "phone": "+1555987654", "first_name": "Michael", "last_name": "Thompson", "country": "US", "region": "California", "predicted_value": 8500.00, "properties": { "company": "TechCorp Solutions", "job_title": "CTO", "company_size": "100-500", "industry": "technology" } } } ``` ### **Minimal Required Example**[​](#Minimal-Required-Example-3 "Direct link to Minimal-Required-Example-3") ``` { "event": { "name": "lead_qualified", "id": "LEAD_QUALIFIED_123" }, "context": { "environment": "prod", "data_source": "crm" } } ``` ### **Complete Example**[​](#Complete-Example-4 "Direct link to Complete-Example-4") ``` { "event": { "name": "lead_closed", "value": 4500.00, "currency": "USD", "id": "LEAD_CLOSED_456", "properties": { "closure_reason": "won", "sales_cycle_days": 45, "contract_type": "annual", "deal_size": "enterprise" } }, "context": { "environment": "prod", "data_source": "crm", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36", "override_ip": "172.16.254.1", "url": "https://crm.example.com/deals/close" }, "user": { "id": "CUSTOMER_789", "email": "decision.maker@enterprise.com", "phone": "+1555246810", "first_name": "Robert", "last_name": "Wilson", "country": "US", "region": "New York", "orders_total_value": 4500.00, "created_at": 1740000000000, "properties": { "company": "Enterprise Corp", "job_title": "VP of Technology", "company_size": "1000+", "industry": "finance" } } } ``` ### **Minimal Required Example**[​](#Minimal-Required-Example-4 "Direct link to Minimal-Required-Example-4") ``` { "event": { "name": "lead_closed", "id": "LEAD_CLOSED_456" }, "context": { "environment": "prod", "data_source": "crm" } } ``` ## Response Format[​](#Response-Format "Direct link to Response Format") ### **Success Response**[​](#Success-Response "Direct link to Success-Response") ``` { "emitter": "DATA Reshape", "detail": "Received. This has been processed.", "level": 2, "warnings": [] } ``` ### **Success Response with Warnings**[​](#Success-Response-with-Warnings "Direct link to Success-Response-with-Warnings") ``` { "emitter": "DATA Reshape", "detail": "Received. This has been processed.", "level": 2, "warnings": [ "context.url is missing. Fallback to config host.", "consent object does not match the required format and will be set to an object with all values set to true." ] } ``` ### **Error Response**[​](#Error-Response "Direct link to Error-Response") ``` { "emitter": "DATA Reshape", "detail": "event.id is missing or does not match the required format.", "level": 2 } ``` ### **Development Environment Response**[​](#Development-Environment-Response "Direct link to Development-Environment-Response") When `context.environment` is set to `dev` or the endpoint ends with `/test`, the event is not processed but you receive the validated payload for debugging: ``` { "emitter": "DATA Reshape", "detail": "Received. This will NOT be processed.", "level": 2, "warnings": [], "data_received": { } } ``` ## Implementation[​](#Implementation "Direct link to Implementation") ### **PHP Example (Recommended)**[​](#PHP-Example-Recommended "Direct link to PHP-Example-Recommended") ``` $scriptId = 'YOUR_SCRIPT_ID'; $accessToken = 'YOUR_ACCESS_TOKEN'; $endpoint = 'https://your-subdomain.datareshape.net/webhooks/reshape/event?id=' . $scriptId; $payload = [ 'event' => [ 'name' => 'checkout_completed', 'value' => 299.99, 'currency' => 'RON', 'id' => $orderId ], 'context' => [ 'environment' => 'prod', 'data_source' => 'website', 'user_agent' => $_SERVER['HTTP_USER_AGENT'] ?? '', 'url' => 'https://shop.example.com/checkout/success' ], 'products' => $products, 'shipping' => $shipping, 'payments' => $payments, 'user' => [ 'email' => $customer['email'], 'first_name' => $customer['first_name'], 'last_name' => $customer['last_name'] ], 'cookies' => [ '_ga' => $_COOKIE['_ga'] ?? null, '_fbp' => $_COOKIE['_fbp'] ?? null ], 'consent' => [ 'analytics' => true, 'personalization' => true, 'marketing' => true ] ]; $ch = curl_init($endpoint); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode($payload), CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'X-Dre-Access-Token: ' . $accessToken ], CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30 ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode === 200) { $data = json_decode($response, true); // Check warnings array for any issues if (!empty($data['warnings'])) { error_log('DATA Reshape warnings: ' . implode(', ', $data['warnings'])); } } else { error_log('DATA Reshape error (' . $httpCode . '): ' . $response); } ``` ## Best Practices[​](#Best-Practices "Direct link to Best Practices") 1. **Event Validation** — validate event data before sending to ensure required fields are present 2. **Unique IDs** — use consistent, unique identifiers for events to prevent duplicate tracking 3. **Value Calculation** — ensure event values accurately represent business metrics 4. **Properties Limit** — keep custom properties focused and limit to 5 key properties for optimal performance 5. **Currency Consistency** — use consistent currency codes across related events 6. **Environment Testing** — use `context.environment: "dev"` or the `/test` endpoint suffix during integration to validate payloads without processing ## Support[​](#Support "Direct link to Support") For technical support and integration assistance: * **Email**: --- # Destinations Destinations are the analytics and advertising platforms where DATA Reshape sends your tracking data. Each destination receives events processed through your server-side infrastructure, ensuring accurate attribution and improved data quality. ## Supported Destinations[​](#Supported-Destinations "Direct link to Supported Destinations") | Destination | Type | Documentation | | ------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------ | | [Google Analytics 4](/destinations/google-analytics.md) | Analytics | [Setup](/destinations/google-analytics.md), [Parameters](/destinations/google-analytics/parameters.md) | | Google Ads | Advertising | *Coming soon* | | [Meta (Facebook)](/destinations/meta.md) | Advertising | [Setup](/destinations/meta.md), [Parameters](/destinations/meta/parameters.md) | | [TikTok](/destinations/tiktok.md) | Advertising | [Setup](/destinations/tiktok.md), [Parameters](/destinations/tiktok/parameters.md) | | Criteo | Advertising | *Coming soon* | ## Documentation Structure[​](#Documentation-Structure "Direct link to Documentation Structure") Each destination has two pages: * **Setup** — recommended configuration in the destination's own interface for optimal tracking with DATA Reshape * **Parameters** — default and custom parameters sent by DATA Reshape, and how to use them in the destination ## How It Works[​](#How-It-Works "Direct link to How It Works") 1. Events are collected via the tracking script or webhooks 2. DATA Reshape processes, validates, and enriches the data 3. Processed events are delivered server-side to each configured destination 4. Each destination receives only the events mapped in your account configuration --- # Google Ads Platform Recommended Setup --- # Google Ads Parameters --- # Google Analytics Setup Recommended configuration for your Google Analytics 4 property when using DATA Reshape server-side tracking. info These are our recommendations for optimal tracking accuracy. Your setup may vary based on your specific requirements. This guide assumes you already have a GA4 property created. If not, create one first at [analytics.google.com](https://analytics.google.com). ## Reporting Identity[​](#Reporting-Identity "Direct link to Reporting Identity") **Admin → Data display → Reporting identity** Select **Blended**. This combines User-ID, Google Signals, device ID, and modeling to provide the most complete view of your users across sessions and devices. ## Google Signals[​](#Google-Signals "Direct link to Google Signals") **Admin → Data collection and modification → Data collection → Google signals data collection** Turn **On**. Google Signals enables cross-device reporting, remarketing audiences, and demographics data in your reports. ## User-ID and User-Provided Data[​](#User-ID-and-User-Provided-Data "Direct link to User-ID and User-Provided Data") **Admin → Data collection and modification → Data collection → User-ID and user-provided data collection** Enable both settings: * **User-ID collection** → On * **User-provided data collection** → On Then set: * **Collect automatically-detected user-provided data** → **Off** User data (email, phone, etc.) is collected and hashed by DATA Reshape before being sent to GA4. Automatic detection by GA4 is not needed and may cause duplicates or collect data without proper consent. ## User Data Collection Acknowledgement[​](#User-Data-Collection-Acknowledgement "Direct link to User Data Collection Acknowledgement") **Admin → Data collection and modification → Data collection → User Data Collection Acknowledgement** Click **I acknowledge**. This is required by Google to confirm that you have appropriate consent mechanisms in place for collecting user data. ## Referral Exclusions[​](#Referral-Exclusions "Direct link to Referral Exclusions") **Admin → Data collection and modification → Data streams → \[your stream] → Configure tag settings → List unwanted referrals** Add your payment processors to prevent them from appearing as traffic sources and breaking attribution. Common examples: | Payment Processor | Domain(s) to exclude | | ----------------- | ---------------------- | | PayPal | `paypal.com` | | Stripe | `stripe.com` | | Netopia | `netopia-payments.com` | | euPlatesc | `euplatesc.ro` | | Mobilpay | `mobilpay.ro` | | 3D Secure pages | Your bank's 3DS domain | Add any other payment gateway domains that redirect users during checkout. Without these exclusions, returning users are attributed to the payment processor instead of the original traffic source. ## Official Documentation[​](#Official-Documentation "Direct link to Official Documentation") * [Google Analytics 4 Admin overview](https://support.google.com/analytics/answer/6132368) * [Reporting identity](https://support.google.com/analytics/answer/10976610) * [Google Signals](https://support.google.com/analytics/answer/9445345) * [User-ID](https://support.google.com/analytics/answer/9213390) * [User-provided data collection](https://support.google.com/analytics/answer/14077171) * [List unwanted referrals](https://support.google.com/analytics/answer/10327750) --- # Google Analytics Parameters ## Default Parameters[​](#Default-Parameters "Direct link to Default Parameters") DATA Reshape sends events to GA4 using the standard Measurement Protocol parameters. For the full list of default parameters and their descriptions, see the official documentation: * [GA4 Measurement Protocol parameters](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference) * [GA4 event parameters reference](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events) * [Automatically collected events](https://support.google.com/analytics/answer/9234069) * [Enhanced measurement events](https://support.google.com/analytics/answer/9216061) ## Custom Parameters[​](#Custom-Parameters "Direct link to Custom Parameters") In addition to default parameters, DATA Reshape can send custom parameters with each event. These parameters carry additional data from your implementation that is not covered by GA4's standard schema. Custom parameters are **not visible in GA4 reports by default**. To use them, you need to register them as **Custom Dimensions** or **Custom Metrics** in your GA4 property. ### How to register Custom Dimensions[​](#How-to-register-Custom-Dimensions "Direct link to How to register Custom Dimensions") **Admin → Data display → Custom definitions → Custom dimensions → Create custom dimension** For each parameter you want to use in reports: | Field | Description | | ----------------------------------- | -------------------------------------------------------------------- | | **Dimension name** | Display name in your reports (e.g. "Payment Method") | | **Scope** | **Event** for per-event data, **User** for user-level data | | **Event parameter / User property** | Exact parameter name as sent by DATA Reshape (e.g. `payment_method`) | ### Available Custom Parameters[​](#Available-Custom-Parameters "Direct link to Available Custom Parameters") These are the custom parameters DATA Reshape sends to GA4 by default. Some may not be present if the data source does not provide them. #### Event Scope[​](#Event-Scope "Direct link to Event Scope") | Parameter | Description | | -------------------------- | --------------------------------------------------- | | `payment_type` | Payment method used for the transaction | | `integration` | DATA Reshape integration source identifier | | `last_ad_source` | Last advertising platform that drove the user | | `new_customer` | Whether this is the customer's first purchase | | `browser_storage` | Browser storage identifiers available at event time | | `customer_lifetime_orders` | Total number of orders for this customer | | `customer_lifetime_value` | Total revenue from this customer | | `data_source` | Origin of the event data (e.g. website, webhook) | | `cancel_reason` | Reason for order cancellation (when applicable) | #### Item Scope[​](#Item-Scope "Direct link to Item Scope") | Parameter | Description | | ------------------- | --------------------------------------------- | | `item_group_id` | Parent/group product identifier | | `item_sku` | Product SKU | | `item_group_sku` | Parent/group product SKU | | `item_tax_percent` | Tax percentage applied to the product | | `item_stock_status` | Current product stock status | | `last_ad_source` | Last advertising platform that drove the user | | `price_without_tax` | Product price excluding tax | #### User Scope[​](#User-Scope "Direct link to User Scope") | Parameter | Description | | -------------------------- | ----------------------------------------------- | | `last_ad_source` | Last advertising platform that drove the user | | `new_customer` | Whether this is the customer's first purchase | | `customer_city` | Customer city | | `customer_lifetime_orders` | Total number of orders for this customer | | `customer_lifetime_value` | Total revenue from this customer | | `customer_region` | Customer region/state | | `browser_storage` | Browser storage identifiers available | | `customer_country` | Customer country | | `billing_account_type` | Billing account type (e.g. individual, company) | info These parameters are sent by default for all clients. Depending on your business requirements, additional custom parameters can be configured for your specific implementation. Some parameters may be absent if the data source does not provide the underlying data. ### GA4 Custom Dimensions Limits[​](#GA4-Custom-Dimensions-Limits "Direct link to GA4 Custom Dimensions Limits") GA4 has limits on the number of custom dimensions you can create: | Type | Free Properties | Analytics 360 | | ------------ | --------------- | ------------- | | Event-scoped | 50 | 125 | | User-scoped | 25 | 100 | Register only the parameters you actively use in reports or audiences to stay within limits. ## Official Documentation[​](#Official-Documentation "Direct link to Official Documentation") * [Custom dimensions and metrics](https://support.google.com/analytics/answer/10075209) * [GA4 Measurement Protocol](https://developers.google.com/analytics/devguides/collection/protocol/ga4) * [Event parameters limits](https://support.google.com/analytics/answer/9267744) --- # Meta (Facebook) Setup Recommended configuration for your Meta Pixel and Conversions API when using DATA Reshape server-side tracking. info These are our recommendations for optimal tracking accuracy. Your setup may vary based on your specific requirements. This guide assumes you already have a Meta Pixel created in Events Manager. If not, create one first at [business.facebook.com](https://business.facebook.com). ## Disable Tracking Without Code[​](#Disable-Tracking-Without-Code "Direct link to Disable Tracking Without Code") **Events Manager → Data sources → \[your Pixel] → Settings → Tracking without code** Turn **Off**. DATA Reshape handles all event tracking server-side via the Conversions API. Leaving this on may cause duplicate events or track interactions that don't match your intended event schema. ## Official Documentation[​](#Official-Documentation "Direct link to Official Documentation") * [Meta Pixel overview](https://developers.facebook.com/docs/meta-pixel) * [Conversions API overview](https://developers.facebook.com/docs/marketing-api/conversions-api) * [Events Manager settings](https://www.facebook.com/business/help/898185560232180) * [Event deduplication](https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events) --- # Meta (Facebook) Parameters ## Default Parameters[​](#Default-Parameters "Direct link to Default Parameters") DATA Reshape sends events to Meta via the Conversions API using the standard parameter schema. All supported parameters are sent in the most detailed format possible, including user data (hashed), event data, and product/content information. For the full list of default parameters: * [Conversions API parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters) * [Standard events reference](https://developers.facebook.com/docs/meta-pixel/reference) * [Server event parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/server-event) * [Customer information parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters) ## Custom Parameters[​](#Custom-Parameters "Direct link to Custom Parameters") In addition to default parameters, DATA Reshape sends custom parameters in the `custom_data` object. These can be used for custom audiences, custom conversions, and reporting in Events Manager. | Parameter | Description | | -------------------------- | --------------------------------------------- | | `content_variants` | Product variant identifiers | | `content_brand` | Product brands | | `content_category` | Product categories | | `customer_lifetime_value` | Total revenue from this customer | | `customer_lifetime_orders` | Total number of orders for this customer | | `last_ad_source` | Last advertising platform that drove the user | info These parameters are sent by default for all clients. Depending on your business requirements, additional custom parameters can be configured for your specific implementation. Some parameters may be absent if the data source does not provide the underlying data. ## Using Custom Parameters in Meta[​](#Using-Custom-Parameters-in-Meta "Direct link to Using Custom Parameters in Meta") Custom parameters appear in **Events Manager → \[your Pixel] → Test Events** and can be used to: * **Create Custom Audiences** — segment users based on custom parameter values (e.g. `content_brand = "Nike"`) * **Create Custom Conversions** — define conversions based on specific parameter combinations * **Optimize Ad Delivery** — use `customer_lifetime_value` for value-based lookalike audiences ## Official Documentation[​](#Official-Documentation "Direct link to Official Documentation") * [Custom data parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/custom-data) * [Custom audiences from events](https://www.facebook.com/business/help/666509013483225) * [Custom conversions](https://www.facebook.com/business/help/2372251876146528) --- # TikTok Setup Recommended configuration for your TikTok Pixel and Events API when using DATA Reshape server-side tracking. info These are our recommendations for optimal tracking accuracy. Your setup may vary based on your specific requirements. This guide assumes you already have a TikTok Pixel created in TikTok Events Manager. If not, create one first at [ads.tiktok.com](https://ads.tiktok.com). ## Disable Event Builder[​](#Disable-Event-Builder "Direct link to Disable Event Builder") **Events Manager → \[your Pixel] → Manage → Event Builder** Ensure no events are configured through TikTok's Event Builder (the visual/codeless event setup tool). DATA Reshape handles all event tracking server-side via the Events API. Having events configured in the Event Builder may cause duplicates or track unintended interactions. If any events exist in the Event Builder, remove them. ## Official Documentation[​](#Official-Documentation "Direct link to Official Documentation") * [TikTok Pixel overview](https://ads.tiktok.com/help/article/tiktok-pixel) * [TikTok Events API overview](https://business-api.tiktok.com/portal/docs?id=1741601162187777) * [Event Builder setup](https://ads.tiktok.com/help/article/event-builder) * [Event deduplication](https://business-api.tiktok.com/portal/docs?id=1771100865818625) --- # TikTok Parameters ## Default Parameters[​](#Default-Parameters "Direct link to Default Parameters") DATA Reshape sends events to TikTok via the Events API using the standard parameter schema. All supported parameters are sent in the most detailed format possible, including user data (hashed), event data, and product/content information. For the full list of default parameters: * [Events API parameters](https://business-api.tiktok.com/portal/docs?id=1741601162187777) * [Standard events reference](https://ads.tiktok.com/help/article/standard-events-parameters) * [Web events parameters](https://business-api.tiktok.com/portal/docs?id=1771100865818625) ## Custom Parameters[​](#Custom-Parameters "Direct link to Custom Parameters") In addition to default parameters, DATA Reshape sends custom parameters in the event properties. These can be used for audience segmentation and reporting. | Parameter | Description | | -------------------------- | --------------------------------------------- | | `content_variants` | Product variant identifiers | | `content_brand` | Product brand name | | `content_category` | Product category | | `customer_lifetime_value` | Total revenue from this customer | | `customer_lifetime_orders` | Total number of orders for this customer | | `last_ad_source` | Last advertising platform that drove the user | info These parameters are sent by default for all clients. Depending on your business requirements, additional custom parameters can be configured for your specific implementation. Some parameters may be absent if the data source does not provide the underlying data. ## Official Documentation[​](#Official-Documentation "Direct link to Official Documentation") * [TikTok Events API](https://business-api.tiktok.com/portal/docs?id=1741601162187777) * [Custom audience from events](https://ads.tiktok.com/help/article/custom-audience-website-traffic) --- # Events Overview Events capture user interactions and business transactions on your website. They are pushed into the `reshape` array using `window.reshape.push()` and processed by the DATA Reshape script. All events use the same standardized structure based on the [Objects documentation](/objects.md) for both web and webhook implementations. The only differences are in the context object (web vs webhook) and how data is collected — automatically via JavaScript or manually via webhooks. The `event.name` determines how each event is processed and which destinations receive it. Only events mapped in your account configuration will be accepted. ## E-commerce Events[​](#E-commerce-Events "Direct link to E-commerce Events") Track the complete shopping journey from product discovery to purchase completion. | Event | Description | Products | Shipping | Payments | | --------------------------------------------------------------------------- | -------------------------- | -------- | -------- | -------- | | [Product Viewed](/events/ecommerce/product-viewed.md) | Visitor views a product | ✓ | | | | [Product Added to Cart](/events/ecommerce/product-added-to-cart.md) | Product added to cart | ✓ | | | | [Product Added to Wishlist](/events/ecommerce/product-added-to-wishlist.md) | Product saved for later | ✓ | | | | [Product Removed from Cart](/events/ecommerce/product-removed-from-cart.md) | Product removed from cart | ✓ | | | | [Cart Viewed](/events/ecommerce/cart-viewed.md) | Visitor views their cart | ✓ | | | | [Checkout Started](/events/ecommerce/checkout-started.md) | Checkout process initiated | ✓ | | | | [Billing Address Added](/events/ecommerce/billing-address-added.md) | Billing info provided | ✓ | | | | [Shipping Detail Added](/events/ecommerce/shipping-detail-added.md) | Shipping method selected | ✓ | ✓ | | | [Payment Method Selected](/events/ecommerce/payment-method-selected.md) | Payment method chosen | ✓ | ✓ | ✓ | | [Checkout Completed](/events/ecommerce/checkout-completed.md) | Order confirmed | ✓ | ✓ | ✓ | ## Lead & Form Events[​](#Lead--Form-Events "Direct link to Lead & Form Events") Track lead generation, qualification, and conversion. | Event | Description | | ------------------------------------------------------- | --------------------------------------------- | | [Lead Created](/events/forms/lead-created.md) | Contact form, demo request, newsletter signup | | [Lead Qualified](/events/forms/lead-qualified.md) | Lead meets qualification criteria | | [Lead Disqualified](/events/forms/lead-disqualified.md) | Lead does not meet criteria | | [Lead Closed](/events/forms/lead-closed.md) | Lead converts to customer | | [Sign Up](/events/forms/sign-up.md) | New account created | | [Login](/events/forms/login.md) | User authenticates | ## Interaction Events[​](#Interaction-Events "Direct link to Interaction Events") Track click interactions and engagement across the website. | Event | Description | | -------------------------------------------------------------- | ------------------------------------------------------------------------- | | [Click](/events/interactions/click.md) | Any tracked click interaction (buttons, links, downloads, shares, videos) | | [Click to Phone](/events/interactions/click-to-phone.md) | Click on phone number link | | [Click to WhatsApp](/events/interactions/click-to-whatsapp.md) | Click on WhatsApp link | | [Click to Email](/events/interactions/click-to-email.md) | Click on email address link | ## SPA Events[​](#SPA-Events "Direct link to SPA Events") For Single Page Applications where URL changes don't trigger automatic page loads. | Event | Description | | -------------------------------------- | ---------------- | | [Page Viewed](/events/spa/page-viewed) | SPA route change | ## Quick Start[​](#Quick-Start "Direct link to Quick Start") Start with the two highest-impact events and expand from there: ``` window.reshape = window.reshape || []; // 1. Track product views reshape.push({ "event": { "name": "product_viewed", "value": 249.99, "currency": "EUR" }, "products": [ { "id": "PRODUCT_001", "name": "Product Name", "price_base": 249.99, "price": 249.99, "tax_included": true, "tax_percent": 19, "quantity": 1 } ] }); // 2. Track purchases reshape.push({ "event": { "name": "checkout_completed", "value": 299.99, "currency": "EUR", "id": "ORDER_12345" }, "products": [ { "id": "PRODUCT_001", "name": "Product Name", "price_base": 249.99, "price": 249.99, "tax_included": true, "tax_percent": 19, "quantity": 1 } ], "shipping": [ { "name": "Standard Shipping", "value": 15.99, "type": "standard" } ], "payments": [ { "name": "Credit Card", "value": 299.99, "type": "card" } ], "user": { "email": "customer@example.com" } }); ``` For complete field reference and all available properties, see the [Objects documentation](/objects.md). --- # Billing Address Added ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor provides billing address information — by completing the billing form, selecting a saved address, or choosing "same as shipping address". ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **billing\_address\_added** for `event.name`. ``` name: "billing_address_added" ``` **value** number required info Total value of all products in checkout at billing address step. ``` value: 1499.97 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "BILLING_12345" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing all products in checkout at billing address step. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **coupons** array info Array of order-level coupons applied at this step. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** object **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "billing_address_added", "value": 1499.97, "currency": "EUR", "exchange_rate": 1 }, "context": { "url": "https://shop.example.com/checkout/billing", "page_type": "checkout", "environment": "prod" }, "products": [ { "id": "THERMOSTAT_001", "parent_id": "THERMOSTAT_SERIES", "name": "Smart WiFi Thermostat Pro", "parent_name": "Smart WiFi Thermostat Pro Series", "price_base": 299.99, "price": 249.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics > Smart Home > Climate Control", "currency": "EUR", "exchange_rate": 1, "sku": "ST-WIFI-PRO-001", "parent_sku": "ST-WIFI-PRO", "gtin": "6789012345678", "mpn": "ST-WIFI-PRO-2024", "ean": "6789012345678", "brand": "SmartHome", "type": "simple", "stock_status": true, "stock_location": "Smart Home Warehouse", "created_at": 1748505040077, "url": "https://shop.example.com/smart-wifi-thermostat-pro", "parent_url": "https://shop.example.com/smart-thermostats", "image": "https://cdn.example.com/smart-thermostat.jpg", "images": [ "https://cdn.example.com/smart-thermostat-app.jpg", "https://cdn.example.com/smart-thermostat-install.jpg" ], "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Smart Home", "id": "cat_smart_home" }, { "name": "Climate Control", "id": "cat_climate" } ], "properties": { "connectivity": ["wifi", "bluetooth"], "compatibility": ["ios", "android", "alexa"], "display_type": "color_touchscreen", "energy_star_certified": true } }, { "id": "DOORBELL_001", "name": "Smart Video Doorbell HD", "price_base": 199.99, "price": 199.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics > Smart Home > Security", "sku": "SDB-VIDEO-HD-001", "brand": "SmartHome", "type": "simple", "stock_status": true, "url": "https://shop.example.com/smart-video-doorbell", "image": "https://cdn.example.com/smart-doorbell.jpg", "properties": { "video_quality": "1080p_hd", "night_vision": true, "motion_detection": true } } ], "coupons": [ { "name": "SMART_HOME_BUNDLE_15", "value": 225.00, "tax_included": true, "tax_percent": 19, "id": "COUPON_SMARTHOME_001", "type": "BUNDLE_DISCOUNT", "currency": "EUR", "exchange_rate": 1 } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "street": "Strada Republicii 45", "postal_code": "500030", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "billing_address_added", "value": 1499.97, "currency": "EUR" }, "products": [ { "id": "THERMOSTAT_001", "name": "Smart WiFi Thermostat Pro", "brand": "SmartHome", "price_base": 299.99, "price": 249.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics" } ], "user": { "id": "CUST_456", "email": "customer@example.com", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "city": "Brasov" } }); ``` --- # Cart Viewed ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor views their shopping cart — on the dedicated cart page, in a cart modal/drawer, or when reviewing cart contents before checkout. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **cart\_viewed** for `event.name`. ``` name: "cart_viewed" ``` **value** number required info Total value of all products currently in cart (sum of price x quantity for each product). ``` value: 1349.97 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "CART_VIEW_12345" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing all products currently in the shopping cart. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **coupons** array info Array of order-level coupons applied to the cart. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** object **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "cart_viewed", "value": 1349.97, "currency": "EUR", "exchange_rate": 1 }, "context": { "url": "https://shop.example.com/cart", "page_type": "cart", "environment": "prod" }, "products": [ { "id": "GAMING_SETUP_001", "parent_id": "GAMING_SETUP_SERIES", "name": "Complete Gaming Setup Bundle", "parent_name": "Gaming Setup Bundle Series", "price_base": 899.99, "price": 799.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics > Gaming > Bundles", "currency": "EUR", "exchange_rate": 1, "sku": "GS-COMPLETE-001", "parent_sku": "GS-COMPLETE", "gtin": "1112223334445", "mpn": "GS-COMPLETE-2024", "ean": "1112223334445", "brand": "GameTech", "type": "bundle", "stock_status": true, "stock_location": "Gaming Warehouse EU", "created_at": 1748505040077, "url": "https://shop.example.com/gaming-setup-complete-bundle", "parent_url": "https://shop.example.com/gaming-setup-bundles", "image": "https://cdn.example.com/gaming-setup-bundle.jpg", "images": [ "https://cdn.example.com/gaming-setup-keyboard.jpg", "https://cdn.example.com/gaming-setup-mouse.jpg" ], "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Gaming", "id": "cat_gaming" }, { "name": "Bundles", "id": "cat_bundles" } ], "properties": { "bundle_items": ["keyboard", "mouse", "headset", "mousepad"], "rgb_lighting": "synchronized", "connectivity": "wireless_2.4ghz" } }, { "id": "MONITOR_4K_001", "name": "27\" 4K Gaming Monitor 144Hz", "price_base": 449.99, "price": 399.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics > Monitors", "sku": "MON-4K-27-144", "brand": "DisplayTech", "type": "simple", "stock_status": true, "url": "https://shop.example.com/4k-gaming-monitor-27", "image": "https://cdn.example.com/monitor-4k-27.jpg", "properties": { "screen_size": "27_inch", "resolution": "3840x2160", "refresh_rate": "144Hz", "panel_type": "IPS" } } ], "coupons": [ { "name": "GAMING_BUNDLE_20", "value": 160.00, "tax_included": true, "tax_percent": 19, "id": "COUPON_GAMING_001", "type": "BUNDLE_DISCOUNT", "currency": "EUR", "exchange_rate": 1 } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "cart_viewed", "value": 199.99, "currency": "EUR" }, "products": [ { "id": "KEYBOARD_001", "name": "Mechanical RGB Keyboard", "price_base": 199.99, "price": 199.99, "tax_included": true, "tax_percent": 19, "quantity": 1 } ] }); ``` --- # Checkout Completed ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor finalizes their purchase and the order is confirmed — on the order confirmation/"thank you" page, or after successful payment processing. Required: event.id This event requires a unique `event.id` (order/transaction ID) for deduplication. Events with duplicate IDs are not processed again per destination. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **checkout\_completed** for `event.name`. ``` name: "checkout_completed" ``` **value** number required info Final total order amount, including all costs and discounts. ``` value: 2399.96 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string required info Unique order/transaction ID from your system. Required for deduplication. ``` id: "ORDER_2024_001234" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing all products in the completed order. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **shipping** array required info Array of shipping methods used for the order. [**View complete Shipping Object documentation**](/objects/shipping.md) **shipping\[0]** object required **name** string required info Shipping method name ``` name: "Express Delivery" ``` **value** number required info Shipping cost value ``` value: 12.99 ``` **tax\_included** boolean recommended info Whether shipping cost includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for shipping (0-50) ``` tax_percent: 19 ``` **id** string info Shipping method identifier. ``` id: "SHIPPING_INTERNAL_ID" ``` **type** string info Shipping type. Free-form string, use consistent naming (e.g. "standard", "express", "next\_day", "pickup", "free"). ``` type: "standard" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **payments** array required info Array of payment methods used for the order. [**View complete Payment Object documentation**](/objects/payment.md) **payments\[0]** object required **name** string required info Payment method name. ``` name: "Credit Card - Visa" ``` **value** number required info Amount paid with this payment method ``` value: 12.99 ``` **id** string info Payment method internal identifier ``` id: "PAYMENT_INTERNAL_ID" ``` **type** string info Payment type. Free-form string, use consistent naming (e.g. "card", "paypal", "bank\_transfer", "gift\_card", "cash\_on\_delivery"). ``` type: "card" ``` **coupons** array info Array of order-level coupons applied to the order. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** object **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` **consent** object recommended info [**View complete Consent Object documentation**](/objects/consent-api.md) **analytics** boolean required info Indicates the user’s explicit consent regarding the collection and processing of data for analytical purposes, such as performance monitoring, usage statistics, and service optimization. ``` analytics: true ``` **personalization** boolean required info Indicates the user’s explicit consent regarding the collection and processing of data for personalization purposes, enabling tailored experiences and content customization. ``` personalization: true ``` **marketing** boolean required info Indicates the user’s explicit consent regarding the collection and processing of data for marketing purposes, such as targeted advertising, remarketing, and campaign measurement. ``` marketing: true ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "checkout_completed", "value": 2399.96, "currency": "EUR", "exchange_rate": 1, "id": "ORDER_2024_001234", "properties": { "payment_method": "credit_card", "shipping_method": "express" } }, "context": { "url": "https://shop.example.com/checkout/success", "page_type": "checkout", "environment": "prod" }, "products": [ { "id": "CAMERA_PRO_001", "parent_id": "CAMERA_PRO_SERIES", "name": "Professional DSLR Camera 24.2MP", "parent_name": "Professional DSLR Camera Series", "price_base": 1599.99, "price": 1399.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics > Cameras > DSLR", "currency": "EUR", "exchange_rate": 1, "sku": "DSLR-PRO-24MP-001", "parent_sku": "DSLR-PRO-24MP", "gtin": "2468135790864", "mpn": "DSLR-PRO-2024-001", "ean": "2468135790864", "brand": "PhotoMaster", "type": "simple", "stock_status": true, "stock_location": "Professional Equipment Warehouse", "created_at": 1748505040077, "url": "https://shop.example.com/dslr-camera-professional-24mp", "parent_url": "https://shop.example.com/dslr-cameras-professional", "image": "https://cdn.example.com/dslr-pro-001.jpg", "images": [ "https://cdn.example.com/dslr-pro-001-front.jpg", "https://cdn.example.com/dslr-pro-001-side.jpg" ], "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Cameras", "id": "cat_cameras" }, { "name": "DSLR", "id": "cat_dslr" } ], "coupons": [ { "name": "CAMERA_DEAL", "value": 200.00, "tax_included": true, "tax_percent": 19, "id": "COUPON_CAMERA_001", "type": "SEASONAL", "currency": "EUR", "exchange_rate": 1 } ], "properties": { "color": "midnight_black", "sensor_type": "APS-C", "megapixels": 24.2, "video_resolution": "4K", "warranty": "2_years" } }, { "id": "LENS_50MM_001", "parent_id": "LENS_50MM_SERIES", "name": "50mm f/1.4 Prime Lens", "parent_name": "50mm Prime Lens Series", "price_base": 799.99, "price": 699.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics > Camera Accessories > Lenses", "sku": "CL-50MM-F14-001", "brand": "PhotoMaster", "type": "simple", "stock_status": true, "url": "https://shop.example.com/lens-50mm-prime", "image": "https://cdn.example.com/lens-50mm.jpg", "properties": { "focal_length": "50mm", "aperture": "f/1.4", "lens_mount": "EF_mount" } } ], "shipping": [ { "name": "Express Delivery", "value": 24.99, "tax_included": true, "tax_percent": 19, "id": "SHIP_EXPRESS_001", "type": "express", "currency": "EUR", "exchange_rate": 1 } ], "payments": [ { "name": "Credit Card - Visa", "value": 2399.96, "id": "PAY_VISA_001", "type": "card" } ], "coupons": [ { "name": "BUNDLE_15", "value": 375.00, "tax_included": true, "tax_percent": 19, "id": "COUPON_BUNDLE_001", "type": "BUNDLE_DISCOUNT", "currency": "EUR", "exchange_rate": 1 } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "street": "Strada Republicii 45", "postal_code": "500030", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } }, "consent": { "analytics": true, "personalization": true, "marketing": true } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "checkout_completed", "value": 2399.96, "currency": "EUR", "id": "ORDER_2024_001234" }, "products": [ { "id": "CAMERA_PRO_001", "name": "Professional DSLR Camera", "brand": "PhotoMaster", "price_base": 1599.99, "price": 1399.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics" }, { "id": "LENS_50MM_001", "name": "50mm Prime Lens", "brand": "PhotoMaster", "price_base": 799.99, "price": 699.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics" } ], "shipping": [ { "name": "Express Delivery", "value": 24.99, "tax_included": true, "tax_percent": 19, "type": "express" } ], "payments": [ { "name": "Credit Card - Visa", "value": 2399.96, "type": "card" } ], "user": { "id": "CUST_456", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "city": "Brasov" } }); ``` --- # Checkout Started ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor initiates the checkout process — by clicking "Proceed to Checkout", "Buy Now", or similar actions that start the checkout flow. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **checkout\_started** for `event.name`. ``` name: "checkout_started" ``` **value** number required info Total value of all products entering checkout. ``` value: 1749.97 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "CHECKOUT_START_12345" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing all products entering checkout. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **coupons** array info Array of order-level coupons applied at checkout start. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** object **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "checkout_started", "value": 1749.97, "currency": "EUR", "exchange_rate": 1 }, "context": { "url": "https://shop.example.com/checkout/step1", "page_type": "checkout", "environment": "prod" }, "products": [ { "id": "FITNESS_BIKE_001", "parent_id": "FITNESS_BIKE_SERIES", "name": "Indoor Cycling Bike Pro", "parent_name": "Indoor Cycling Bike Pro Series", "price_base": 1299.99, "price": 1199.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Fitness > Cardio > Indoor Bikes", "currency": "EUR", "exchange_rate": 1, "sku": "FB-INDOOR-PRO-001", "parent_sku": "FB-INDOOR-PRO", "gtin": "3579864201357", "mpn": "FB-INDOOR-PRO-2024", "ean": "3579864201357", "brand": "FitnessTech", "type": "simple", "stock_status": true, "stock_location": "Fitness Equipment Warehouse", "created_at": 1748505040077, "url": "https://shop.example.com/indoor-cycling-bike-pro", "parent_url": "https://shop.example.com/indoor-cycling-bikes", "image": "https://cdn.example.com/fitness-bike-pro.jpg", "images": [ "https://cdn.example.com/fitness-bike-pro-side.jpg", "https://cdn.example.com/fitness-bike-pro-console.jpg" ], "categories": [ { "name": "Fitness", "id": "cat_fitness" }, { "name": "Cardio", "id": "cat_cardio" }, { "name": "Indoor Bikes", "id": "cat_indoor_bikes" } ], "properties": { "resistance_type": "magnetic", "flywheel_weight": "22kg", "max_user_weight": "150kg", "warranty": "2_years" } }, { "id": "WORKOUT_MAT_001", "name": "Extra Thick Workout Mat", "price_base": 79.99, "price": 79.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Fitness > Accessories > Mats", "sku": "WM-PRO-EXTRA", "brand": "YogaPro", "type": "simple", "stock_status": true, "url": "https://shop.example.com/workout-mat-extra-thick", "image": "https://cdn.example.com/workout-mat.jpg", "properties": { "thickness": "15mm", "material": "eco_friendly_tpe" } } ], "coupons": [ { "name": "FITNESS_BUNDLE_10", "value": 200.00, "tax_included": true, "tax_percent": 19, "id": "COUPON_FITNESS_001", "type": "BUNDLE_DISCOUNT", "currency": "EUR", "exchange_rate": 1 } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "checkout_started", "value": 1749.97, "currency": "EUR" }, "products": [ { "id": "FITNESS_BIKE_001", "name": "Indoor Cycling Bike Pro", "brand": "FitnessTech", "price_base": 1299.99, "price": 1199.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Fitness" } ], "user": { "id": "CUST_789", "email": "customer@example.com" } }); ``` --- # Payment Method Selected ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor selects or confirms a payment method — by choosing credit card, PayPal, bank transfer, or any other payment option during checkout. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **payment\_method\_selected** for `event.name`. ``` name: "payment_method_selected" ``` **value** number required info Total checkout value at payment method selection (final amount the user will pay). ``` value: 1849.97 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "PAYMENT_SELECT_12345" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing all products in checkout. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **shipping** array required info Array of shipping methods selected. [**View complete Shipping Object documentation**](/objects/shipping.md) **shipping\[0]** object required **name** string required info Shipping method name ``` name: "Express Delivery" ``` **value** number required info Shipping cost value ``` value: 12.99 ``` **tax\_included** boolean recommended info Whether shipping cost includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for shipping (0-50) ``` tax_percent: 19 ``` **id** string info Shipping method identifier. ``` id: "SHIPPING_INTERNAL_ID" ``` **type** string info Shipping type. Free-form string, use consistent naming (e.g. "standard", "express", "next\_day", "pickup", "free"). ``` type: "standard" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **payments** array required info Array of payment methods selected. [**View complete Payment Object documentation**](/objects/payment.md) **payments\[0]** object required **name** string required info Payment method name. ``` name: "Credit Card - Visa" ``` **value** number required info Amount paid with this payment method ``` value: 12.99 ``` **id** string info Payment method internal identifier ``` id: "PAYMENT_INTERNAL_ID" ``` **type** string info Payment type. Free-form string, use consistent naming (e.g. "card", "paypal", "bank\_transfer", "gift\_card", "cash\_on\_delivery"). ``` type: "card" ``` **coupons** array info Array of order-level coupons applied. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** object **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "payment_method_selected", "value": 1849.97, "currency": "EUR", "exchange_rate": 1 }, "context": { "url": "https://shop.example.com/checkout/payment", "page_type": "checkout", "environment": "prod" }, "products": [ { "id": "FITNESS_BIKE_001", "parent_id": "FITNESS_BIKE_SERIES", "name": "Indoor Cycling Bike Pro", "parent_name": "Indoor Cycling Bike Pro Series", "price_base": 1299.99, "price": 1199.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Fitness > Cardio > Indoor Bikes", "currency": "EUR", "exchange_rate": 1, "sku": "FB-INDOOR-PRO-001", "parent_sku": "FB-INDOOR-PRO", "gtin": "3579864201357", "mpn": "FB-INDOOR-PRO-2024", "ean": "3579864201357", "brand": "FitnessTech", "type": "simple", "stock_status": true, "stock_location": "Fitness Equipment Warehouse", "created_at": 1748505040077, "url": "https://shop.example.com/indoor-cycling-bike-pro", "parent_url": "https://shop.example.com/indoor-cycling-bikes", "image": "https://cdn.example.com/fitness-bike-pro.jpg", "images": [ "https://cdn.example.com/fitness-bike-pro-side.jpg", "https://cdn.example.com/fitness-bike-pro-console.jpg" ], "categories": [ { "name": "Fitness", "id": "cat_fitness" }, { "name": "Cardio", "id": "cat_cardio" }, { "name": "Indoor Bikes", "id": "cat_indoor_bikes" } ], "properties": { "resistance_type": "magnetic", "flywheel_weight": "22kg", "max_user_weight": "150kg", "warranty": "2_years" } }, { "id": "WATER_BOTTLE_001", "name": "Smart Temperature Water Bottle", "price_base": 89.99, "price": 89.99, "tax_included": true, "tax_percent": 19, "quantity": 2, "category": "Fitness > Accessories > Hydration", "sku": "WB-SMART-TEMP-001", "brand": "HydroSmart", "type": "simple", "stock_status": true, "url": "https://shop.example.com/smart-water-bottle", "image": "https://cdn.example.com/water-bottle-smart.jpg", "properties": { "capacity": "750ml", "material": "stainless_steel" } } ], "shipping": [ { "name": "Express Delivery", "value": 15.99, "tax_included": true, "tax_percent": 19, "id": "SHIP_EXPRESS_001", "type": "express", "currency": "EUR", "exchange_rate": 1 } ], "payments": [ { "name": "Credit Card - Visa", "value": 1849.97, "id": "PAY_VISA_001", "type": "card" } ], "coupons": [ { "name": "FITNESS_BUNDLE_10", "value": 200.00, "tax_included": true, "tax_percent": 19, "id": "COUPON_FITNESS_001", "type": "BUNDLE_DISCOUNT", "currency": "EUR", "exchange_rate": 1 } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "street": "Strada Republicii 45", "postal_code": "500030", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "payment_method_selected", "value": 1849.97, "currency": "EUR" }, "products": [ { "id": "FITNESS_BIKE_001", "name": "Indoor Cycling Bike Pro", "brand": "FitnessTech", "price_base": 1299.99, "price": 1199.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Fitness" } ], "payments": [ { "name": "Credit Card - Visa", "value": 1849.97, "type": "card" } ], "user": { "id": "CUST_789", "email": "customer@example.com" } }); ``` --- # Product Added to Cart ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor adds one or more products to their shopping cart — via the "Add to Cart" button, quick-add actions, or when increasing quantity of an existing cart item. warning Trigger this event only after the cart addition is confirmed successful, not on button click alone. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **product\_added\_to\_cart** for `event.name`. ``` name: "product_added_to_cart" ``` **value** number required info Total value of products being added to cart (price x quantity for each product). ``` value: 349.98 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "ADD_CART_12345" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing the products being added to cart. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "product_added_to_cart", "value": 349.98, "currency": "EUR", "exchange_rate": 1 }, "context": { "url": "https://shop.example.com/wireless-earbuds-pro", "page_type": "product", "environment": "prod" }, "products": [ { "id": "EARBUDS_PRO_001", "parent_id": "EARBUDS_PRO_SERIES", "name": "Wireless Earbuds Pro - White", "parent_name": "Wireless Earbuds Pro", "price_base": 199.99, "price": 174.99, "tax_included": true, "tax_percent": 19, "quantity": 2, "category": "Electronics > Audio > Wireless Earbuds", "currency": "EUR", "exchange_rate": 1, "sku": "EB-PRO-WHT-001", "parent_sku": "EB-PRO-001", "gtin": "9876543210987", "mpn": "EB-PRO-2024-001", "ean": "9876543210987", "brand": "AudioTech", "type": "simple", "stock_status": true, "stock_location": "Audio Warehouse EU", "created_at": 1748505040077, "url": "https://shop.example.com/wireless-earbuds-pro?color=white", "parent_url": "https://shop.example.com/wireless-earbuds-pro", "image": "https://cdn.example.com/earbuds-pro-white.jpg", "images": [ "https://cdn.example.com/earbuds-pro-white-case.jpg", "https://cdn.example.com/earbuds-pro-white-side.jpg" ], "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Audio", "id": "cat_audio" }, { "name": "Wireless Earbuds", "id": "cat_wireless_earbuds" } ], "properties": { "color": "white", "connectivity": "bluetooth_5.3", "noise_cancellation": "active", "battery_life": "24_hours_with_case", "water_resistance": "IPX4" } } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "product_added_to_cart", "value": 349.98, "currency": "EUR" }, "products": [ { "id": "EARBUDS_PRO_001", "name": "Wireless Earbuds Pro", "brand": "AudioTech", "price_base": 199.99, "price": 174.99, "tax_included": true, "tax_percent": 19, "quantity": 2, "category": "Electronics" } ] }); ``` --- # Product Added to Wishlist ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor saves a product for future consideration — via "Add to Wishlist", heart/favorite icons, "Save for Later", or when adding to personal product collections. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **product\_added\_to\_wishlist** for `event.name`. ``` name: "product_added_to_wishlist" ``` **value** number required info Price of the product being added to wishlist. ``` value: 599.99 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "WISHLIST_12345" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing the wishlisted product. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "product_added_to_wishlist", "value": 599.99, "currency": "EUR", "exchange_rate": 1 }, "context": { "url": "https://shop.example.com/smartwatch-fitness-pro", "page_type": "product", "environment": "prod" }, "products": [ { "id": "SMARTWATCH_001", "parent_id": "SMARTWATCH_SERIES", "name": "Fitness Smartwatch Pro - Silver", "parent_name": "Fitness Smartwatch Pro", "price_base": 649.99, "price": 599.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics > Wearables > Smartwatches", "currency": "EUR", "exchange_rate": 1, "sku": "SW-FIT-PRO-SLV", "parent_sku": "SW-FIT-PRO", "gtin": "5432109876543", "mpn": "SW-FIT-PRO-2024", "ean": "5432109876543", "brand": "FitTech", "type": "simple", "stock_status": true, "stock_location": "Wearables Warehouse EU", "created_at": 1748505040077, "url": "https://shop.example.com/smartwatch-fitness-pro?color=silver", "parent_url": "https://shop.example.com/smartwatch-fitness-pro", "image": "https://cdn.example.com/smartwatch-silver.jpg", "images": [ "https://cdn.example.com/smartwatch-silver-side.jpg", "https://cdn.example.com/smartwatch-silver-display.jpg" ], "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Wearables", "id": "cat_wearables" }, { "name": "Smartwatches", "id": "cat_smartwatches" } ], "properties": { "color": "silver", "display_size": "1.9_inch", "battery_life": "7_days", "water_resistance": "5ATM", "gps": "built_in" } } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "product_added_to_wishlist", "value": 599.99, "currency": "EUR" }, "products": [ { "id": "SMARTWATCH_001", "name": "Fitness Smartwatch Pro", "brand": "FitTech", "price_base": 649.99, "price": 599.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics" } ] }); ``` --- # Product Removed from Cart ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor removes one or more products from their shopping cart — via the remove button, when quantity is decreased to zero, or through "Clear Cart" actions. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **product\_removed\_from\_cart** for `event.name`. ``` name: "product_removed_from_cart" ``` **value** number required info Total value of products being removed from cart (price x quantity for each removed product). ``` value: 249.98 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "CART_REMOVAL_12345" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing the products being removed from cart. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "product_removed_from_cart", "value": 249.98, "currency": "EUR", "exchange_rate": 1 }, "context": { "url": "https://shop.example.com/cart", "page_type": "cart", "environment": "prod" }, "products": [ { "id": "LENS_85MM_001", "parent_id": "LENS_85MM_SERIES", "name": "85mm f/1.8 Portrait Lens", "parent_name": "85mm Portrait Lens Series", "price_base": 149.99, "price": 124.99, "tax_included": true, "tax_percent": 19, "quantity": 2, "category": "Electronics > Cameras > Lenses", "currency": "EUR", "exchange_rate": 1, "sku": "CL-85MM-F18", "parent_sku": "CL-85MM", "gtin": "7890123456789", "mpn": "CL-85MM-2024", "ean": "7890123456789", "brand": "PhotoTech", "type": "simple", "stock_status": true, "stock_location": "Camera Warehouse EU", "created_at": 1748505040077, "url": "https://shop.example.com/camera-lens-85mm-portrait", "parent_url": "https://shop.example.com/camera-lens-85mm", "image": "https://cdn.example.com/lens-85mm.jpg", "images": [ "https://cdn.example.com/lens-85mm-side.jpg", "https://cdn.example.com/lens-85mm-mount.jpg" ], "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Cameras", "id": "cat_cameras" }, { "name": "Lenses", "id": "cat_lenses" } ], "properties": { "focal_length": "85mm", "aperture": "f/1.8", "lens_mount": "canon_ef", "image_stabilization": "optical", "weight": "375g" } } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "product_removed_from_cart", "value": 249.98, "currency": "EUR" }, "products": [ { "id": "LENS_85MM_001", "name": "85mm Portrait Lens", "brand": "PhotoTech", "price_base": 149.99, "price": 124.99, "tax_included": true, "tax_percent": 19, "quantity": 2, "category": "Electronics" } ] }); ``` --- # Product Viewed ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor views a specific product — on a dedicated product page, in a quick view modal, or when a product becomes the main focus of attention. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **product\_viewed** for `event.name`. ``` name: "product_viewed" ``` **value** number required info Current price of the viewed product. ``` value: 249.99 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "PRODUCT_VIEW_12345" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing the viewed product. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "product_viewed", "value": 1399.99, "currency": "EUR", "exchange_rate": 1 }, "context": { "url": "https://shop.example.com/dslr-camera-professional-24mp", "page_type": "product", "environment": "prod" }, "products": [ { "id": "CAMERA_PRO_001", "parent_id": "CAMERA_PRO_SERIES", "name": "Professional DSLR Camera 24.2MP", "parent_name": "Professional DSLR Camera Series", "price_base": 1599.99, "price": 1399.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics > Cameras > DSLR", "currency": "EUR", "exchange_rate": 1, "sku": "DSLR-PRO-24MP-001", "parent_sku": "DSLR-PRO-24MP", "gtin": "2468135790864", "mpn": "DSLR-PRO-2024-001", "ean": "2468135790864", "brand": "PhotoMaster", "type": "simple", "stock_status": true, "stock_location": "Professional Equipment Warehouse", "created_at": 1748505040077, "url": "https://shop.example.com/dslr-camera-professional-24mp", "parent_url": "https://shop.example.com/dslr-cameras-professional", "image": "https://cdn.example.com/dslr-pro-001.jpg", "images": [ "https://cdn.example.com/dslr-pro-001-front.jpg", "https://cdn.example.com/dslr-pro-001-side.jpg" ], "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Cameras", "id": "cat_cameras" }, { "name": "DSLR", "id": "cat_dslr" } ], "properties": { "color": "midnight_black", "sensor_type": "APS-C", "megapixels": 24.2, "video_resolution": "4K", "warranty": "2_years" } } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "product_viewed", "value": 249.99, "currency": "EUR" }, "products": [ { "id": "LAPTOP_GAMING_001", "name": "Gaming Laptop Pro 15", "brand": "TechGaming", "price_base": 299.99, "price": 249.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics" } ] }); ``` --- # Shipping Detail Added ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor provides shipping information — by completing the shipping address form, selecting a shipping method, or choosing delivery preferences. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **shipping\_detail\_added** for `event.name`. ``` name: "shipping_detail_added" ``` **value** number required info Total value of all products in checkout at shipping step. ``` value: 1499.97 ``` **currency** string required info Currency code for all monetary values in this event. Can be overridden in nested objects. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "SHIPPING_12345" ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **products** array required info Array containing all products in checkout at shipping step. [**View complete Product Object documentation**](/objects/product.md) **products\[0]** object required **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **shipping** array required info Array of shipping methods selected for delivery. [**View complete Shipping Object documentation**](/objects/shipping.md) **shipping\[0]** object required **name** string required info Shipping method name ``` name: "Express Delivery" ``` **value** number required info Shipping cost value ``` value: 12.99 ``` **tax\_included** boolean recommended info Whether shipping cost includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for shipping (0-50) ``` tax_percent: 19 ``` **id** string info Shipping method identifier. ``` id: "SHIPPING_INTERNAL_ID" ``` **type** string info Shipping type. Free-form string, use consistent naming (e.g. "standard", "express", "next\_day", "pickup", "free"). ``` type: "standard" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **coupons** array info Array of order-level coupons applied at this step. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** object **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "shipping_detail_added", "value": 1499.97, "currency": "EUR", "exchange_rate": 1 }, "context": { "url": "https://shop.example.com/checkout/shipping", "page_type": "checkout", "environment": "prod" }, "products": [ { "id": "CAMERA_PRO_001", "parent_id": "CAMERA_PRO_SERIES", "name": "Professional DSLR Camera 24.2MP", "parent_name": "Professional DSLR Camera Series", "price_base": 1599.99, "price": 1399.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics > Cameras > DSLR", "currency": "EUR", "exchange_rate": 1, "sku": "DSLR-PRO-24MP-001", "parent_sku": "DSLR-PRO-24MP", "gtin": "2468135790864", "mpn": "DSLR-PRO-2024-001", "ean": "2468135790864", "brand": "PhotoMaster", "type": "simple", "stock_status": true, "stock_location": "Professional Equipment Warehouse", "created_at": 1748505040077, "url": "https://shop.example.com/dslr-camera-professional-24mp", "parent_url": "https://shop.example.com/dslr-cameras-professional", "image": "https://cdn.example.com/dslr-pro-001.jpg", "images": [ "https://cdn.example.com/dslr-pro-001-front.jpg", "https://cdn.example.com/dslr-pro-001-side.jpg" ], "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Cameras", "id": "cat_cameras" }, { "name": "DSLR", "id": "cat_dslr" } ], "properties": { "color": "midnight_black", "sensor_type": "APS-C", "megapixels": 24.2, "video_resolution": "4K", "warranty": "2_years" } } ], "shipping": [ { "name": "Express Delivery", "value": 24.99, "tax_included": true, "tax_percent": 19, "id": "SHIP_EXPRESS_001", "type": "express", "currency": "EUR", "exchange_rate": 1 } ], "coupons": [ { "name": "BUNDLE_15", "value": 375.00, "tax_included": true, "tax_percent": 19, "id": "COUPON_BUNDLE_001", "type": "BUNDLE_DISCOUNT", "currency": "EUR", "exchange_rate": 1 } ], "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "street": "Strada Republicii 45", "postal_code": "500030", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "shipping_detail_added", "value": 1499.97, "currency": "EUR" }, "products": [ { "id": "CAMERA_PRO_001", "name": "Professional DSLR Camera", "brand": "PhotoMaster", "price_base": 1599.99, "price": 1399.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics" } ], "shipping": [ { "name": "Express Delivery", "value": 24.99, "tax_included": true, "tax_percent": 19, "type": "express" } ] }); ``` --- # Lead Closed ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a qualified lead successfully converts to a customer — through contract signing, purchase completion, subscription activation, or proposal acceptance. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **lead\_closed** for `event.name`. ``` name: "lead_closed" ``` **value** number required info Actual revenue value generated from the closed lead. ``` value: 15000.00 ``` **currency** string required info Currency code for all monetary values in this event. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string required info Unique closed lead/deal identifier from your system. ``` id: "CLOSED_LEAD_987" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "lead_closed", "value": 15000.00, "currency": "EUR", "exchange_rate": 1, "id": "CLOSED_LEAD_987", "properties": { "closure_method": "contract_signing", "sales_cycle_days": 45, "contract_duration_months": 12, "payment_terms": "net_30" } }, "context": { "page_type": "crm", "environment": "prod" }, "user": { "id": "CUSTOMER_987654", "email": "jennifer.martinez@enterprise.com", "phone": "+40712345678", "first_name": "Jennifer", "last_name": "Martinez", "country": "RO", "region": "Brasov", "city": "Brasov", "orders_total_value": 15000.00, "created_at": 1704067200000, "properties": { "job_title": "Chief Technology Officer", "company_industry": "financial_services", "company_size": "1000+", "lead_source": "referral" } } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "lead_closed", "value": 1200.00, "currency": "EUR", "id": "CLOSED_MIN_321" }, "user": { "email": "robert.taylor@business.com", "first_name": "Robert", "last_name": "Taylor" } }); ``` --- # Lead Created ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor takes an action that indicates business interest — submitting a contact form, signing up for a newsletter, requesting a demo, downloading gated content, or requesting a quote. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **lead\_created** for `event.name`. ``` name: "lead_created" ``` **value** number required info Estimated value of the lead. ``` value: 250.00 ``` **currency** string required info Currency code for all monetary values in this event. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string required info Unique lead/action identifier from your system. ``` id: "LEAD_12345" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "lead_created", "value": 250.00, "currency": "EUR", "exchange_rate": 1, "id": "LEAD_12345_2024", "properties": { "lead_source": "contact_form", "form_name": "request_demo", "consultation_requested": true } }, "context": { "url": "https://example.com/contact/web-development", "page_type": "contact", "environment": "prod" }, "user": { "id": "CUST_67890", "email": "john.doe@company.com", "phone": "+40712345678", "first_name": "John", "last_name": "Doe", "country": "RO", "region": "Brasov", "city": "Brasov", "street": "Strada Republicii 45", "postal_code": "500030", "predicted_value": 2500.00, "created_at": 1754926521690, "properties": { "job_title": "Marketing Manager", "company_industry": "software_development", "contact_preference": "email" } } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "lead_created", "value": 150.00, "currency": "EUR", "id": "LEAD_MIN_789" }, "user": { "email": "jane.smith@example.com", "first_name": "Jane", "last_name": "Smith" } }); ``` --- # Lead Disqualified ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a lead is determined to not meet qualification criteria — due to budget constraints, timing misalignment, lack of decision-making authority, or poor fit with your ideal customer profile. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **lead\_disqualified** for `event.name`. ``` name: "lead_disqualified" ``` **value** number required info Set to 0 for disqualified leads. ``` value: 0 ``` **currency** string required info Currency code for all monetary values in this event. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string required info Unique disqualification identifier from your system. ``` id: "DISQUALIFIED_LEAD_789" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "lead_disqualified", "value": 0, "currency": "EUR", "exchange_rate": 1, "id": "DISQUALIFIED_LEAD_789", "properties": { "disqualification_reason": "budget_constraints", "disqualification_method": "discovery_call", "potential_future_opportunity": true } }, "context": { "page_type": "crm", "environment": "prod" }, "user": { "id": "LEAD_456789", "email": "david.wilson@startup.com", "phone": "+40712345678", "first_name": "David", "last_name": "Wilson", "country": "RO", "region": "Brasov", "city": "Brasov", "created_at": 1704067200000, "properties": { "job_title": "Founder", "company_industry": "technology", "company_size": "1-10" } } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "lead_disqualified", "value": 0, "currency": "EUR", "id": "DISQUALIFIED_MIN_456" }, "user": { "email": "alex.brown@company.com", "first_name": "Alex", "last_name": "Brown" } }); ``` --- # Lead Qualified ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a lead meets your qualification criteria and becomes a sales-ready prospect — through automated scoring, manual review by sales team, or when demographic/firmographic data matches your ideal customer profile. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **lead\_qualified** for `event.name`. ``` name: "lead_qualified" ``` **value** number required info Estimated potential revenue of the qualified lead. ``` value: 750.00 ``` **currency** string required info Currency code for all monetary values in this event. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string required info Unique qualification identifier from your system. ``` id: "QUALIFIED_LEAD_456" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "lead_qualified", "value": 750.00, "currency": "EUR", "exchange_rate": 1, "id": "QUALIFIED_LEAD_456", "properties": { "qualification_method": "sales_review", "lead_score": 95, "assigned_sales_rep": "john_sales", "next_action": "discovery_call" } }, "context": { "page_type": "crm", "environment": "prod" }, "user": { "id": "LEAD_789123", "email": "sarah.johnson@enterprise.com", "phone": "+40712345678", "first_name": "Sarah", "last_name": "Johnson", "country": "RO", "region": "Brasov", "city": "Brasov", "predicted_value": 8500.00, "created_at": 1704067200000, "properties": { "job_title": "VP of Operations", "company_industry": "manufacturing", "company_size": "500-1000" } } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "lead_qualified", "value": 400.00, "currency": "EUR", "id": "QUALIFIED_MIN_123" }, "user": { "email": "mike.davis@company.com", "first_name": "Mike", "last_name": "Davis" } }); ``` --- # Login ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when an existing user successfully authenticates — through standard login, social login, SSO, or any authentication method. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **login** for `event.name`. ``` name: "login" ``` **value** number required info Estimated session value. Set to 0 if not applicable. ``` value: 0 ``` **currency** string required info Currency code. Use your default currency. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string required info Unique login session identifier from your system. ``` id: "LOGIN_SESSION_789" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object required info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "login", "value": 0, "currency": "EUR", "exchange_rate": 1, "id": "LOGIN_SESSION_789", "properties": { "authentication_method": "email_password", "two_factor_enabled": true } }, "context": { "url": "https://app.example.com/dashboard", "page_type": "dashboard", "environment": "prod" }, "user": { "id": "USER_654321", "email": "amanda.williams@company.com", "phone": "+40712345678", "first_name": "Amanda", "last_name": "Williams", "country": "RO", "region": "Brasov", "city": "Brasov", "orders_total_number": 12, "orders_total_value": 3456.78, "created_at": 1640995200000, "properties": { "subscription_plan": "professional", "user_role": "admin" } } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "login", "value": 0, "currency": "EUR", "id": "LOGIN_MIN_456" }, "user": { "id": "USER_987654", "email": "chris.thompson@example.com" } }); ``` --- # Sign Up ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor successfully creates a new account — through standard registration, social login, trial signup, or any account creation flow. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **sign\_up** for `event.name`. ``` name: "sign_up" ``` **value** number required info Estimated value of the new registration. ``` value: 50.00 ``` **currency** string required info Currency code for all monetary values in this event. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string required info Unique signup/registration identifier from your system. ``` id: "SIGNUP_SUCCESS_123" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object required info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "sign_up", "value": 75.00, "currency": "EUR", "exchange_rate": 1, "id": "SIGNUP_SUCCESS_123", "properties": { "registration_method": "email_password", "account_type": "individual", "trial_period_days": 14 } }, "context": { "url": "https://example.com/signup/success", "page_type": "signup", "environment": "prod" }, "user": { "id": "USER_789456", "email": "emily.davis@example.com", "phone": "+40712345678", "first_name": "Emily", "last_name": "Davis", "country": "RO", "region": "Brasov", "city": "Brasov", "created_at": 1754926521690, "properties": { "job_title": "Marketing Director", "company_industry": "marketing_advertising", "company_size": "11-50" } } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "sign_up", "value": 25.00, "currency": "EUR", "id": "SIGNUP_MIN_456" }, "user": { "id": "USER_123789", "email": "michael.johnson@example.com", "first_name": "Michael", "last_name": "Johnson" } }); ``` --- # Click Interaction ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event for any click interaction you want to track on your website — button clicks, link clicks, form submissions, video plays, accordion toggles, tab switches, or any other meaningful UI interaction. This is a universal event designed to capture all types of click-based interactions through a standardized set of properties, replacing the need for multiple custom event names. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **click** for `event.name`. ``` name: "click" ``` **value** number info Monetary value associated with the interaction. Send only when relevant (e.g. add to cart value, download value). Do not send 0. ``` value: 149.99 ``` **currency** string info Currency code. Send only together with `value`. ``` currency: "EUR" ``` **properties** object required info Interaction details. See property reference below. **element\_name** string required info Logical name of the element using `{functionality}_{specification}` pattern. ``` element_name: "signup_newsletter" // Examples: download_catalog, share_facebook, phone_click, // cart_add_product, video_play_hero, filter_price_range ``` **element\_action** string required info What action the interaction performs. ``` element_action: "form_submit" // Values: click, submit, download, expand, close, copy, // scroll_to, play, pause, toggle, select ``` **element\_category** string required info Type of UI element. ``` element_category: "button" // Values: button, link, image, card, tab, accordion, form, // icon, banner, video, slider, menu_item, badge, modal ``` **element\_position** string recommended info Location on the page using `{section}_{placement}` pattern. ``` element_position: "footer_middle" // Examples: header_left, hero_center, body_top, sidebar_top, // footer_right, modal_center, sticky_bottom, floating ``` **element\_text** string recommended info Visible text of the element (max 100 characters). For images without text, use alt text or leave empty. ``` element_text: "Subscribe now" ``` **element\_destination\_url** string info Full destination URL with protocol. For downloads, use the file URL. Do not send for buttons without a destination. ``` element_destination_url: "https://example.com/success" ``` **element\_destination\_name** string info Name of the destination or associated partner. ``` element_destination_name: "partner_name" // Examples: facebook, google, emag, altex, pdf_catalog ``` **element\_index** number info Position in a group: carousel, grid, list (indexing from 1). Do not send for unique elements. ``` element_index: 2 ``` **element\_variant** string info Visual variant or A/B test identifier. ``` element_variant: "green_cta" // Examples: variant_a, variant_b, compact, with_icon, text_only ``` **element\_content\_group** string info Page type where the interaction occurred. ``` element_content_group: "blog_article" // Values: homepage, pdp, plp, category, blog_article, cart, // checkout, landing_page, search_results, contact, account, faq ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "click", "value": 149.99, "currency": "EUR", "properties": { "element_name": "signup_newsletter", "element_action": "form_submit", "element_category": "button", "element_position": "footer_middle", "element_text": "Subscribe now", "element_destination_url": "https://example.com/success", "element_destination_name": "newsletter", "element_index": 2, "element_variant": "green_cta", "element_content_group": "blog_article" } }, "context": { "url": "https://example.com/blog/best-cameras-2025", "page_type": "blog_article", "environment": "prod" }, "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov" } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "click", "properties": { "element_name": "download_catalog", "element_action": "download", "element_category": "button" } } }); ``` ## Common Use Cases[​](#Common-Use-Cases "Direct link to Common Use Cases") * Social Share * Video Play * File Download * Carousel Click ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "click", "properties": { "element_name": "share_facebook", "element_action": "click", "element_category": "icon", "element_position": "body_bottom", "element_destination_name": "facebook", "element_content_group": "blog_article" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "click", "properties": { "element_name": "video_play_hero", "element_action": "play", "element_category": "video", "element_position": "hero_center", "element_text": "Watch product demo", "element_content_group": "pdp" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "click", "properties": { "element_name": "download_catalog", "element_action": "download", "element_category": "link", "element_position": "body_top", "element_text": "Download PDF Catalog", "element_destination_url": "https://cdn.example.com/catalog-2025.pdf", "element_destination_name": "pdf_catalog", "element_content_group": "category" } } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "click", "value": 299.99, "currency": "EUR", "properties": { "element_name": "promo_banner_click", "element_action": "click", "element_category": "banner", "element_position": "hero_center", "element_text": "Summer Sale - 30% Off", "element_destination_url": "https://example.com/summer-sale", "element_index": 3, "element_variant": "variant_b", "element_content_group": "homepage" } } }); ``` ## Naming Convention[​](#Naming-Convention "Direct link to Naming Convention") ### element\_name[​](#element_name "Direct link to element_name") Use the pattern `{functionality}_{specification}`: | Example | Meaning | | -------------------- | ------------------------ | | `signup_newsletter` | Newsletter signup action | | `download_catalog` | Catalog download | | `share_facebook` | Facebook share | | `video_play_hero` | Hero section video play | | `filter_price_range` | Price range filter | | `cart_add_product` | Add product to cart | | `phone_click` | Phone number click | | `accordion_faq` | FAQ accordion toggle | ### element\_position[​](#element_position "Direct link to element_position") Use the pattern `{section}_{placement}`: | Example | Meaning | | --------------- | ---------------------- | | `header_left` | Left side of header | | `hero_center` | Center of hero section | | `body_top` | Top of main content | | `sidebar_top` | Top of sidebar | | `footer_right` | Right side of footer | | `sticky_bottom` | Sticky bar at bottom | | `floating` | Floating element | | `modal_center` | Center of modal | --- # Click to Email ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor clicks on an email address link (`mailto:` link) on your website, indicating intent to send an email to your business. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **click\_to\_email** for `event.name`. ``` name: "click_to_email" ``` **value** number required info Estimated value of an email lead. Set to 0 if not applicable. ``` value: 30.00 ``` **currency** string required info Currency code. Use your default currency. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "CLICK_EMAIL_12345" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "click_to_email", "value": 30.00, "currency": "EUR", "exchange_rate": 1, "properties": { "click_location": "footer", "page_section": "contact_info" } }, "context": { "url": "https://example.com/about", "page_type": "about", "environment": "prod" }, "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov" } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "click_to_email" } }); ``` --- # Click to Phone ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor clicks on a phone number link (`tel:` link) on your website, indicating intent to call your business. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **click\_to\_phone** for `event.name`. ``` name: "click_to_phone" ``` **value** number required info Estimated value of a phone call lead. Set to 0 if not applicable. ``` value: 50.00 ``` **currency** string required info Currency code. Use your default currency. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "CLICK_PHONE_12345" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "click_to_phone", "value": 50.00, "currency": "EUR", "exchange_rate": 1, "properties": { "click_location": "header", "page_section": "contact_bar" } }, "context": { "url": "https://example.com/contact", "page_type": "contact", "environment": "prod" }, "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov" } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "click_to_phone" } }); ``` --- # Click to WhatsApp ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event when a visitor clicks on a WhatsApp link (`wa.me` or `whatsapp://` link) on your website, indicating intent to start a WhatsApp conversation with your business. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **click\_to\_whatsapp** for `event.name`. ``` name: "click_to_whatsapp" ``` **value** number required info Estimated value of a WhatsApp conversation lead. Set to 0 if not applicable. ``` value: 50.00 ``` **currency** string required info Currency code. Use your default currency. ``` currency: "EUR" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default is 1. ``` exchange_rate: 1 ``` **id** string info Optional event identifier. ``` id: "CLICK_WA_12345" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` **context** object info [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Minimal ``` { "event": { "name": "click_to_whatsapp", "value": 50.00, "currency": "EUR", "exchange_rate": 1, "properties": { "click_location": "floating_button", "page_section": "bottom_right" } }, "context": { "url": "https://example.com/products/laptop", "page_type": "product", "environment": "prod" }, "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov" } } ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "click_to_whatsapp" } }); ``` --- # Page Viewed ## When to Use[​](#When-to-Use "Direct link to When to Use") Trigger this event on each route change in **Single Page Applications (SPA)** where URL changes don't trigger automatic page loads. For standard multi-page websites, page views are tracked automatically by the DATA Reshape script — this event is not needed. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object required **name** string required info Use only static value **page\_viewed** for `event.name`. ``` name: "page_viewed" ``` **value** number required info Set to 0 for page views. ``` value: 0 ``` **currency** string required info Currency code. Use your default currency. ``` currency: "EUR" ``` **context** object required info Context is required for this event — provide the current route URL and page type. [**View complete Context Object documentation**](/objects/context-web.md) **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` **user** object recommended info [**View complete User Object documentation**](/objects/user.md) **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Implementation * Minimal ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "page_viewed", "value": 0, "currency": "EUR" }, "context": { "url": "https://shop.example.com/electronics/cameras", "page_type": "category", "environment": "prod" }, "user": { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } }); ``` ``` // On each SPA route change window.reshape = window.reshape || []; reshape.push({ "event": { "name": "page_viewed", "value": 0, "currency": "EUR" }, "context": { "url": currentRouteUrl, // Current route URL from your framework's router "page_type": "product", "environment": "prod" }, "user": { "id": "CUST_123", "email": "customer@example.com" } }); ``` ``` window.reshape = window.reshape || []; reshape.push({ "event": { "name": "page_viewed", "value": 0, "currency": "EUR" }, "context": { "url": currentRouteUrl, // Current route URL from your framework's router "page_type": "home" } }); ``` info For standard (non-SPA) websites, page views are tracked automatically. Use this event only in SPA frameworks where you need to manually notify DATA Reshape of route changes. --- # DATA Reshape Documentation DATA Reshape is a server-side tracking platform that collects, processes, and streams data from your website to analytics and marketing destinations. It operates under your own domain (first-party) for accurate data collection, bypassing ad blockers and browser restrictions. ## Documentation[​](#Documentation "Direct link to Documentation") | Section | Description | | --------------------------------- | ----------------------------------------------------- | | [Custom Domain Setup](/subdomain) | DNS configuration for first-party tracking | | [Global Code Setup](/global-code) | JavaScript library installation on your website | | [Data Objects](/objects.md) | Standardized schema for products, users, transactions | | [Events Reference](/events.md) | E-commerce, lead generation, and interaction events | | [Webhook Integration](/webhooks) | Server-to-server event delivery | | [Monitoring](/monitoring) | Allow the DATA Reshape monitor through your firewall | ## Quick Start[​](#Quick-Start "Direct link to Quick Start") 1. **Set up your subdomain** — [Custom Domain Setup](/subdomain) 2. **Install the tracking script** — [Global Code Setup](/global-code) 3. **Implement events** — [Events Reference](/events.md) 4. **Configure destinations** — connect your analytics and advertising platforms *** For setup and onboarding: **** --- # Global Code Setup The DATA Reshape tracking script is a lightweight JavaScript snippet that enables server-side tracking across all pages of your website. It collects event data, manages user sessions, and forwards information to your configured destinations. The script operates under your own domain (first-party), avoiding ad blockers and third-party cookie restrictions. ## Prerequisites[​](#Prerequisites "Direct link to Prerequisites") Required Before Implementation Only implement after receiving confirmation from the DATA Reshape team that your custom domain and SSL certificate are active. You will need: * **Custom tracking subdomain** (e.g. `dre2.yourdomain.com`) * **Script ID** provided by the DATA Reshape team ## Implementation[​](#Implementation "Direct link to Implementation") Add this code to your website's `` section on **all pages**: ``` ``` Replace **`YOUR_SUBDOMAIN`** with your custom subdomain and **`YOUR_SCRIPT_ID`** with your Script ID. ### HTML Template Example[​](#HTML-Template-Example "Direct link to HTML Template Example") Here's how it should look in a complete HTML document: ``` Your Website ``` ## Platform-Specific Guides[​](#Platform-Specific-Guides "Direct link to Platform-Specific Guides") | Platform | Guide | | --------- | ----------------------------------------- | | WordPress | [WordPress Setup](/global-code/wordpress) | | Shopify | [Shopify Setup](/global-code/shopify) | ## Multiple Script IDs[​](#Multiple-Script-IDs "Direct link to Multiple Script IDs") A single website can use different Script IDs based on subdomain or pathname — useful for multi-store setups (e.g. Magento), multi-market configurations, or the PLUS plan with separate tracking configs. ``` ``` ## Content Security Policy (CSP)[​](#Content-Security-Policy-CSP "Direct link to Content Security Policy (CSP)") If your website uses Content Security Policy, add these directives: ``` Content-Security-Policy: script-src 'self' 'unsafe-inline' https://YOUR_SUBDOMAIN; connect-src 'self' https://YOUR_SUBDOMAIN; ``` ## Verification[​](#Verification "Direct link to Verification") 1. Open your website in a browser 2. Open Developer Tools (F12) → **Network** tab 3. Look for a request to `https://YOUR_SUBDOMAIN/main.js?id=YOUR_SCRIPT_ID` 4. Check the **Console** tab for any errors ## Troubleshooting[​](#Troubleshooting "Direct link to Troubleshooting") | Symptom | Cause | Solution | | ------------------------- | --------------------- | ------------------------------------------ | | No request in Network tab | DNS not configured | Verify subdomain DNS records | | `ERR_NAME_NOT_RESOLVED` | DNS issue | Check DNS, allow 24-48h for propagation | | `Mixed Content` error | HTTP instead of HTTPS | Ensure subdomain has valid SSL certificate | | `CORS policy` error | SSL or server config | Contact DATA Reshape team | ## Next Steps[​](#Next-Steps "Direct link to Next Steps") Once the script loads correctly: 1. **Implement events** — see [Events documentation](/events.md) 2. **Add user data** — include [User object](/objects/user.md) for better attribution 3. **Configure destinations** — connect your analytics and advertising platforms --- # Gomag implementation --- # Global Code Implementation Guide --- # Shopify Implementation Guide DATA Reshape implementation on Shopify requires partner access to your store. Due to Shopify's security model, direct theme editing and Customer Events configuration need partner-level permissions. ## Prerequisites[​](#Prerequisites "Direct link to Prerequisites") Required Before Implementation Only implement after receiving confirmation that your custom domain and SSL certificate are active. You will need: * **Custom tracking subdomain** (e.g. `dre2.yourdomain.com`) * **Script ID** provided by the DATA Reshape team ## Implementation Process[​](#Implementation-Process "Direct link to Implementation Process") ### Step 1: Grant Partner Access[​](#Step-1-Grant-Partner-Access "Direct link to Step 1: Grant Partner Access") 1. Contact the DATA Reshape team at with your store URL 2. You will receive a partner access request from Shopify via email 3. Follow the link in the email and approve the request **Required permissions:** Theme Access, Customer Events, Apps. ### Step 2: Technical Setup[​](#Step-2-Technical-Setup "Direct link to Step 2: Technical Setup") Once partner access is granted, the DATA Reshape team handles: * **Customer Events** — server-side tracking configuration and privacy settings * **Theme integration** — tracking code in your current theme * **E-commerce events** — product views, add to cart, checkout, purchase completion ### Step 3: Verification[​](#Step-3-Verification "Direct link to Step 3: Verification") The DATA Reshape team tests: * All store pages load correctly * Checkout process works without issues * Data flows to your configured destinations * Mobile and desktop compatibility ## Timeline[​](#Timeline "Direct link to Timeline") | Phase | Duration | | ----------------------------------- | -------- | | Partner access request and approval | 1–3 days | | Technical implementation | 1–2 days | | Testing and verification | 1 day | **Total: 3–6 days** ## Why Partner Access?[​](#Why-Partner-Access "Direct link to Why Partner Access?") Shopify requires partner access for Customer Events configuration, theme modifications, and API access needed for server-side tracking. This ensures secure implementation following Shopify best practices without affecting store performance. --- # WordPress Implementation Guide Multiple methods to implement DATA Reshape tracking on WordPress. Choose the one that fits your setup. ## Prerequisites[​](#Prerequisites "Direct link to Prerequisites") Required Before Implementation Only implement after receiving confirmation that your custom domain and SSL certificate are active. You will need: * **Custom tracking subdomain** (e.g. `dre2.yourdomain.com`) * **Script ID** provided by the DATA Reshape team ## Method 1: Theme header.php (Recommended)[​](#Method-1-Theme-headerphp-Recommended "Direct link to Method 1: Theme header.php (Recommended)") The most reliable method that works across all WordPress configurations. 1. Go to **Appearance → Theme Editor** → select **header.php** 2. Add this code **before** the `` tag: ``` ``` 3. Click **Update File** and clear any caching plugins Theme Updates Changes to theme files are lost during theme updates. Use a child theme or the functions.php method for persistence. ## Method 2: functions.php[​](#Method-2-functionsphp "Direct link to Method 2: functions.php") Programmatic implementation via WordPress hooks. Add to the end of **Appearance → Theme Editor → functions.php**: ``` function add_data_reshape_tracking() { $subdomain = 'YOUR_SUBDOMAIN'; $script_id = 'YOUR_SCRIPT_ID'; if (!is_admin()) { ?> (function(R,e,s,h,a,p,E){ var b=R.Reshape=R.Reshape||{}; b.setCookie=function(n,v,t,d){try{e.cookie=n+'='+v+';max-age='+t+';domain='+d+';path=/;SameSite=None;Secure';}catch(e){}}; b.id=a;b.cdn=h;b.sts=new Date().getTime(); E=e.getElementsByTagName(s)[0];p=e.createElement(s);p.async=true;p.src="https://"+h+"/main.js?id="+a;E.parentNode.insertBefore(p,E); })(window,document,"script","YOUR_SUBDOMAIN","YOUR_SCRIPT_ID"); ``` 3. Click **Save** and clear cache ## Method 4: Child Theme[​](#Method-4-Child-Theme "Direct link to Method 4: Child Theme") For persistence during theme updates. Create `/wp-content/themes/your-child-theme/functions.php`: ``` 0) ``` Action: **Skip** → All remaining custom rules, Bot Fight Mode, Super Bot Fight Mode. ### Verifying it works[​](#Verifying-it-works "Direct link to Verifying it works") After deploying, check **Security** → **Events** in the Cloudflare Dashboard. You should see requests with the `x-dre-monitor` header being skipped instead of challenged. The DATA Reshape alert will resolve automatically at the next check cycle. *** ## Sucuri[​](#Sucuri "Direct link to Sucuri") **1.** Log in to the [Sucuri Dashboard](https://dashboard.sucuri.net/) and select your site. **2.** Go to **Access Control** → **Header Allow**. **3.** Add a rule to allow requests that contain the header `x-dre-monitor`. If header-based rules are not available on your plan, go to **Access Control** → **User-Agent Allow** and add `DATA Reshape` as an allowed User-Agent string. *** ## Akamai[​](#Akamai "Direct link to Akamai") **1.** In the Akamai Control Center, open your **Security Configuration**. **2.** Go to **Custom Rules** or **Rate Controls**. **3.** Create an exception rule: * Match condition: Request header `x-dre-monitor` is present * Action: Allow **4.** Place the rule above any bot mitigation or rate limiting rules. **5.** Activate the configuration. *** ## AWS WAF (CloudFront)[​](#AWS-WAF-CloudFront "Direct link to AWS WAF (CloudFront)") **1.** In the AWS Console, go to **WAF & Shield** → **Web ACLs**. **2.** Select your Web ACL. **3.** Add a new rule with priority above your blocking rules: * Rule type: Regular rule * Match condition: Header `x-dre-monitor` is present * Action: Allow **4.** Save and deploy. *** ## Other providers[​](#Other-providers "Direct link to Other providers") For any firewall or bot protection not listed above, the principle is the same: 1. Find the section for custom rules, exceptions, or whitelisting 2. Create a rule matching requests that contain the header `x-dre-monitor` 3. Set the action to allow/bypass 4. Ensure it has higher priority than blocking rules If you need help with a specific provider, contact us at . ## FAQ[​](#FAQ "Direct link to FAQ") ### Will this weaken my site's security?[​](#Will-this-weaken-my-sites-security "Direct link to Will this weaken my site's security?") No. The rule only bypasses bot protection for requests containing the `x-dre-monitor` header. All other traffic remains fully protected. ### Why not whitelist by IP address?[​](#Why-not-whitelist-by-IP-address "Direct link to Why not whitelist by IP address?") The DATA Reshape monitor runs on distributed cloud infrastructure (Cloudflare Workers). Source IP addresses are shared and may change without notice. Header-based identification is reliable and does not require maintenance. ### What happens if I don't add the rule?[​](#What-happens-if-I-dont-add-the-rule "Direct link to What happens if I don't add the rule?") The monitor will continue to be blocked, and you will keep receiving "Website Inaccessible" or "Cloudflare Challenge Blocking" alerts. Your tracking will still work normally for real visitors — only the automated monitoring check is affected. ### How do I know the rule is working?[​](#How-do-I-know-the-rule-is-working "Direct link to How do I know the rule is working?") After adding the rule, any active "Website Inaccessible" alert from DATA Reshape will automatically resolve within a few minutes (at the next monitoring cycle). You can also check your firewall's request logs for the `x-dre-monitor` header. --- # Custom Domain Setup DATA Reshape uses a subdomain on your own domain (e.g. `dre2.yourdomain.com`) to collect tracking data as first-party. This avoids ad blockers and third-party cookie restrictions, improving data accuracy. ## Prerequisites[​](#Prerequisites "Direct link to Prerequisites") You will need: * **Domain control** — administrative access to your domain's DNS settings * **Subdomain choice** — we recommend `dre2` but any available subdomain works * **Contact with DATA Reshape** — to receive the SSL validation target and confirm activation Ad Blocker Prevention Avoid obvious tracking-related names like `ads`, `track`, `pixel`, or `analytics` — these are commonly blocked. ## Platform-Specific Guides[​](#Platform-Specific-Guides "Direct link to Platform-Specific Guides") For Cloudflare or cPanel, use the dedicated guides instead: | DNS Provider | Guide | | ------------------------------------------------ | ----------------------------------------- | | Cloudflare | [Cloudflare Setup](/subdomain/cloudflare) | | cPanel hosting (HostGator, Bluehost, SiteGround) | [cPanel Setup](/subdomain/cpanel) | The steps below cover most other DNS providers: GoDaddy, Namecheap, and similar. ## Configuration Steps[​](#Configuration-Steps "Direct link to Configuration Steps") ### 1. Access DNS Management[​](#1-Access-DNS-Management "Direct link to 1. Access DNS Management") Log into your domain registrar or hosting provider and navigate to DNS settings. Common labels: "Manage DNS", "DNS Zone Editor", "Advanced DNS", "Domain Settings". ### 2. Create Both CNAME Records[​](#2-Create-Both-CNAME-Records "Direct link to 2. Create Both CNAME Records") Add both records in your DNS management panel: | Type | Name | Target | TTL | | ----- | ---------------------- | --------------------------------------------------------- | ----------- | | CNAME | `dre2` | `app.datareshape.net` | Auto / 3600 | | CNAME | `_acme-challenge.dre2` | `dre2.yourdomain.com.5c7e7c9aba529dca.dcv.cloudflare.com` | Auto / 3600 | The first record routes tracking requests. The second is for automatic SSL certificate provisioning. warning Replace **`yourdomain.com`** with your actual domain everywhere in the table above — both in the Name and Target fields. info Some providers require the full domain format (e.g. `dre2.yourdomain.com` instead of `dre2`). Try short format first. ### 3. Verify[​](#3-Verify "Direct link to 3. Verify") **DNS check:** ``` nslookup dre2.yourdomain.com # Should resolve to: app.datareshape.net ``` **SSL check:** visit `https://dre2.yourdomain.com` — you should see a valid SSL certificate once provisioned (allow 24-48h). ## Provider Notes[​](#Provider-Notes "Direct link to Provider Notes") **GoDaddy** — DNS → Manage Zones → Add Record. Use short format: `dre2`. **Namecheap** — Advanced DNS → Add New Record. Use short format: `dre2`. **Other providers** — try short format first (`dre2`), then full format (`dre2.yourdomain.com`) if it doesn't work. ## Troubleshooting[​](#Troubleshooting "Direct link to Troubleshooting") | Issue | Solution | | ------------------------ | -------------------------------------------------------------------------------------------------- | | Cannot find DNS settings | Check if DNS is managed externally (Cloudflare, etc.). Look for "Zone Editor" or "Domain Settings" | | CNAME conflict | Remove any existing A, AAAA, or TXT records for the same subdomain first | | Error about format | Try short format vs full format — some providers auto-complete the domain | | Not resolving after 24h+ | Verify values are exactly correct. Use a DNS checker tool | ## Next Steps[​](#Next-Steps "Direct link to Next Steps") 1. Contact the DATA Reshape team at to confirm setup completion 2. Once confirmed, implement the tracking code — see [Global Code Setup](/global-code) --- # Cloudflare DNS Configuration Cloudflare requires specific proxy settings for DATA Reshape to work. Both CNAME records **must** use DNS only (gray cloud). Critical Cloudflare's proxy (orange cloud) **must be disabled** for your tracking subdomain. The orange cloud interferes with SSL certificate provisioning and tracking functionality. ## Configuration Steps[​](#Configuration-Steps "Direct link to Configuration Steps") ### 1. Access Cloudflare DNS[​](#1-Access-Cloudflare-DNS "Direct link to 1. Access Cloudflare DNS") Log into [Cloudflare Dashboard](https://dash.cloudflare.com) → select your domain → **DNS** in the left sidebar. ### 2. Create Both CNAME Records[​](#2-Create-Both-CNAME-Records "Direct link to 2. Create Both CNAME Records") Click **"Add record"** and add both: | Type | Name | Target | Proxy | TTL | | ----- | ---------------------- | --------------------------------------------------------- | ----------- | ---- | | CNAME | `dre2` | `app.datareshape.net` | ☁️ DNS only | Auto | | CNAME | `_acme-challenge.dre2` | `dre2.yourdomain.com.5c7e7c9aba529dca.dcv.cloudflare.com` | ☁️ DNS only | Auto | The first record routes tracking requests. The second is for automatic SSL certificate provisioning. warning Replace **`yourdomain.com`** with your actual domain everywhere in the table above — both in the Name and Target fields. ## Troubleshooting[​](#Troubleshooting "Direct link to Troubleshooting") | Issue | Solution | | --------------------------------- | -------------------------------------------------------------------- | | Tracking failures, timeout errors | Check proxy status — click orange cloud to turn it gray | | SSL certificate errors | Verify both CNAME records exist. Wait 24-48h for provisioning | | CNAME not resolving | Check record names and targets are exactly correct | | Intermittent tracking failures | Verify gray cloud. Check Cloudflare security rules and rate limiting | ## Next Steps[​](#Next-Steps "Direct link to Next Steps") Contact the DATA Reshape team at to confirm setup completion. --- # cPanel DNS Configuration For shared hosting providers using cPanel: HostGator, Bluehost, SiteGround, and others. ## Configuration Steps[​](#Configuration-Steps "Direct link to Configuration Steps") ### 1. Access Zone Editor[​](#1-Access-Zone-Editor "Direct link to 1. Access Zone Editor") Login to cPanel → find **"Zone Editor"** in the Domains section → click **"Manage"** for your domain. ### 2. Create Both CNAME Records[​](#2-Create-Both-CNAME-Records "Direct link to 2. Create Both CNAME Records") Click **"Add Record"** and add both: | Type | Name | Target | TTL | | ----- | -------------------------------------- | --------------------------------------------------------- | ----- | | CNAME | `dre2.yourdomain.com.` | `app.datareshape.net` | 14400 | | CNAME | `_acme-challenge.dre2.yourdomain.com.` | `dre2.yourdomain.com.5c7e7c9aba529dca.dcv.cloudflare.com` | 14400 | The first record routes tracking requests. The second is for automatic SSL certificate provisioning. warning Replace **`yourdomain.com`** with your actual domain everywhere in the table above — both in the Name and Target fields. cPanel Format cPanel typically requires the full subdomain with a trailing dot (e.g. `dre2.yourdomain.com.`). Some cPanel versions auto-complete this. ## Troubleshooting[​](#Troubleshooting "Direct link to Troubleshooting") | Issue | Solution | | ------------------------------ | --------------------------------------------------------------------------- | | Cannot find Zone Editor | Search "DNS" or "Zone" in cPanel. Contact hosting provider if not available | | Permission denied | Contact hosting provider to request DNS modification permissions | | Records disappear after saving | Check for conflicting records. Try with/without trailing dot | | Invalid format error | Try short format (`dre2`) vs full format (`dre2.yourdomain.com.`) | ## Next Steps[​](#Next-Steps "Direct link to Next Steps") Contact the DATA Reshape team at to confirm setup completion. --- # Objects Overview Data objects are the building blocks of the DATA Reshape tracking system. These standardized structures ensure consistent tracking across all events and implementations — both web (JavaScript) and API (webhooks). ## Objects[​](#Objects "Direct link to Objects") ### Event & Context[​](#Event--Context "Direct link to Event & Context") **[Event Object](/objects/event.md)** Core structure for all tracked events. Contains event name, value, currency, unique ID, and custom properties. **[Context Object - Web](/objects/context-web.md)** Browser context for web implementations. Page URL, page type, and environment. Most data is collected automatically — manual setup needed only for SPAs. **[Context Object - API](/objects/context-api.md)** Server-side context for webhook implementations. Environment, data source, user agent, IP address, and URL context preserved from the original user session. ### E-commerce[​](#E-commerce "Direct link to E-commerce") **[Product Object](/objects/product.md)** Product identification, pricing, inventory, categories, images, product-level coupons, and custom properties. Used in all product-related events. **[Shipping Object](/objects/shipping.md)** Shipping method, cost, and tax information. Required for checkout and shipping events. **[Payment Object](/objects/payment.md)** Payment method, amount, and type. Supports split payments with multiple methods per order. **[Coupon Object](/objects/coupon.md)** Discount codes and promotional offers with value, tax information, and classification. Applied at order-level or product-level. ### User & Consent[​](#User--Consent "Direct link to User & Consent") **[User Object](/objects/user.md)** Customer identification, contact information, geographic data, order history, and custom properties. Email and phone can be plaintext or SHA-256 hashed. **[Consent Object](/objects/consent-api.md)** User consent preferences for analytics, personalization, and marketing data processing. **[Cookies Object](/objects/cookies.md)** Flat key-value map of browser cookies for platform attribution. Only cookies mapped by DATA Reshape are processed. ## Implementation[​](#Implementation "Direct link to Implementation") All objects use the same structure for both web and API implementations. The only differences are in the context object (web vs API) and how data is collected (automatically via JavaScript or manually via webhooks). Start with the required fields and add optional data progressively. The more complete the data, the better the attribution and audience matching across destinations. --- # Consent API Object ## Overview[​](#Overview "Direct link to Overview") The consent object defines the user's explicit preferences regarding data collection and processing. It ensures that all downstream processing, reporting, and platform integrations respect the user's privacy choices. Each property is a boolean that controls a specific category of data usage: * **analytics** — consent for collecting data used in performance monitoring and usage statistics * **personalization** — consent for collecting data used to tailor user experiences and customize content * **marketing** — consent for collecting data used in advertising, remarketing, and campaign measurement ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **consent** object **analytics** boolean required info Indicates the user’s explicit consent regarding the collection and processing of data for analytical purposes, such as performance monitoring, usage statistics, and service optimization. ``` analytics: true ``` **personalization** boolean required info Indicates the user’s explicit consent regarding the collection and processing of data for personalization purposes, enabling tailored experiences and content customization. ``` personalization: true ``` **marketing** boolean required info Indicates the user’s explicit consent regarding the collection and processing of data for marketing purposes, such as targeted advertising, remarketing, and campaign measurement. ``` marketing: true ``` ## Example[​](#Example "Direct link to Example") ``` { "analytics": true, "personalization": false, "marketing": true } ``` --- # Context API Object ## Overview[​](#Overview "Direct link to Overview") The context object captures the server-side environment data for each event sent through the API. It preserves the original user interaction details (user agent, IP address, URLs) that are required for accurate attribution and analytics in server-to-server implementations. ## Properties[​](#Properties "Direct link to Properties") * **environment** *(required)* — `prod` for live data, `dev` for testing. Events sent with `dev` are logged but not processed. Using the `/test` endpoint suffix forces `dev` regardless of this value. * **data\_source** — identifies the origin system (e.g. `website`, `app`, `admin`, `phone`, `crm`). Free-form string, use consistent naming. * **user\_agent** — the original browser user agent string, preserved from the user's session * **override\_ip** — the original user's IP address. If not provided, the IP from the request headers is used automatically. * **url** — the page URL where the action occurred. If not provided, a fallback is generated from your account configuration. * **landing\_url** — the first page URL of the user's session * **referrer\_url** — the external URL that brought the user to the site ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **context** object **environment** string required info Allowed values: prod, dev ``` environment: "prod" ``` **data\_source** string required info Recommended values: * for website events: **website** * for admin manual added orders events: **phone** or **admin** * for app events: **app** * for marketplace events : **marketplace**. (You can replace "marketplace" word with real marketplace name.) ``` data_source: "website" ``` **user\_agent** string recommended info User-Agent string from a browser when the event occurs ``` user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36" ``` **override\_ip** string recommended info Ip address. Support ipv4 or ipv6. Recommended ipv6 if exists. ``` override_ip: "123.123.123.99" ``` **url** string recommended info URL of the page where the event occurred ``` url:"https://shop.example.com/thankyou-page" ``` **landing\_url** string recommended info URL of the first page visited in the session where the event occurred ``` landing_url:"https://shop.example.com/landing-page?query=abc" ``` **referrer\_url** string recommended info URL of the external referring site ``` referrer_url:"https://google.com" ``` ## Examples[​](#Examples "Direct link to Examples") * E-commerce Order * CRM / Phone Order * Admin Manual Order * Minimal ``` { "environment": "prod", "data_source": "website", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36", "override_ip": "203.0.113.45", "url": "https://shop.example.com/checkout/confirmation", "landing_url": "https://shop.example.com/products/laptop?utm_source=google&utm_medium=cpc", "referrer_url": "https://google.com/search" } ``` ``` { "environment": "prod", "data_source": "phone", "url": "https://example.com/contact-us", "landing_url": "https://example.com/pricing?utm_campaign=sales_call", "referrer_url": "https://linkedin.com/company/example" } ``` ``` { "environment": "prod", "data_source": "admin", "override_ip": "192.168.1.100", "url": "https://admin.example.com/orders/create" } ``` ``` { "environment": "prod", "data_source": "website" } ``` ## Collecting Context Data (PHP)[​](#Collecting-Context-Data-PHP "Direct link to Collecting Context Data (PHP)") Context data must be collected during the original user session and preserved for later webhook transmission: ``` // Collect during user session $contextData = [ 'user_agent' => $_SERVER['HTTP_USER_AGENT'] ?? '', 'override_ip' => $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'] ?? '', 'url' => (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'landing_url' => $_SESSION['landing_url'] ?? '', 'referrer_url' => $_SESSION['referrer_url'] ?? '' ]; // Store in session/database for later use in webhook payload $_SESSION['tracking_context'] = $contextData; ``` ``` // Later, when sending the webhook (e.g. on order completion) $payload = [ 'event' => [ /* ... */ ], 'context' => array_merge([ 'environment' => 'prod', 'data_source' => 'website' ], $_SESSION['tracking_context']), // ... ]; ``` ## Best Practices[​](#Best-Practices "Direct link to Best Practices") * **Preserve original context** — always use the original user's user agent and IP address, not the server's * **Collect early** — capture context data at session start (landing URL, referring URL) and store for later use * **Use `dev` for testing** — set `environment` to `dev` during integration to validate payloads without processing * **Consistent data sources** — use a standardized naming convention for `data_source` across your implementations * **HTTPS only** — always transmit context data over HTTPS --- # Context Web Object ## Overview[​](#Overview "Direct link to Overview") The context web object captures browser environment data for events collected through JavaScript implementations. Most context data (URL, environment) is collected automatically by the DATA Reshape script. Manual implementation is only needed for SPA applications or when you want to specify `page_type` for more granular analytics. ## Properties[​](#Properties "Direct link to Properties") * **url** — collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. * **page\_type** — categorizes the current page for analytics (e.g. `product`, `category`, `cart`, `checkout`, `home`, `blog`, `contact`). Free-form string, use consistent naming across your site. * **environment** — `prod` for live data, `dev` for testing. Events sent with `dev` are logged but not processed. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **context** object **url** string required-if-applicable info Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates. ``` url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google" ``` warning URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations. **page\_type** string recommended info Type of page (product, home ...) ``` page_type: "product" ``` **environment** string recommended info Allowed values: prod, dev ``` environment: "prod" ``` ## Examples[​](#Examples "Direct link to Examples") * Standard Website * SPA Application * Development ``` { "page_type": "product", "environment": "prod" } ``` URL is collected automatically. Only `page_type` and `environment` need to be specified. ``` { "url": "https://app.example.com/dashboard/analytics?date_range=30d", "page_type": "dashboard", "environment": "prod" } ``` For SPA applications, `url` must be provided manually on each route change since the browser URL doesn't update automatically. ``` { "page_type": "product", "environment": "dev" } ``` Events with `dev` environment are logged for debugging but not processed or forwarded to destinations. ## SPA Implementation[​](#SPA-Implementation "Direct link to SPA Implementation") For Single Page Applications, push a new event with updated context on each route change: ``` // On each SPA route change, push a new event with the current route URL window.reshape = window.reshape || []; reshape.push({ event: { name: "page_viewed" }, context: { url: currentRouteUrl, // Current route URL from your framework's router page_type: "dashboard", environment: "prod" } }); ``` ## Best Practices[​](#Best-Practices "Direct link to Best Practices") * **Consistent page types** — use a standardized naming convention for `page_type` across your site * **SPA route tracking** — ensure context updates on every significant route change * **Use `dev` for testing** — set `environment` to `dev` during integration to validate events without processing * **URL sensitivity** — be mindful of sensitive information in URL parameters (session tokens, personal identifiers); consider filtering before tracking --- # Cookies Object ## Overview[​](#Overview "Direct link to Overview") The cookies object is a flat key-value map containing browser cookies required by tracking platforms and advertising destinations. This object is designed for server-side tracking where cookie values must be collected from the original user session and transmitted through the API to enable proper attribution across advertising platforms and analytics destinations. Include only cookies required by the client's active destinations. ## Structure[​](#Structure "Direct link to Structure") Cookies are transmitted as a flat object where each key is the cookie name and each value is the cookie value. Both must be strings. ``` { "_ga": "GA1.2.123456789.1640995200", "_gcl_aw": "GCL.1640995200.CjwKCAiA", "_fbp": "fb.1.1640995200.123456789" } ``` If cookies are not available or the format is invalid, an empty object `{}` will be used. ## What Cookies Can You Send?[​](#What-Cookies-Can-You-Send "Direct link to What Cookies Can You Send?") You can send any cookie that is relevant for tracking and attribution — this includes both platform-proprietary cookies (like `_ga`, `_fbp`, `_ttp`) and custom cookies specific to your implementation (like `custom_session_id`, `affiliate_ref`). However, there is an important distinction: **a cookie is only processed and forwarded to a destination if it has been mapped by DATA Reshape with a defined purpose for that specific destination**. Any cookie that is not mapped will be accepted in the payload but silently ignored during processing. This means you can safely send all tracking-related cookies you have available — DATA Reshape will pick up and use only the ones that are relevant for each active destination. There is no penalty for sending extra cookies, but sending cookies that have no tracking purpose (like session tokens, CSRF tokens, or UI preference cookies) adds unnecessary payload size. info The list of mapped cookies per destination is managed by DATA Reshape and evolves as new platform integrations are added. You do not need to know which cookies are mapped — just send all tracking-related cookies and DATA Reshape will handle the rest. ## Example[​](#Example "Direct link to Example") ``` { // Platform cookies — processed if destination is active and cookie is mapped "_ga": "GA1.2.123456789.1640995200", "_gcl_aw": "GCL.1640995200.CjwKCAiA", "_fbp": "fb.1.1640995200.123456789", "_fbc": "fb.1.1640995200.AbCdEfGhIjKlMnOp", "_ttp": "123456789.abcdefgh", // Custom cookies — processed only if mapped by DATA Reshape "affiliate_ref": "partner_abc_123", "landing_campaign": "spring_sale_2025" } ``` ## Cookie Collection (Server-Side)[​](#Cookie-Collection-Server-Side "Direct link to Cookie Collection (Server-Side)") Since cookies are only available in API implementations, they must be collected during the user's browser session and sent via webhook: ``` // Collect cookies server-side for webhook transmission $requiredCookies = ['_ga', '_gid', '_gcl_aw', '_fbp', '_fbc', '_ttp']; $cookies = []; foreach ($requiredCookies as $name) { if (isset($_COOKIE[$name]) && !empty($_COOKIE[$name])) { $cookies[$name] = $_COOKIE[$name]; } } ``` ## Usage in Webhook Payload[​](#Usage-in-Webhook-Payload "Direct link to Usage in Webhook Payload") ``` $payload = [ 'event' => [ 'name' => 'checkout_completed', 'value' => 299.99, 'currency' => 'USD', 'id' => 'ORDER_12345' ], 'context' => [ 'environment' => 'prod', 'data_source' => 'website' ], 'cookies' => [ '_ga' => 'GA1.2.123456789.1640995200', '_gcl_aw' => 'GCL.1640995200.CjwKCAiA', '_fbp' => 'fb.1.1640995200.123456789' ], 'user' => [ 'email' => 'customer@example.com' ] ]; ``` ## Best Practices[​](#Best-Practices "Direct link to Best Practices") * **Required Cookies Only** — include only cookies needed by client's active platforms * **Valid Values** — ensure cookie values are current and properly formatted * **Consent Compliance** — respect user privacy preferences; include marketing cookies only with marketing consent * **Session Preservation** — collect cookies during user session for later API use; store them in session or database for delayed order processing * **HTTPS Only** — always use HTTPS for API calls containing cookie data --- # Coupon Object ## Overview[​](#Overview "Direct link to Overview") The coupon object represents a single discount code or promotional offer applied to an order or product. It captures the discount value, tax implications, and coupon classification for promotion tracking and marketing analytics. Coupons can be applied at two levels: * **Order-level** — in the top-level `coupons` array, applied to the entire order * **Product-level** — inside a product's `coupons` array, applied to a specific product ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **coupons\[0]** object **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` ## Examples[​](#Examples "Direct link to Examples") * Percentage Discount * Fixed Amount * Free Shipping * Multiple Coupons ``` { "name": "SUMMER10", "value": 29.99, "tax_included": true, "tax_percent": 19, "id": "SUMMER10_2024", "type": "SEASONAL", "currency": "EUR", "exchange_rate": 1 } ``` ``` { "name": "SAVE25", "value": 25.00, "tax_included": true, "tax_percent": 19, "id": "SAVE25_PROMO", "type": "FIXED_AMOUNT", "currency": "EUR", "exchange_rate": 1 } ``` ``` { "name": "FREESHIP", "value": 15.99, "tax_included": true, "tax_percent": 0, "id": "FREESHIP_001", "type": "SHIPPING" } ``` ``` [ { "name": "NEWCUSTOMER20", "value": 60.00, "tax_included": true, "tax_percent": 19, "id": "NEW20_001", "type": "FIRST_ORDER" }, { "name": "FREESHIP50", "value": 12.99, "tax_included": true, "tax_percent": 0, "id": "FREESHIP_001", "type": "SHIPPING" } ] ``` ## Order-Level vs Product-Level[​](#Order-Level-vs-Product-Level "Direct link to Order-Level vs Product-Level") ### Order-Level Coupons[​](#Order-Level-Coupons "Direct link to Order-Level Coupons") Applied to the entire order in the top-level `coupons` array: ``` { "event": { "name": "checkout_completed", "id": "ORD_123" }, "coupons": [ { "name": "ORDER_WIDE_15OFF", "value": 45.00, "tax_included": true, "tax_percent": 19, "type": "PROMOTIONAL" } ] } ``` ### Product-Level Coupons[​](#Product-Level-Coupons "Direct link to Product-Level Coupons") Applied to a specific product inside the product's `coupons` array: ``` { "products": [ { "id": "LAPTOP_001", "name": "Gaming Laptop", "price": 999.99, "coupons": [ { "name": "LAPTOP_DEAL", "value": 100.00, "tax_included": true, "tax_percent": 19, "type": "PRODUCT_SPECIFIC" } ] } ] } ``` ## Best Practices[​](#Best-Practices "Direct link to Best Practices") * **Accurate values** — ensure coupon values reflect the actual discount amount applied, not the coupon's potential value * **Consistent naming** — use standardized coupon code naming conventions * **Tax information** — include accurate tax calculations; if `tax_percent` is not provided, the default from your account configuration is used * **Currency** — only specify `currency` and `exchange_rate` when the coupon's currency differs from the event currency * **Type classification** — use consistent `type` values for campaign analytics (e.g. "SEASONAL", "LOYALTY", "FIRST\_ORDER", "SHIPPING", "PROMOTIONAL") --- # Event Object ## Overview[​](#Overview "Direct link to Overview") The event object is the core structure for all tracked events. It captures the event type, monetary value, currency, unique identifier, and custom properties for tracking and analytics. The `name` field determines how the event is processed and which destination APIs receive it. The `id` field is required for events that need deduplication (e.g. `checkout_completed`, `order_canceled`). Only events that are mapped in your account configuration will be accepted. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **event** object **name** string required info Name of the event to be sent. ``` name: "event_name" ``` **value** number required info Event value in decimal format. Represent the final total order amount, including all costs and discounts. ``` value: 123.99 ``` **currency** string required info Currency code that specifies the currency in which all monetary values from any object associated with this event are expressed. Note: This value can be overridden in nested objects if they contain their own `value` key with a currency specified. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Note: This value can be overridden in nested objects if they contain their own **value** key with a currency specified. ``` exchange_rate: 1 ``` **id** string required-if-applicable info Event ID — required for transactions or any actions that require deduplication or uniqueness. Represents the unique identifier of a transaction, order, or lead. This can be the unique order, transaction, or action ID used in your system. ``` id: "UNIQUE_TRANSACTION_123" ``` **properties** object recommended info **Custom Event Properties Examples** * Order canceled * B2B Lead * Subscription Service ``` properties: { cancel_reason: "returning", } ``` ``` properties: { lead_status: "converted", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ## Examples[​](#Examples "Direct link to Examples") * Checkout Completed * Lead Created * Product Viewed * Order Canceled * Minimal ``` { "name": "checkout_completed", "value": 299.99, "currency": "USD", "exchange_rate": 1, "id": "ORDER_2024_001234", "properties": { "payment_method": "credit_card", "shipping_method": "express", "items_count": 3 } } ``` ``` { "name": "lead_created", "value": 250.00, "currency": "EUR", "id": "LEAD_2024_005678", "properties": { "lead_source": "contact_form", "form_name": "request_demo" } } ``` ``` { "name": "product_viewed", "value": 149.99, "currency": "RON" } ``` ``` { "name": "order_canceled", "value": 0, "currency": "EUR", "id": "ORDER_2024_001234", "properties": { "cancellation_reason": "customer_request" } } ``` ``` { "name": "page_viewed", "value": 0, "currency": "USD" } ``` ## Event ID[​](#Event-ID "Direct link to Event ID") The `id` field serves different purposes depending on the event type: * **Transaction events** (`checkout_completed`, `order_canceled`) — `id` is required and used for deduplication. Events with duplicate IDs are not processed again per destination. * **Non-transaction events** (`product_viewed`, `page_viewed`, etc.) — `id` is optional. If not provided, a unique ID is generated automatically. ## Custom Properties[​](#Custom-Properties "Direct link to Custom Properties") The `properties` object allows you to attach any custom key-value data to an event. Use it for business-specific attributes that enable segmentation and analytics in your destinations. ``` { "properties": { "payment_method": "credit_card", "customer_type": "returning", "coupon_code": "SUMMER10", "checkout_duration": 180 } } ``` Keep custom properties focused — limit to 5-10 key properties per event for optimal performance across destinations. ## Currency and Exchange Rate[​](#Currency-and-Exchange-Rate "Direct link to Currency and Exchange Rate") The `currency` field applies to all monetary values in the event and its nested objects (products, shipping, coupons). Nested objects can override `currency` and `exchange_rate` individually when they use a different currency. ``` { "name": "checkout_completed", "value": 1299.99, "currency": "RON", "exchange_rate": 0.22 } ``` ## Best Practices[​](#Best-Practices "Direct link to Best Practices") * **Consistent event names** — use the same event names across all implementations for accurate tracking * **Accurate values** — ensure `value` reflects the actual monetary impact (order total, lead value, etc.) * **Unique IDs for transactions** — always provide a unique `id` for `checkout_completed` and `order_canceled` to prevent duplicate processing * **Focused properties** — include only properties that enable actionable insights in your destinations * **Currency consistency** — use the same currency code across related events when possible --- # Payment Object ## Overview[​](#Overview "Direct link to Overview") The payment object represents a single payment method used in a transaction. An order can have multiple payment objects when the customer uses split payments (e.g. gift card + credit card). Each payment captures the method name, amount paid, and payment classification. The sum of all payment values should match the order total. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **payments\[0]** object **name** string required info Payment method name. ``` name: "Credit Card - Visa" ``` **value** number required info Amount paid with this payment method ``` value: 12.99 ``` **id** string info Payment method internal identifier ``` id: "PAYMENT_INTERNAL_ID" ``` **type** string info Payment type. Free-form string, use consistent naming (e.g. "card", "paypal", "bank\_transfer", "gift\_card", "cash\_on\_delivery"). ``` type: "card" ``` ## Examples[​](#Examples "Direct link to Examples") * Single Payment * Split Payment * Cash on Delivery * Bank Transfer ``` { "name": "Credit Card - Visa", "value": 299.99, "id": "CC_VISA_4532", "type": "card" } ``` ``` [ { "name": "Gift Card", "value": 50.00, "id": "GC_CARD_001", "type": "gift_card" }, { "name": "Credit Card - Mastercard", "value": 249.99, "id": "CC_MC_8901", "type": "card" } ] ``` ``` { "name": "Cash on Delivery", "value": 149.99, "type": "cash_on_delivery" } ``` ``` { "name": "Bank Transfer", "value": 1299.99, "id": "BT_REF_789456", "type": "bank_transfer" } ``` ## Best Practices[​](#Best-Practices "Direct link to Best Practices") * **Accurate amounts** — ensure payment values reflect actual transaction amounts; the sum of all payments should equal the order total * **Consistent naming** — use standardized payment method names across events * **Type classification** — use consistent `type` values for reporting (e.g. "card", "paypal", "bank\_transfer", "gift\_card", "cash\_on\_delivery", "buy\_now\_pay\_later") * **No sensitive data** — never include full card numbers, CVV, or other sensitive payment details; use last four digits or tokenized IDs only * **Split payments** — when a customer pays with multiple methods, include each as a separate object in the `payments` array --- # Product Object ## Overview[​](#Overview "Direct link to Overview") The product object represents a single product or product variant in an e-commerce event. It captures identification, pricing, inventory, categorization, and custom properties for tracking and audience segmentation. Required fields are `id`, `name`, `price`, `price_base`, `tax_included`, `tax_percent`, and `quantity`. Fields like `parent_id`, `parent_name`, and `parent_sku` default to their non-parent counterparts if not provided. `tax_included` defaults to `true`, `quantity` defaults to 1, `stock_status` defaults to `true`, and `tax_percent` defaults to the site's configured rate if not provided. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **products\[0]** object **id** string required info Unique product identifier in your system. ``` id: "PRODUCT_ID" ``` **parent\_id** string recommended info Parent product ID for variants or child products. Defaults to `id` if not provided. ``` parent_id: "PRODUCT_PARENT_ID" ``` **name** string required info Product name or title displayed to users. ``` name: "Professional Wireless Headphones" ``` **parent\_name** string info Parent product name for variants or child products. Defaults to `name` if not provided. ``` parent_name: "Professional Headphones Collection" ``` **price\_base** number required info Original or base price before discounts. Always equal to or greater than `price`. ``` price_base: 299.99 ``` **price** number required info Current selling price after discounts. Always equal to or less than `price_base`. ``` price: 249.99 ``` **tax\_included** boolean required info Whether the price includes taxes. Defaults to `true` if not provided. ``` tax_included: true ``` **tax\_percent** number required info Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country). ``` tax_percent: 19 ``` **quantity** number required info Quantity of this product in the context of the event. Defaults to 1 if not provided. ``` quantity: 2 ``` **category** string recommended info Main product category name ``` category: "Electronics" ``` **sku** string info Product SKU (Stock Keeping Unit) for inventory tracking ``` sku: "SKU_HEADPHONES_PRO" ``` **parent\_sku** string info Parent product SKU for variants or child products. Defaults to `sku` if not provided. ``` parent_sku: "SKU_HEADPHONES" ``` **gtin** string info Global Trade Item Number for product identification ``` gtin: "1234567890123" ``` **mpn** string info Manufacturer Part Number assigned by the manufacturer ``` mpn: "HP-PRO-2024" ``` **ean** string info European Article Number for product barcoding ``` ean: "1234567890123" ``` **brand** string info Product brand or manufacturer name ``` brand: "AudioTech" ``` **type** string info Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription"). ``` type: "simple" ``` **stock\_status** boolean recommended info Product availability (true = in stock, false = out of stock). Defaults to `true` if not provided. ``` stock_status: true ``` **stock\_location** string info Physical location or warehouse where product is stored ``` stock_location: "Main Warehouse EU" ``` **created\_at** number info Timestamp when product was added to inventory (milliseconds) ``` created_at: 1748505040077 ``` **url** string info Direct URL to the product page ``` url: "https://shop.example.com/products/headphones-pro" ``` **parent\_url** string info URL to the parent product page (for variants) ``` parent_url: "https://shop.example.com/products/headphones-collection" ``` **image** string info Main product image URL ``` image: "https://cdn.example.com/headphones-main.jpg" ``` **images** array info Array of additional product image URLs ``` images: [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ] ``` **categories** array info Array of category objects with name and id properties * **name** (string, required) - Category name * **id** (string) - Category identifier ``` categories: [ { name: "Electronics", id: "cat_electronics" }, { name: "Audio", id: "cat_audio" } ] ``` **coupons** array info Array of product-level coupons applied to this product. [**View complete Coupon Object documentation**](/objects/coupon.md) **coupons\[0]** (object) - `required` **name** string required info Coupon name or code. ``` name: "FREE SHIPPING" ``` **value** number recommended info Coupon discount value. ``` value: 123.99 ``` **tax\_included** boolean recommended info Whether coupon value includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for the coupon ``` tax_percent: 21 ``` **id** string info Coupon internal identifier. ``` id: "COUPON_INTERNAL_ID" ``` **type** string info Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST\_ORDER", "SHIPPING"). ``` type: "SHIPPING" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` **properties** object recommended info Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs. Product Segmentation Use the `properties` object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * IT & C * Fashion * Deco ``` properties: { color: "space_gray", storage: "256GB", memory: "16GB", connectivity: ["wifi", "bluetooth"], warranty: "2_years", energy_rating: "A++", brand_series: "pro_line" } ``` ``` properties: { color: ["black", "white"], size: "M", material: "cotton", fit: "regular", season: "summer", collection: "2024_spring", care_instructions: "machine_wash" } ``` ``` properties: { color: ["natural", "oak"], dimensions: "120x80x75cm", material: ["wood", "metal"], style: "modern", room_type: ["living_room", "office"], assembly_required: "true" } ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Variable Product * Minimal ``` { "id": "HEADPHONES_PRO_001", "parent_id": "HEADPHONES_PRO_SERIES", "name": "Professional Wireless Headphones", "parent_name": "Professional Headphones Collection", "price_base": 299.99, "price": 249.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Electronics", "sku": "SKU_HP_PRO_001", "parent_sku": "SKU_HP_PRO", "gtin": "1234567890123", "mpn": "HP-PRO-2024", "ean": "1234567890123", "brand": "AudioTech", "type": "simple", "stock_status": true, "stock_location": "Main Warehouse EU", "created_at": 1748505040077, "url": "https://shop.example.com/headphones-pro", "parent_url": "https://shop.example.com/headphones-collection", "image": "https://cdn.example.com/headphones-main.jpg", "images": [ "https://cdn.example.com/headphones-front.jpg", "https://cdn.example.com/headphones-side.jpg" ], "categories": [ { "name": "Electronics", "id": "cat_electronics" }, { "name": "Audio", "id": "cat_audio" }, { "name": "Headphones", "id": "cat_headphones" } ], "coupons": [ { "name": "EARLY_BIRD", "value": 50.00, "tax_included": true, "tax_percent": 19, "type": "AUTOMATED" } ], "properties": { "color": "midnight_black", "connectivity": ["bluetooth", "wired"], "noise_cancellation": "active", "battery_life": "30_hours" } } ``` ``` { "id": "SHIRT_BLUE_M", "parent_id": "SHIRT_COLLECTION", "name": "Blue Shirt - Medium", "parent_name": "Premium Shirt Collection", "price_base": 89.99, "price": 79.99, "tax_included": true, "tax_percent": 19, "quantity": 1, "category": "Fashion", "sku": "SHIRT_COTTON_M_BLUE", "parent_sku": "SHIRT_COTTON", "brand": "StyleBrand", "type": "variable", "url": "https://shop.example.com/shirt-blue-m", "parent_url": "https://shop.example.com/shirt-collection", "image": "https://cdn.example.com/shirt-blue.jpg", "categories": [ { "name": "Fashion", "id": "cat_fashion" }, { "name": "Men's Clothing", "id": "cat_mens" } ], "properties": { "color": "navy_blue", "size": "M", "material": "cotton" } } ``` ``` { "id": "PRODUCT_001", "name": "Basic Product", "price_base": 29.99, "price": 29.99, "tax_included": true, "tax_percent": 19, "quantity": 1 } ``` All required fields provided. Missing optional fields like `parent_id`, `parent_name`, `parent_sku` will default to their base counterparts. ## Price Logic[​](#Price-Logic "Direct link to Price Logic") * `price_base` is always equal to or greater than `price`. If `price_base` is not provided, it defaults to `price`. * If `price` > `price_base`, the values are automatically corrected so that `price_base` becomes the higher value and `price` the lower. * Negative prices are set to 0. ## Parent Fields[​](#Parent-Fields "Direct link to Parent Fields") For variable products (variants), parent fields provide the connection to the main product: * `parent_id` — defaults to `id` if not provided * `parent_name` — defaults to `name` if not provided * `parent_sku` — defaults to `sku` if not provided * `parent_url` — not defaulted, omitted if empty ## Best Practices[​](#Best-Practices "Direct link to Best Practices") * **Consistent IDs** — use the same product IDs across all events for accurate tracking * **Accurate pricing** — ensure `price_base` and `price` reflect actual values; the system corrects inverted prices automatically * **Custom properties** — use properties that enable meaningful audience segmentation (color, size, material, etc.); keep naming consistent across products * **Categories** — provide hierarchical categories from broad to specific for better analytics * **Currency** — only specify `currency` and `exchange_rate` when the product currency differs from the event currency * **Product-level coupons** — use the `coupons` array for discounts applied to specific products; use the top-level `coupons` array for order-wide discounts --- # Shipping Object ## Overview[​](#Overview "Direct link to Overview") The shipping object represents a single shipping method or delivery option used in a transaction. An order can have multiple shipping objects when items are shipped separately (split shipments). Each shipping captures the method name, cost, tax information, and delivery classification. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **shipping\[0]** object **name** string required info Shipping method name ``` name: "Express Delivery" ``` **value** number required info Shipping cost value ``` value: 12.99 ``` **tax\_included** boolean recommended info Whether shipping cost includes taxes ``` tax_included: true ``` **tax\_percent** number recommended info Tax percentage for shipping (0-50) ``` tax_percent: 19 ``` **id** string info Shipping method identifier. ``` id: "SHIPPING_INTERNAL_ID" ``` **type** string info Shipping type. Free-form string, use consistent naming (e.g. "standard", "express", "next\_day", "pickup", "free"). ``` type: "standard" ``` **currency** string required-if-applicable info Currency code. Specifies the currency code when it differs from event.currency. ``` currency: "USD" ``` **exchange\_rate** number info Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange\_rate. ``` exchange_rate: 1 ``` ## Examples[​](#Examples "Direct link to Examples") * Standard Shipping * Express Shipping * Free Shipping * Store Pickup * Split Shipments ``` { "name": "Standard Ground Shipping", "value": 15.99, "tax_included": true, "tax_percent": 19, "id": "SHIP_STD_001", "type": "standard" } ``` ``` { "name": "Express Next Day Delivery", "value": 29.99, "tax_included": true, "tax_percent": 19, "id": "SHIP_EXP_001", "type": "express" } ``` ``` { "name": "Free Standard Shipping", "value": 0.00, "tax_included": true, "tax_percent": 0, "type": "free" } ``` ``` { "name": "Store Pickup - Downtown", "value": 0.00, "tax_included": true, "tax_percent": 0, "type": "pickup" } ``` ``` [ { "name": "Standard Shipping - Package 1", "value": 12.99, "tax_included": true, "tax_percent": 19, "id": "SHIP_PKG1", "type": "standard" }, { "name": "Express Shipping - Package 2", "value": 24.99, "tax_included": true, "tax_percent": 19, "id": "SHIP_PKG2", "type": "express" } ] ``` ## Best Practices[​](#Best-Practices "Direct link to Best Practices") * **Accurate costs** — ensure shipping values reflect real costs including taxes * **Tax information** — include accurate tax calculations; if `tax_percent` is not provided, the default from your account configuration is used * **Currency** — only specify `currency` and `exchange_rate` when the shipping currency differs from the event currency * **Type classification** — use consistent `type` values for analytics (e.g. "standard", "express", "next\_day", "overnight", "free", "pickup") * **Split shipments** — when items ship separately, include each shipment as a separate object in the `shipping` array --- # User Object ## Overview[​](#Overview "Direct link to Overview") The user object represents a customer or visitor interacting with your website or application. It captures identification, contact information, geographic data, order history, and custom properties for user segmentation and personalization across destinations. No fields are strictly required — include as much data as available. The more complete the user data, the better the attribution and audience matching across advertising platforms. Email and phone can be provided as plaintext or SHA-256 hashed values. Plaintext values are automatically hashed before being sent to destinations that require it. ## Complete Reference[​](#Complete-Reference "Direct link to Complete Reference") **user** object **id** string recommended info Unique customer identifier in your system. ``` id: "CUSTOMER_INTERNAL_ID" ``` **email** string recommended info Customer email address(es) provided in plaintext or as SHA-256 hashed values. ``` email: "john@example.com" // or email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq" ``` **phone** string recommended info Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values. ``` phone: "+40712345678" // or phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y" ``` **first\_name** string recommended info Customer first name ``` first_name: "John" ``` **last\_name** string recommended info Customer last name ``` last_name: "Doe" ``` **country** string info Country name or ISO country code ``` country: "Romania" ``` **region** string recommended info State, province, or region name ``` region: "Bucuresti" ``` **city** string recommended info City or locality name ``` city: "Bucuresti" ``` **street** string info Street address including number ``` street: "Strada Principala 1" ``` **postal\_code** string info Postal code or ZIP code ``` postal_code: "700000" ``` **orders\_total\_number** number recommended info Cumulative number of orders placed by this user ``` orders_total_number: 5 ``` **orders\_canceled\_number** number recommended info Cumulative number of orders placed and canceled by this user ``` orders_canceled_number: 0 ``` **orders\_total\_value** number recommended info Cumulative lifetime user orders value (decimal format: 2500.50) ``` orders_total_value: 1234.99 ``` **orders\_refunded\_value** number recommended info Cumulative lifetime user orders value canceled (decimal format: 2500.50) ``` orders_refunded_value: 250.99 ``` **predicted\_value** number info Predicted lifetime value of a customer for your business ``` predicted_value: 100.99 ``` **created\_at** number recommended info Timestamp in milliseconds since Unix epoch representing the first time the user was recorded ``` created_at: 1754926521690 ``` **properties** object recommended info **Custom Customer Properties Examples** User Segmentation Use the `properties` object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns. * E-commerce Customer * B2B Lead/Customer * Subscription Service * Content Platform ``` properties: { customer_type: "returning", membership_level: "platinum", preferred_category: ["electronics", "fashion"], last_purchase_date: "2024-12-15", average_order_value: "350.00", payment_method_preference: "card", registration_date: "2023-06-15" } ``` ``` properties: { company_size: "enterprise", industry: "fintech", job_title: "marketing_director", decision_maker: "true", budget_range: "50000-100000", lead_source: ["linkedin", "webinar"], qualification_status: "qualified", sales_stage: "proposal" } ``` ``` properties: { subscription_tier: "premium", billing_cycle: "annual", feature_usage: ["analytics", "reporting", "api"], trial_user: "false", renewal_date: "2025-06-30", support_level: "priority", usage_frequency: "daily" } ``` ``` properties: { content_preferences: ["technology", "business"], engagement_level: "high", newsletter_subscriber: "true", social_media_follower: "true", content_consumption: "premium", device_preference: ["mobile", "desktop"], timezone: "Europe/Bucharest" } ``` ## Examples[​](#Examples "Direct link to Examples") * Complete * Hashed PII * Lead * Minimal ``` { "id": "CUST_12345", "email": "customer@example.com", "phone": "+40712345678", "first_name": "Alexandru", "last_name": "Popescu", "country": "RO", "region": "Brasov", "city": "Brasov", "street": "Strada Republicii 45", "postal_code": "500030", "orders_total_number": 8, "orders_canceled_number": 1, "orders_total_value": 2156.75, "orders_refunded_value": 299.99, "predicted_value": 3500.00, "created_at": 1640995200000, "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold" } } ``` ``` { "id": "CUST_67890", "email": "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq", "phone": "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y", "country": "DE", "city": "Munich", "orders_total_number": 3, "orders_total_value": 567.50, "created_at": 1672531200000 } ``` Email and phone provided as SHA-256 hashed values. Useful when you prefer to hash on your side before sending. ``` { "email": "david.smith@techcorp.com", "phone": "+1555234567", "first_name": "David", "last_name": "Smith", "country": "US", "region": "New York", "city": "New York", "predicted_value": 15000.00, "created_at": 1704067200000, "properties": { "company": "TechCorp Solutions", "job_title": "IT Director", "lead_source": "webinar" } } ``` ``` { "email": "user@example.com" } ``` Even a single email enables audience matching across most advertising platforms. ## Order History Fields[​](#Order-History-Fields "Direct link to Order History Fields") The order history fields provide lifetime metrics for customer value analysis and segmentation: * **orders\_total\_number** — cumulative number of orders placed * **orders\_canceled\_number** — cumulative number of canceled orders * **orders\_total\_value** — cumulative lifetime order value * **orders\_refunded\_value** — cumulative refunded value * **predicted\_value** — predicted lifetime value for your business * **created\_at** — timestamp (milliseconds) when the user was first recorded These values should reflect the user's complete history, not just the current event. ## Custom Properties[​](#Custom-Properties "Direct link to Custom Properties") The `properties` object allows you to attach any custom key-value data for segmentation: ``` { "properties": { "customer_segment": "loyal", "acquisition_channel": "paid_search", "loyalty_tier": "gold", "preferred_categories": ["electronics", "home_garden"] } } ``` Use properties that enable meaningful audience segmentation in your advertising destinations. ## Best Practices[​](#Best-Practices "Direct link to Best Practices") * **Consistent IDs** — use stable user IDs across all events and sessions * **Multiple contact methods** — provide both email and phone when available for better audience matching * **Accurate order history** — keep lifetime metrics up to date for proper customer value segmentation * **Plaintext or hashed** — send email and phone as plaintext (auto-hashed before sending to destinations) or pre-hash with SHA-256 on your side * **Focused properties** — include only properties that enable actionable segmentation in your destinations * **Privacy compliance** — respect user consent preferences; omit personal data when consent is not granted ---