Introduction
For each event, there is some properties required.
In any cases, the property event_name
is required.
In this section you can find the list of all our standard events, with the list of standard properties required or not.
If the event type or the properties you're looking for aren't mentioned in this section, you still can send custom events and custom properties. But the property event_name
remains required.
Here are the most used events:
add_payment_info
This event signifies a user has submitted their payment information
Parameters (required and recommended)
Name Type Required Example Value Description
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact ( 'trigger' , 'add_payment_info' , {
payment_method : 'card' ,
revenue : 16.00 ,
currency : 'EUR' ,
user : {
id : '12356' ,
email : 'toto@domain.fr' ,
consent_categories : [ 1 , 3 ]
}
});
Copy val event = TCAddPaymentInfoEvent ( "card" )
event.revenue = 16.00f
event.currency = "EUR"
serverside. execute (event)
Copy TCAddPaymentInfoEvent event = new TCAddPaymentInfoEvent( "card" ) ;
event . revenue = 16.6f ;
event . currency = "EUR" ;
serverside . execute (event);
Copy TCAddPaymentInfoEvent *event = [[TCAddPaymentInfoEvent alloc] initWithId: @"ID";
event.revenue = [[NSDecimalNumber alloc] initWithFloat: 16.00f];
event.currency = @"EUR";
[TCS execute: event];
Copy let event = TCAddPaymentInfoEvent ( payementMethod : "card" )
event ? .revenue = 16.00
event ? .currency = "EUR"
serverside ? . execute ( event )
Copy var event = TCAddPaymentInfoEvent ();
event.paymentMethod = "card" ;
event.revenue = 16.00 ;
event.currency = "EUR" ;
serverside. execute (event);
Copy {
"event_name" : "add_payment_info" ,
"payment_method" : "card" ,
"revenue" : 16.00 ,
"value" : 22.53 ,
"currency" : "EUR" ,
"user" : {
"id" : "12345" ,
"email" : "toto@domain.fr" ,
"consent_categories" : [
1 ,
3
]
}
}
add_shipping_info
This event signifies a user has submitted their shipping information.
Parameters
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact ( 'trigger' , 'add_shipping_info' , {
value : 8.00 ,
currency : 'EUR' ,
coupon : 'promo' ,
shipping_tier : 'ups' ,
items : [{
id : 'SKU_12345' ,
quantity : 1 ,
variant : 'red' ,
coupon : 'CHRISTMAS' ,
discount : 1.99 ,
product : {
id : '12345' ,
name : 'Trex tshirt' ,
category_1 : 'clothes' ,
category_2 : 't-shirts' ,
category_3 : 'boy' ,
brand : 'Lacoste' ,
price : 9.99
}
}] ,
user : {
id : '12356' ,
email : 'toto@domain.fr' ,
consent_categories : [ 1 , 3 ]
}
});
Copy val item1 = TCItem ( "my_product1_id" , TCProduct ( "my_product_1_id" , "my_product_1_name" , 12.5f ), 1 )
val item2 = TCItem ( "my_product2_id" , TCProduct ( "my_product_2_id" , "my_product_2_name" , 110f ), 1 )
val items = listOf < TCItem >(item1, item2)
val event = TCAddShippingInfoEvent (items, 112.5f , "EUR" )
event.coupon = "promo"
event.shippingTier = "ups"
serverside. execute (event)
Copy TCItem item1 = new TCItem( "my_product1_id" , new TCProduct( "my_product_1_id" , "my_product_1_name" , 12.5f ) , 1 ) ;
TCItem item2 = new TCItem( "my_product2_id" , new TCProduct( "my_product_2_id" , "my_product_2_name" , 25.6f ) , 1 ) ;
ArrayList < TCItem > items = new ArrayList <>( Arrays . asList (item1 , item2));
TCAddShippingInfoEvent event = new TCAddShippingInfoEvent(items , 112.5f , "EUR" ) ;
event . coupon = "promo" ;
event . shippingTier = "ups" ;
serverside . execute (event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithString: @"1.5"]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCAddShippingInfoEvent *event = [[TCAddShippingInfoEvent alloc] initWithItems: items
withValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"];
event.coupon = @"promo";
event.shippingTier = @"ups";
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCAddShippingInfoEvent ( items : [item_1, item_2], withValue : 1 , withCurrency : "EUR" )
event ? . addAdditionalProperty ( "additionalKey" , withBoolValue : true )
event ? .coupon = "promo"
event ? .shippingTier = "ups"
serverside ? . execute ( event )
Copy TCProduct tc_product = TCProduct ();
tc_product. ID = "product_1_ID" ;
tc_product.name = "product_1_name" ;
tc_product.price = 150 ;
tc_product. addAdditionalProperty ( "key_additional_product" , "val_additional_product" );
TCItem tc_item_1 = TCItem ();
tc_item_1. ID = "item_1_id" ;
tc_item_1.product = tc_product;
tc_item_1.quantity = 1 ;
tc_item_1. addAdditionalProperty ( "key_additional_item" , "val_additional_product" );
TCProduct tc_product_2 = TCProduct ();
tc_product_2. ID = "product_2_ID" ;
tc_product_2.name = "product_2_name" ;
tc_product_2.price = 150 ;
tc_product_2. addAdditionalProperty ( "key_additional_product" , "val_additional_product" );
TCItem tc_item_2 = TCItem ();
tc_item_2. ID = "item_2_id" ;
tc_item_2.quantity = 2 ;
tc_item_2.product = tc_product;
tc_item_2. addAdditionalProperty ( "key_additional_item" , "val_additional_product" );
var event = TCAddShippingInfoEvent ();
event.coupon = "promo" ;
event.shippingTier = "ups" ;
event.currency = "EUR" ;
event.items = [tc_item_1, tc_item_2];
serverside. execute (event);
Copy {
"event_name" : "add_shipping_info" ,
"shipping_tier" : "Ground" ,
"revenue" : 16.00 ,
"value" : 22.53 ,
"currency" : "EUR" ,
"items" : [
{
"id" : "SKU_12345" ,
"quantity" : 1 ,
"price" : 9.99 ,
"variant" : "red" ,
"coupon" : "CHRISTMAS" ,
"discount" : 1.99 ,
"product" : {
"id" : "12345" ,
"name" : "Trex tshirt" ,
"category_1" : "clothes" ,
"category_2" : "t-shirts" ,
"category_3" : "boy" ,
"brand" : "Lacoste" ,
"colors" : [
"red"
] ,
"price" : 9.99
}
} ,
{
"id" : "SKU_12346" ,
"quantity" : 1 ,
"price" : 9.99 ,
"variant" : "green" ,
"coupon" : "CHRISTMAS" ,
"discount" : 1.99 ,
"product" : {
"id" : "12346" ,
"name" : "Heart tshirt" ,
"category_1" : "clothes" ,
"category_2" : "t-shirts" ,
"category_3" : "girl" ,
"brand" : "Jenyfion" ,
"colors" : [
"blue" ,
"white"
] ,
"price" : 9.99
}
}
] ,
"user" : {
"id" : "12345" ,
"email" : "toto@domain.fr" ,
"consent_categories" : [
1 ,
3
]
}
}
add_to_cart
This event signifies that an item was added to a cart for purchase.
Parameters (required and recommended)
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact ( 'trigger' , 'add_to_cart' , {
value : 8.00 ,
currency : 'EUR' ,
items : [{
id : 'SKU_12345' ,
quantity : 1 ,
variant : 'red' ,
coupon : 'CHRISTMAS' ,
discount : 1.99 ,
product : {
id : '12345' ,
name : 'Trex tshirt' ,
category_1 : 'clothes' ,
category_2 : 't-shirts' ,
category_3 : 'boy' ,
brand : 'Lacoste' ,
price : 9.99
}
}] ,
user : {
id : '12356' ,
email : 'toto@domain.fr' ,
consent_categories : [ 1 , 3 ]
}
});
Copy val item1 = TCItem ( "my_product1_id" , TCProduct ( "my_product_1_id" , "my_product_1_name" , 12.5f ), 1 )
val item2 = TCItem ( "my_product2_id" , TCProduct ( "my_product_2_id" , "my_product_2_name" , 110f ), 1 )
val items = listOf < TCItem >(item1, item2)
val event = TCAddToCartEvent ( 22.53f , "EUR" , items)
serverside. execute (event)
Copy TCItem item1 = new TCItem( "my_product1_id" , new TCProduct( "my_product_1_id" , "my_product_1_name" , 12.5f ) , 1 ) ;
TCItem item2 = new TCItem( "my_product2_id" , new TCProduct( "my_product_2_id" , "my_product_2_name" , 25.6f ) , 1 ) ;
ArrayList < TCItem > items = new ArrayList <>( Arrays . asList (item1 , item2));
TCAddToCartEvent event = new TCAddToCartEvent( 22.53f , "EUR" , items) ;
serverside . execute (event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCAddToCartEvent *event = [[TCAddToCartEvent alloc] initWithValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"
withItems: items];
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCAddToCartEvent ( value : 1 , withCurrency : "EUR" , withItems : [item_1, item_2] )
event ? . addAdditionalProperty ( "additionalKey" , withBoolValue : true )
event ? .currency = "EUR"
serverside ? . execute ( event )
Copy TCProduct tc_product = TCProduct ();
tc_product. ID = "product_1_ID" ;
tc_product.name = "product_1_name" ;
tc_product.price = 12.5 ;
tc_product. addAdditionalProperty ( "key_additional_product" , "val_additional_product" );
TCItem tc_item_1 = TCItem ();
tc_item_1. ID = "item_1_id" ;
tc_item_1.product = tc_product;
tc_item_1.quantity = 1 ;
tc_item_1. addAdditionalProperty ( "key_additional_item" , "val_additional_product" );
var event = TCAddToCartEvent ();
event.currency = "EUR" ;
event.items = [tc_item_1];
event.value = 12.5 ;
serverside. execute (event);
Copy {
"event_name" : "add_to_cart" ,
"value" : 8.00 ,
"currency" : "EUR" ,
"items" : [
{
"id" : "SKU_12345" ,
"quantity" : 1 ,
"price" : 9.99 ,
"variant" : "red" ,
"coupon" : "CHRISTMAS" ,
"discount" : 1.99 ,
"product" : {
"id" : "12345" ,
"name" : "Trex tshirt" ,
"category_1" : "clothes" ,
"category_2" : "t-shirts" ,
"category_3" : "boy" ,
"brand" : "Lacoste" ,
"colors" : [
"red"
]
}
}
]
}
add_to_wishlist
The event signifies that an item was added to a wishlist. Use this event to identify popular gift items in your app.
Parameters (required and recommended)
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact ( 'trigger' , 'add_to_wishlist' , {
value : 8.00 ,
currency : 'EUR' ,
items : [{
id : 'SKU_12345' ,
quantity : 1 ,
variant : 'red' ,
coupon : 'CHRISTMAS' ,
discount : 1.99 ,
product : {
id : '12345' ,
name : 'Trex tshirt' ,
category_1 : 'clothes' ,
category_2 : 't-shirts' ,
category_3 : 'boy' ,
brand : 'Lacoste' ,
price : 9.99
}
}] ,
user : {
id : '12356' ,
email : 'toto@domain.fr' ,
consent_categories : [ 1 , 3 ]
}
});
Copy val item1 = TCItem ( "my_product1_id" , TCProduct ( "my_product_1_id" , "my_product_1_name" , 12.5f ), 1 )
val item2 = TCItem ( "my_product2_id" , TCProduct ( "my_product_2_id" , "my_product_2_name" , 110f ), 1 )
val items = listOf < TCItem >(item1, item2)
val event = TCAddToWishlistEvent (items)
event. value = 20.00f
event.currency = "EUR"
serverside. execute (event)
Copy TCItem item1 = new TCItem( "my_product1_id" , new TCProduct( "my_product_1_id" , "my_product_1_name" , 12.5f ) , 1 ) ;
TCItem item2 = new TCItem( "my_product2_id" , new TCProduct( "my_product_2_id" , "my_product_2_name" , 25.6f ) , 1 ) ;
ArrayList < TCItem > items = new ArrayList <>( Arrays . asList (item1 , item2));
TCAddToWishlistEvent event = new TCAddToWishlistEvent(items) ;
event . value = 20.00f ;
event . currency = "EUR" ;
serverside . execute (event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCAddToWishlistEvent *event = [[TCAddToWishlistEvent alloc] initWithValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"
withItems: items];
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCAddToWishlistEvent ( items : [item_1, item_2] )
event ? .currency = "EUR"
serverside ? . execute ( event )
Copy TCProduct tc_product = TCProduct ();
tc_product. ID = "product_1_ID" ;
tc_product.name = "product_1_name" ;
tc_product.price = 150 ;
tc_product. addAdditionalProperty ( "key_additional_product" , "val_additional_product" );
TCItem tc_item_1 = TCItem ();
tc_item_1. ID = "item_1_id" ;
tc_item_1.product = tc_product;
tc_item_1.quantity = 1 ;
tc_item_1. addAdditionalProperty ( "key_additional_item" , "val_additional_product" );
var event = TCAddToWishlistEvent ();
event. addAdditionalPropertyWithIntValue ( "key_additional_1" , 12 );
event. addAdditionalPropertyWithListValue ( "key_additional_2" , [ 12 , 12 , 12 ]);
event.currency = "EUR" ;
event.items = [tc_item_1];
event.value = 12.5 ;
serverside. execute (event);
Copy {
"event_name" : "add_to_wishlist" ,
"value" : 8.00 ,
"currency" : "EUR" ,
"items" : [
{
"id" : "SKU_12345" ,
"quantity" : 1 ,
"price" : 9.99 ,
"variant" : "red" ,
"coupon" : "CHRISTMAS" ,
"discount" : 1.99 ,
"product" : {
"id" : "12345" ,
"name" : "Trex tshirt" ,
"category_1" : "clothes" ,
"category_2" : "t-shirts" ,
"category_3" : "boy" ,
"brand" : "Lacoste" ,
"colors" : [
"red"
]
}
}
]
}
begin_checkout
This event signifies that a user has begun a checkout.
Parameters (required and recommended)
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact ( 'trigger' , 'begin_checkout' , {
id : 'O_12345' ,
coupon : 'CHRISTMAS' ,
revenue : 16.00 ,
value : 20.33 ,
currency : 'EUR' ,
user : {
id : '12356' ,
email : 'toto@domain.fr'
} ,
items : [{
id : 'SKU_12345' ,
quantity : 1 ,
price : 9.99 ,
variant : 'red' ,
coupon : 'CHRISTMAS' ,
discount : 1.99 ,
product : {
id : '12345' ,
name : 'Trex tshirt' ,
category_1 : 'clothes' ,
category_2 : 't-shirts' ,
category_3 : 'boy' ,
brand : 'Lacoste' ,
colors : [ 'red' ] ,
price : 9.99
}
} , {
id : 'SKU_12346' ,
quantity : 1 ,
price : 9.99 ,
variant : 'green' ,
coupon : 'CHRISTMAS' ,
discount : 1.99 ,
product : {
id : '12346' ,
name : 'Heart tshirt' ,
category_1 : 'clothes' ,
category_2 : 't-shirts' ,
category_3 : 'girl' ,
brand : 'Jenyfion' ,
colors : [ 'blue' , 'white' ] ,
price : 9.99
}
}]
})
Copy val item1 = TCItem ( "my_product1_id" , TCProduct ( "my_product_1_id" , "my_product_1_name" , 12.5f ), 1 )
val item2 = TCItem ( "my_product2_id" , TCProduct ( "my_product_2_id" , "my_product_2_name" , 110f ), 1 )
val items = listOf < TCItem >(item1, item2)
val event = TCBeginCheckoutEvent ( 1.0f , 2.0f , "EUR" , items)
event.coupon = "CHRISTMAS"
serverside. execute (event)
Copy TCItem item1 = new TCItem( "my_product1_id" , new TCProduct( "my_product_1_id" , "my_product_1_name" , 12.5f ) , 1 ) ;
TCItem item2 = new TCItem( "my_product2_id" , new TCProduct( "my_product_2_id" , "my_product_2_name" , 25.6f ) , 1 ) ;
ArrayList < TCItem > items = new ArrayList <>( Arrays . asList (item1 , item2));
TCBeginCheckoutEvent event = new TCBeginCheckoutEvent( 1.0f , 2.0f , "EUR" , items) ;
event . coupon = "CHRISTMAS" ;
serverside . execute (event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCBeginCheckoutEvent *event = [[TCBeginCheckoutEvent alloc] initWithRevenue: [[NSDecimalNumber alloc] initWithString: @"1.1"]
withValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"
withItems: items];
event.coupon = @"CHRISTMAS";
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCBeginCheckoutEvent ( revenue : 1 , withValue : 3 , withCurrency : "EUR" , withItems : [item_1, item_2] )
serverside ? . execute ( event )
Copy TCProduct tc_product = TCProduct ();
tc_product. ID = "product_1_ID" ;
tc_product.name = "product_1_name" ;
tc_product.price = 10 ;
tc_product. addAdditionalProperty ( "key_additional_product" , "val_additional_product" );
TCItem tc_item_1 = TCItem ();
tc_item_1. ID = "item_1_id" ;
tc_item_1.product = tc_product;
tc_item_1.quantity = 1 ;
tc_item_1. addAdditionalProperty ( "key_additional_item" , "val_additional_product" );
TCProduct tc_product_2 = TCProduct ();
tc_product_2. ID = "product_2_ID" ;
tc_product_2.name = "product_2_name" ;
tc_product_2.price = 5.10 ;
tc_product_2. addAdditionalProperty ( "key_additional_product" , "val_additional_product" );
TCItem tc_item_2 = TCItem ();
tc_item_2. ID = "item_2_id" ;
tc_item_2.quantity = 2 ;
tc_item_2.product = tc_product;
tc_item_2. addAdditionalProperty ( "key_additional_item" , "val_additional_product" );
var event = TCBeginCheckoutEvent ();
event.coupon = "CHRISTMAS" ;
event.items = [tc_item_1, tc_item_2];
serverside. execute (event);
Copy {
"event_name" : "begin_checkout" ,
"id" : "O_12345" ,
"coupon" : "CHRISTMAS" ,
"revenue" : 16.00 ,
"value" : 22.53 ,
"currency" : "EUR" ,
"items" : [
{
"id" : "SKU_12345" ,
"quantity" : 1 ,
"price" : 9.99 ,
"variant" : "red" ,
"coupon" : "CHRISTMAS" ,
"discount" : 1.99 ,
"product" : {
"id" : "12345" ,
"name" : "Trex tshirt" ,
"category_1" : "clothes" ,
"category_2" : "t-shirts" ,
"category_3" : "boy" ,
"brand" : "Lacoste" ,
"colors" : [
"red"
] ,
"price" : 9.99
}
} ,
{
"id" : "SKU_12346" ,
"quantity" : 1 ,
"price" : 9.99 ,
"variant" : "green" ,
"coupon" : "CHRISTMAS" ,
"discount" : 1.99 ,
"product" : {
"id" : "12346" ,
"name" : "Heart tshirt" ,
"category_1" : "clothes" ,
"category_2" : "t-shirts" ,
"category_3" : "girl" ,
"brand" : "Jenyfion" ,
"colors" : [
"blue" ,
"white"
] ,
"price" : 9.99
}
}
] ,
"user" : {
"id" : "12345" ,
"email" : "toto@domain.fr" ,
"consent_categories" : [
1 ,
3
]
}
}
generate_lead
Log this event when a lead has been generated to understand the efficacy of your re-engagement campaigns.
Parameters (required and recommended)
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact ( 'trigger' , 'generate_lead' , {
currency : 'EUR' ,
value : 9.99 ,
id : 'L_12345' ,
user : {
id : '12356' ,
email : 'toto@domain.fr' ,
consent_categories : [ 1 , 3 ]
}
});
Copy val event = TCGenerateLeadEvent ( 9.99f , "EUR" )
event.ID = "L_12345"
serverside. execute (event)
Copy TCGenerateLeadEvent event = new TCGenerateLeadEvent( 9.99f , "EUR" ) ;
event . ID = "L_12345" ;
serverside . execute (event); TCLoginEvent event = new TCLoginEvent() ;
event . method = "LinkedIn" ;
serverside . execute (event);
Copy TCGenerateLeadEvent *event = [[TCGenerateLeadEvent alloc] initWithValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"];
event.ID = @"2b758628-f81b-454f-8e3d-867e8bc98523";
[TCS execute: event];
Copy let event = TCGenerateLeadEvent ( value : 1 , withCurrency : "EUR" )
event ? .ID = "2b758628-f81b-454f-8e3d-867e8bc98523" ;
serverside. execute ( event )
Copy var event = TCGenerateLeadEvent ();
event.currency = "EUR" ;
event.value = 9.99 ;
event. ID = "2b758628-f81b-454f-8e3d-867e8bc98523" ;
serverside. execute (event);
Copy {
"event_name" : "generate_lead" ,
"method" : "LinkedIn"
}
login
Send this event to signify that a user has logged in.
Parameters
Example
Javascript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact ( 'trigger' , 'login' , {
method : 'LinkedIn' ,
user : {
id : '12356' ,
email : 'toto@domain.fr' ,
consent_categories : [ 1 , 3 ]
}
});
Copy val event = TCLoginEvent ()
event.method = "LinkedIn"
serverside. execute (event)
Copy TCLoginEvent event = new TCLoginEvent() ;
event . method = "LinkedIn" ;
serverside . execute (event);
Copy TCLoginEvent *event = [[TCLoginEvent alloc] init];
event.method = @"LinkedIn";
[TCS execute: event];
Copy let event = TCLoginEvent ()
event.method = "linkedin"
serverside ? . execute ( event )
Copy var event = TCLoginEvent ();
event.method = "LinkedIn" ;
serverside. execute (event);
Copy {
"event_name" : "login" ,
"method" : "LinkedIn"
}
page_view
The page_view
call lets you record whenever a user sees a page of your website, along with any optional properties about the page.
Parameters (required and recommended)
Automatically added parameters by cact API for web sources
Example
Javascript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','page_view', {
page_type: 'product_list',
page_name: 'Best sellers',
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
});
Copy val event = TCPageViewEvent("product_list")
event.pageName = "Best sellers"
serverside.execute(event)
Copy TCPageViewEvent event = new TCPageViewEvent("product_list")
event.pageName = "Best sellers";
serverside.execute(event);
Copy TCPageViewEvent *event = [[TCPageViewEvent alloc] init];
event.pageType = @"product_list";
event.pageName = @"Best sellers";
[TCS execute: event];
//or you could also use it in a constructor, as follow:
TCPageViewEvent *event = [[TCPageViewEvent alloc] initWithType: @"type"];
Copy let event = TCPageViewEvent(type: "product list")
event?.pageName = "Best sellers"
serverside?.execute(event)
Copy var event = TCPageViewEvent();
event.pageName = "event_page_name";
event.pageType = "event_page_type";
serverside.execute(event);
Copy {
"event_name": "page_view",
"page_type": "product_list",
"page_name": "Best sellers"
}
purchase
Fire this event when one or more items are purchased by a user.
Parameters (required and recommended)
Automatically added by cact API
Example
Javascript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','purchase', {
id: 'O_12345',
coupon: 'CHRISTMAS',
revenue: 16.00,
value: 20.33,
shipping_amount: 3.33,
tax_amount: 3.20,
currency: 'EUR',
user: {
id: '12356',
email:'toto@domain.fr'
},
items: [{
id: 'SKU_12345',
quantity: 1,
price: 9.99,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
colors: ['red'],
price: 9.99
}
}, {
id: 'SKU_12346',
quantity: 1,
price: 9.99,
variant: 'green',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12346',
name: 'Heart tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'girl',
brand: 'Jenyfion',
colors: ['blue','white'],
price: 9.99
}
}]
})
Copy val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCPurchaseEvent("O_12345", 16.0f, 22.53f, "EUR", "purchase", "CreditCard", "waiting", items)
event.shippingAmount = 3.33f
event.taxAmount = 3.20f
serverside.execute(event)
Copy TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCPurchaseEvent event = new TCPurchaseEvent("O_12345", 16.0f, 22.53f, "EUR", "purchase", "CreditCard", "waiting", items);
event.shippingAmount = 3.33f;
event.taxAmount = 3.20f;
serverside.execute(event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithString: @"1.5"]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCPurchaseEvent *event = [[TCPurchaseEvent alloc] initWithId: @"ID"
withRevenue: [[NSDecimalNumber alloc] initWithString: @"1.1"]
withValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"
withType: @"purchase"
withPaymentMethod: @"CreditCard"
withStatus: @"waiting"
withItems: items];
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCPurchaseEvent(id: "purchaseID", withRevenue: 16.21, withValue: 23.10, withCurrency: "EUR", withType: "purchase", withPaymentMethod: "CreditCard", withStatus: "waiting", withItems: [item_1, item_2])
serverside?.execute(event)
Copy TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 10;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
TCProduct tc_product_2 = TCProduct();
tc_product_2.ID = "product_2_ID";
tc_product_2.name = "product_2_name";
tc_product_2.price = 5.10;
tc_product_2.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_2 = TCItem();
tc_item_2.ID = "item_2_id";
tc_item_2.quantity = 2;
tc_item_2.product = tc_product;
tc_item_2.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCPurchaseEvent();
event.shippingAmount = 3.33;
event.taxAmount = 3.20;
event.revenue = 2.5;
event.value = 12.2;
event.currency = "EUR";
event.type = "purchase";
event.paymentMethod = "CreditCard";
event.status = "waiting";
event.items = [tc_item_1, tc_item_2];
serverside.execute(event);
Copy {
"event_name": "purchase",
"id": "O_12345",
"coupon": "CHRISTMAS",
"revenue": 16.00,
"value": 22.53,
"shipping_amount": 3.33,
"tax_amount": 3.20,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
],
"price": 9.99
}
},
{
"id": "SKU_12346",
"quantity": 1,
"price": 9.99,
"variant": "green",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12346",
"name": "Heart tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "girl",
"brand": "Jenyfion",
"colors": [
"blue",
"white"
],
"price": 9.99
}
}
],
"user": {
"id": "12345",
"email": "toto@domain.fr",
"consent_categories": [
1,
3
]
}
}
refund
Fire this event when a purchase was refund
Parameters (required and recommended)
Automatically added by cact API
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','refund', {
id: 'O_12345',
coupon: 'CHRISTMAS',
revenue: 16.00,
value: 20.33,
shipping_amount: 3.33,
tax_amount: 3.20,
currency: 'EUR',
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
})
Copy val event = TCRefundEvent("O_12345", 16.00f, 23.53f, "EUR", "offline")
event.coupon = "CHRISTMAS"
event.shippingAmount = 4.33f
event.taxAmount = 3.20f
serverside.execute(event)
Copy TCRefundEvent event = new TCRefundEvent("O_12345", 16.00f, 23.53f, "EUR", "offline");
event.coupon = "CHRISTMAS";
event.shippingAmount = 4.33f;
event.taxAmount = 3.20f;
serverside.execute(event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCRefundEvent *event = [[TCRefundEvent alloc] initWithID: @"2b758628-f81b-454f-8e3d-867e8bc98523"
withRevenue: [[NSDecimalNumber alloc] initWithString: @"20.2"]
withValue: [[NSDecimalNumber alloc] initWithString: @"26.2"]
withCurrency: @"EUR"
withType: @"offline"
withItems: items];
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCRefundEvent(id: "purchaseID", withRevenue: 16.32, withValue: 23.1, withCurrency: "EUR", withType: "refund", withItems: [item_1, item_2])
event?.shippingAmount = 11
serverside?.execute(event)
Copy var event = TCRefundEvent();
event.currency = "EUR";
event.value = 26.20;
event.revenue = 20.20;
event.coupon = "CHRISTMAS";
event.shippingAmount = 4.33;
event.taxAmount = 3.20;
event.type = "offline";
serverside.execute(event);
Copy {
"event_name": "refund",
"value": 8.00,
"currency": "EUR",
"revenue": 16.00,
"shipping_amount": 3.33,
"tax_amount": 3.20
}
remove_from_cart
This event signifies that an item was removed from a cart.
Parameters (required and recommended)
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','remove_from_cart', {
value: 8.00,
currency: 'EUR',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
});
Copy val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCRemoveFromCartEvent(items)
serverside.execute(event)
Copy TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCRemoveFromCartEvent event = new TCRemoveFromCartEvent(items);
serverside.execute(event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCRemoveFromCartEvent *event = [[TCRemoveFromCartEvent alloc] initWithItems: items];
event.value = [[NSDecimalNumber alloc] initWithString: @"12.2"];
event.currency = @"EUR";
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCRemoveFromCartEvent(items: [item_1, item_2])
event?.value = 22.53
serverside?.execute(event)
Copy TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 10;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCRemoveFromCartEvent();
event.value = 15.1;
event.currency = "EUR";
event.items = [tc_item_1];
serverside.execute(event);
Copy {
"event_name": "remove_from_cart",
"value": 8.00,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}
search
Use this event to contextualize search operations. This event can help you identify the most popular content in your app.
Parameters
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','search', {
search_term: 't-shirts',
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
});
Copy val event = TCSearchEvent("t-shirts")
serverside.execute(event)
Copy TCSearchEvent *event = [[TCSearchEvent alloc] init];
event.searchTerm = @"t-shirts";
[TCS execute: event];
Copy let event = TCSearchEvent(searchTerm: "t-shirts")
serverside.execute(event)
Copy var event = TCSearchEvent();
event.searchTerm = "t-shirts";
serverside.execute(event);
Copy {
"event_name": "search",
"search_term": "t-shirts"
}
select_content
This event signifies that a user has selected some content of a certain type. This event can help you identify popular content and categories of content in your app or click on internal promotion.
Parameters
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','select_content', {
content_type: 'product',
item_id: 'I_12345',
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
});
Copy val event = TCSelectContentEvent
event.contentType = "product"
serverside.execute(event)
Copy TCSelectContentEvent event = new TCSelectContentEvent();
event.contentType = "product";
serverside.execute(event);
Copy TCSelectContentEvent *event = [[TCSelectContentEvent alloc] init];
event.contentType = @"product";
event.itemID = @"I_12345";
[TCS execute: event];
Copy let event = TCSelectContentEvent()
event.contentType = "product"
event.itemID = "I_12345"
serverside?.execute(event)
Copy var event = TCSelectContentEvent();
event.contentType = "product";
event.itemId = "I_12345";
serverside.execute(event);
Copy {
"event_name": "select_content",
"content_type": "product",
"item_id": "I_12345"
}
select_item
This event signifies an item was selected from a list.
Parameters
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','select_item', {
item_list_name: 'Related products',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
});
Copy val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCSelectItemEvent(items);
event.itemListName = "Related products"
serverside.execute(event);
Copy TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCSelectItemEvent event = new TCSelectItemEvent(items);
event.itemListName = "Related products";
serverside.execute(event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice:[[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
TCSelectItemEvent *event = [[TCSelectItemEvent alloc] initWithItems: items];
event.itemListName = @"Related products";
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCSelectItemEvent(items: [item_1, item_2])
event.itemListName = "Related products";
serverside?.execute(event)
Copy TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 150;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCSelectItemEvent();
event.itemListName = "Related products";
event.items = [tc_item_1];
serverside.execute(event);
Copy {
"event_name": "select_item",
"item_list_name": "Related products",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}
sign_up
This event indicates that a user has signed up for an account.
Parameters (required and recommended)
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','sign_up', {
method: 'email',
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
});
Copy val event = TCSignUpEvent()
event.method = "email"
serverside.execute(event)
Copy TCSignUpEvent event = new TCSignUpEvent();
event.method = "email";
serverside.execute(event);
Copy TCSignUpEvent *event = [[TCSignUpEvent alloc] init];
event.method = @"email";
[TCS execute: event];
Copy let event = TCSignUpEvent()
event.method = "email"
serverside?.execute(event)
Copy var event = TCSignUpEvent();
event.method = "email";
serverside.execute(event);
Copy {
"event_name": "sign_up",
"method": "email"
}
view_cart
This event signifies that a user viewed their cart.
Parameters (required and recommended)
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','view_cart', {
value: 8.00,
currency: 'EUR',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
});
Copy val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCViewCartEvent(items)
event.value = 15.1f
event.currency = "EUR"
serverside.execute(event)
Copy TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCViewCartEvent event = new TCViewCartEvent(items);
event.value = 15.1f;
event.currency = "EUR";
serverside.execute(event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithString: @"1.5"]]
withQuantity: 1]];
TCViewCartEvent *event = [[TCViewCartEvent alloc] initWithItems: items];
event.value = [[NSDecimalNumber alloc] initWithString: @"12.2"];
event.currency = @"EUR";
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCViewCartEvent(items: [item_1, item_2])
event?.value = 22.53
serverside?.execute(event)
Copy TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 10;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
TCProduct tc_product_2 = TCProduct();
tc_product_2.ID = "product_2_ID";
tc_product_2.name = "product_2_name";
tc_product_2.price = 5.10;
tc_product_2.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_2 = TCItem();
tc_item_2.ID = "item_2_id";
tc_item_2.quantity = 2;
tc_item_2.product = tc_product;
tc_item_2.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCViewCartEvent();
event.value = 15.1;
event.currency = "EUR";
event.items = [tc_item_1, tc_item_2
serverside.execute(event);
Copy {
"event_name": "view_cart",
"value": 8.00,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}
view_item
This event signifies that some content was shown to the user. Use this event to manage the most popular items viewed.
Parameters (required and recommended)
Example
JavaScript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','view_item', {
revenue: 8.00,
currency: 'EUR',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
});
Copy val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCViewItem(items)
serverside.execute(event)
Copy TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCViewItem event = new TCViewItem(items);
serverside.execute(event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithString: @"1.5"]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCViewItem *event = [[TCViewItem alloc] initWithItems: items];
event.revenue = [[NSDecimalNumber alloc] initWithString: @"12.2"];
event.currency = @"EUR";
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCViewItem(items: [item_1, item_2])
event?.revenue = 12.2
serverside?.execute(event)
Copy TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 150;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCViewItemEvent();
event.pageName = "event_page_name";
event.pageType = "event_page_type";
event.items = [tc_item_1];
event.addAdditionalPropertyWithIntValue("key_additional_1", 12);
event.addAdditionalPropertyWithListValue("key_additional_2", [12,12,12]);
event.addAdditionalPropertyWithMapValue("key_map", {'test': 12, "test2": "value"});
serverside.execute(event);
Copy {
"event_name": "view_item",
"value": 8.00,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}
view_item_list
Log this event when the user has been presented with a list of items of a certain category.
Parameters
Example
Javascript Kotlin (Android) Java (Android) Objective-C (iOS) Swift (iOS) Dart (Flutter) json
Copy cact('trigger','view_item_list', {
item_list_name: 'Related products',
items: [{
id: 'SKU_12345',
quantity: 1,
price: 9.99,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
colors: ['red'],
price: 9.99
}
}, {
id: 'SKU_12346',
quantity: 1,
price: 9.99,
variant: 'green',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12346',
name: 'Heart tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'girl',
brand: 'Jenny',
colors: ['blue','white'],
price: 9.99
}
}],
user: {
id: '12356',
email:'toto@domain.fr',
consent_categories: [1,3]
}
});
Copy val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCViewItemList(items)
event.itemListName = "your products"
serverside.execute(event)
Copy TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCViewItemListEvent event = new TCViewItemListEvent(items);
event.itemListName = "your products";
serverside.execute(event);
Copy NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: @1.5f]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCViewItemListEvent *event = [[TCViewItemListEvent alloc] initWithItems: items];
event.itemListName = @"summer_collection";
[TCS execute: event];
Copy let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCViewItemListEvent(items: [item_1, item_2])
event?.itemListName = "summer_collection"
serverside?.execute(event)
Copy TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 150;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
TCProduct tc_product_2 = TCProduct();
tc_product_2.ID = "product_2_ID";
tc_product_2.name = "product_2_name";
tc_product_2.price = 150;
tc_product_2.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_2 = TCItem();
tc_item_2.ID = "item_2_id";
tc_item_2.quantity = 2;
tc_item_2.product = tc_product;
tc_item_2.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCViewItemListEvent();
event.pageName = "event_page_name";
event.pageType = "event_page_type";
event.items = [tc_item_1, tc_item_2];
event.addAdditionalPropertyWithIntValue("key_additional_1", 12);
event.addAdditionalPropertyWithListValue("key_additional_2", [12,12,12]);
event.addAdditionalPropertyWithMapValue("key_map", {'test': 12, "test2": "value"});
event.itemListName = "itemListName";
serverside.execute(event);
Copy {
"event_name": "view_item_list",
"item_list_name": "Related products",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
],
"price": 9.99
}
},
{
"id": "SKU_12346",
"quantity": 1,
"price": 9.99,
"variant": "green",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12346",
"name": "Heart tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "girl",
"brand": "Jenyfion",
"colors": [
"blue",
"white"
],
"price": 9.99
}
}
],
"user": {
"id": "12345",
"email": "toto@domain.fr",
"consent_categories": [
1,
3
]
}
}
- COMMON SCHEMAS -
Item
Parameters (required and recommended)
Product
Parameters (required and recommended)
User
When you send an event, it needs to carry enough information to identify which user made it. We can link events together using cookies. But destination partners require accurate identifiers to take actions.
id
and email
are usually the most useful parameters. Though some destination partners also use firstname
, lastname
, birthdate
, city
, ...
You won't always have all of those parameters. But it is recommended to send them as soon as you can during user's browsing.
Parameters (required and recommended)
About Hashing
In some cases, you won't be able to send a parameter plain value. It is either unavailable or restricted.
Thus it might be possible to send the hashed values. We currently accept 2 algorithm : md5
and sha256
.
Every user.<property>
can be sent under hashed format with algorithm suffix: _md5
or _sha256
(underscore followed by lowercase algorithm name)
Example :
Copy {
user: {
email_md5: '8eb1b522f60d11fa897de1dc6351b7e8', // md5('john.doe@example.com')
email_sha256: '836f82db99121b3481011f16b49dfa5fbc714a0d1b1b9f784a1ebbbf5b39577f', // sha256('john.doe@example.com')
phone_md5: '60dd761f55cb17f0532c9fb1679e8ddd', // md5('+33612345678')
phone_sha256: '42d573cfc315801d4cd8eddd5416b416a0bf298b9b9e12d6b07442c91db42bd8', // sha256('+33612345678')
}
}
No need to send both plain and hashed values :
if you send plain value, the hashed values aren't necessary
We can generate hashed values on server side using plain value
if you don't send plain value, then you should fill as much hashed values as possible
Partners require different hash algorithms and without plain value, we can't generate any hash. That's why we need the exact hashed value
- ENUMERATED VALUE -
Payment methods
Enumerated Values for payment methods :
Purchase status
Enumerated Values for purchase status: