Skip to main content

Why the Converge Spec?

Most CDPs are not very strict about which events you track, where you track them (client or server) and with which properties. This usually leads to problems with destinations downstream as each destination does have very specific integration requirements to operate optimally.

Advantages of a strict spec

Converge, therefore, works with a strict Converge event spec. Because we have a semantic understanding of what you are tracking, we can:
  1. Automatically map your source events to destinations in an optimal way through our
  2. Surface your meaningful analytics through our product.
  3. Monitor and flag when you are wrongly tracking events or properties negatively affecting your destinations or analytics through .
Of course, you can still extend the Converge Spec with your own events, properties, etc.

Auto-tracking

These events, event properties, profile properties and aliases will be auto-tracked by the Converge Pixel.

$page_load

When a user views a page.
This event should be tracked on the client.
You do not need to manually implement any of the below properties, they will be automatically tracked for all client-side events.
string
IP address of the user.
string
URL of the pageview.
string
URL referrer of the pageview.
string
Browser timezone.
string
Viewport size of the pageview.
string
The sales channel where the event occurred. For client-side events tracked through the Converge Pixel, this will always be “web” by default. More on supported sales channels can be found here.
string
IP address of the user.
Converge cookie ID.
string
User Agent of the last browser session of the user.
Alias based on the Converge cookie ID.

Ecommerce events

These events and properties should be passed for Ecommerce brands. All of these events will contain additional prepopulated properties through auto-tracking.

Viewed Product

When a user views a product detail page.
This event should be tracked on the client.
string
required
Product ID of the item that is being viewed.
string
Variant ID of the product variant that is being viewed
string
SKU of the product and variant that is being viewed
string
required
Product Name of the item that is being viewed
string
Variant name of the product variant that is being viewed
float
required
Unit price of the item that is being viewed
string
required
Currency of the product that is being viewed, as per ISO 4217
string
Name of the vendor of the product that is being viewed.
string
URL to the product page of the item that is being viewed.
string
URL of a product image of the item that is being viewed.

Viewed Collection

When a user views a collection detail page that includes multiple products.
This event should be tracked on the client.
string
required
Collection ID of the collection that is being viewed.
string
required
Name of the collection that is being viewed.
string
Description of the collection that is being viewed.
list of Item

Added To Cart

When a user adds a product to cart.
This event should be tracked on the client.
string
required
Product ID of the item that is being added to cart.
string
Variant ID of the product variant that is being added to cart.
string
SKU of the product and variant that is being added to cart.
string
required
Product Name of the item that is being added to cart.
string
Variant name of the product variant that is being added to cart.
float
required
Unit price of the item that is being added to cart.
string
required
Currency of the product that is being viewed, as per ISO 4217
int
required
Amount of times the item is being added to cart.
string
Name of the vendor of the product that is being added to cart.
string
URL to the product page of the item that is being added to cart.
string
URL of a product image of the product that is being added to cart.

Removed From Cart

When a user removes a product from cart.
This event should be tracked on the client.
string
required
Product ID of the item that is being removed from cart.
string
Variant ID of the product variant that is being removed from cart.
string
SKU of the product and variant that is being removed from cart.
string
required
Product Name of the item that is being removed from cart.
string
Variant name of the product variant that is being removed from cart.
float
required
Unit price of the item that is being removed from cart.
string
required
Currency of the product that is being viewed, as per ISO 4217
int
required
Amount of times the item is being removed from cart.
string
Name of the vendor of the product that is being removed from cart.
string
URL to the product page of the item that is being removed from cart.
string
URL of a product image of the product that is being removed from cart.

Started Checkout

When a user starts the checkout process.
This event typically is used for stitching website sessions to server-side orders, make sure to add appropriate aliases
This event should be tracked on the client.
float
required
Total value of the cart at checkout with tax and shipping.
float
required
Total tax of the cart at checkout.
float
required
Total shipping cost of the cart at checkout.
float
Total discount of the cart at checkout.
string | list of string
The coupon or list of coupons used at checkout
string
required
Currency of the cart that is being checked out, as per ISO 4217
list of CheckoutItem

Added Payment Info

When a user adds their payment info.
This event typically is used for stitching website sessions to server-side orders, make sure to add appropriate aliases
This event should be tracked on the client.
float
required
Total value of the cart at checkout with tax and shipping.
float
required
Total tax of the cart at checkout.
float
required
Total shipping cost of the cart at checkout.
float
Total discount of the cart at checkout.
string | list of string
The coupon or list of coupons used at checkout
string
required
Currency of the cart that is being checked out, as per ISO 4217
list of CheckoutItem
string
required
Email Address of the user.
string
Phone Number of the user including the + sign and country code. For example: "+1 (917) 123-4567" or "+3295123456".
string
City of the user’s address.
string
Country code of the user’s address according to ISO 3166.
string
State of the user’s address.
string
Zip code of the user’s address.

Placed Order

When a user places an order.
Conversion event: you should adhere to the Where To Track, Deduplication and Session Stitching guidelines.
This event should be tracked on both the client and the server.
You should pass a unique eventID so client-side and server-side copies of the same order can be deduplicated.
You should make sure that the conversion can be stitched to the corresponding website session by including the right set of aliases on this event and corresponding web events.Common aliases are:
  • Email: urn:email:john.smith@apple.com
  • Checkout Token: urn:checkout_token:xyz_123
  • Customer ID: urn:customer_id:123456
Which alias you use depends on your exact setup and which identifiers are available both on the browser and the server in a user journey.Learn more about session stitching and aliases here.
string
required
Order ID.
float
required
Total value of the order with tax and shipping.
float
required
Total tax of the order.
float
required
Total shipping cost of the order.
float
Total discount on the order.
string | list of string
The coupon or list of coupons used in the order.
string
required
Currency of the order, as per ISO 4217
list of CheckoutItem
boolean
required
Whether this order is the customer’s first completed purchase. If omitted, Converge falls back to its own order history. See New customer status for more details, including override behavior and common pitfalls.
string
The sales channel of the event. If no sales channel type is provided then Converge fallback to “web”. More on supported sales channels values can be found here. The sales channel type provided entirely depends on the context of the event, integration, and where the event originates from. Client-side Placed Order events should always be “web”.
string
The URL of the page where the event occurred. This will be automatically tracked for all client-side events.
Some fields are required for both the Event Properties and the Profile Properties. The reason is that Event Properties are static and Profile Properties are dynamic. A customer might move address between two orders for example.
string
required
Email Address of the user.
string
Phone Number of the user including the + sign and country code. For example: "+1 (917) 123-4567" or "+3295123456".
string
City of the user’s address.
string
Country code of the user’s address according to ISO 3166.
string
State of the user’s address.
string
Zip code of the user’s address.
If you track conversions both server-side and client-side, you should make sure you use the "forward" method for the client-side event. See the client-side code example.Make sure you include the same eventID on the client-side and server-side event.
Note that client-side calls use camelCase (e.g. eventName) and server-side calls use snake_case (e.g. event_name).

Viewed Cart

When a user views their cart.
This is an optional event
This event should be tracked on the client.
float
required
Total value of the cart with tax and shipping.
float
required
Total tax of the cart.
float
required
Total shipping cost of the cart.
float
Total discount of the cart.
string | list of string
The coupon or list of coupons used in the cart.
string
required
Currency of the cart that is being checked out, as per ISO 4217
list of CartItem

Subscription lifecycle events

These events and properties should be passed by companies who operate on subscriptions.

Started Subscription

When a user starts a subscription.
Conversion event: you should adhere to the Where To Track, Deduplication and Session Stitching guidelines.
This event should be tracked on both the client and the server.
You should pass a unique eventID so client-side and server-side copies of the same order can be deduplicated.
You should make sure that the conversion can be stitched to the corresponding website session by including the right set of aliases on this event and corresponding web events.Common aliases are:
  • Email: urn:email:john.smith@apple.com
  • Checkout Token: urn:checkout_token:xyz_123
  • Customer ID: urn:customer_id:123456
Which alias you use depends on your exact setup and which identifiers are available both on the browser and the server in a user journey.Learn more about session stitching and aliases here.
float
required
Total value of the subscription with tax and shipping.
float
required
Total tax of the subscription.
float
Total shipping cost of the subscription.
float
Total discount on the subscription.
string | list of string
The coupon or list of coupons used in the subscription.
string
required
Currency of the subscription, as per ISO 4217
list of CheckoutItem
string
The sales channel where the event occurred. For client-side events tracked through the Converge Pixel, this will always be “web” by default. More on supported sales channels can be found here.
Some fields are required for both the Event Properties and the Profile Properties. The reason is that Event Properties are static and Profile Properties are dynamic. A customer might move address between two orders for example.
string
required
Email Address of the subscriber.
string
Phone Number of the subscriber including the + sign and country code. For example: "+1 (917) 123-4567" or "+3295123456".
string
City of the subscriber’s address.
string
Country code of the subscriber’s address according to ISO 3166.
string
State of the subscriber’s address.
string
Zip code of the subscriber’s address.
If you track conversions both server-side and client-side, you should make sure you use the "forward" method for the client-side event. See the client-side code example.

Cancelled Subscription

When a user cancels a subscription.
This event should be tracked on the server.
float
required
Total value of the subscription with tax and shipping.
float
required
Total tax of the subscription.
float
Total shipping cost of the subscription.
float
Total discount on the subscription.
string | list of string
The coupon or list of coupons used in the subscription.
string
required
Currency of the subscription, as per ISO 4217
list of CheckoutItem
string
The sales channel where the event occurred. Due to this event typically being server side, the sales channel type should be “offline”. More on supported sales channels can be found here.
Some fields are required for both the Event Properties and the Profile Properties. The reason is that Event Properties are static and Profile Properties are dynamic. A customer might move address between two orders for example.
string
required
Email Address of the subscriber.
string
Phone Number of the subscriber including the + sign and country code. For example: "+1 (917) 123-4567" or "+3295123456".
string
City of the subscriber’s address.
string
Country code of the subscriber’s address according to ISO 3166.
string
State of the subscriber’s address.
string
Zip code of the subscriber’s address.

Placed Recurring Subscription Order

When a user places a recurring subscription order.
This event should be tracked on the server.
float
required
Total value of the subscription with tax and shipping.
float
required
Total tax of the subscription.
float
Total shipping cost of the subscription.
float
Total discount on the subscription.
string | list of string
The coupon or list of coupons used in the subscription.
string
required
Currency of the subscription, as per ISO 4217
list of CheckoutItem
string
The sales channel where the event occurred. Due to this event typically being server side, the sales channel type should be “subscription_contract”. More on supported sales channels can be found here.
Some fields are required for both the Event Properties and the Profile Properties. The reason is that Event Properties are static and Profile Properties are dynamic. A customer might move address between two orders for example.
string
required
Email Address of the subscriber.
string
Phone Number of the subscriber including the + sign and country code. For example: "+1 (917) 123-4567" or "+3295123456".
string
City of the subscriber’s address.
string
Country code of the subscriber’s address according to ISO 3166.
string
State of the subscriber’s address.
string
Zip code of the subscriber’s address.

Useful additional events

Most ad platforms rely on the email parameter being available on customer events. For that reason, you will want to capture events that pick up this parameter.

Logged In

When a user logs in.
This event typically is used for stitching website sessions to server-side orders, make sure to add appropriate aliases
This event should be tracked on the client.
This event does not require any event properties.
string
required
Email Address of the user.
string
Phone Number of the user including the + sign and country code. For example: "+1 (917) 123-4567" or "+3295123456".
string
City of the user’s address.
string
Country code of the user’s address according to ISO 3166.
string
State of the user’s address.
string
Zip code of the user’s address.

Searched

When a user performs a search on your website.
This event should be tracked on the client.
string
required
The search query entered by the user.

Signed Up

When a user signs up.
This event typically is used for stitching website sessions to server-side orders, make sure to add appropriate aliases
This event should be tracked on the client.
This event does not require any event properties.
string
required
Email Address of the user.
string
Phone Number of the user including the + sign and country code. For example: "+1 (917) 123-4567" or "+3295123456".
string
City of the user’s address.
string
Country code of the user’s address according to ISO 3166.
string
State of the user’s address.
string
Zip code of the user’s address.