The method gives the system an understanding of the product viewed by the user.
Params view = new Params(); view .put(new Params.Item(product_id)) .put(new Params.RecommendedBy(Params.RecommendedBy.TYPE.RECOMMENDATION, recommeder_code)); PersonaClick.track(Params.TrackEvent.VIEW, view); |
Name | Type | Requirement | Description |
---|---|---|---|
product_id | string | required | The ID of the current product |
recommender_code | string | required is some cases | This property should have a unique code for the product recommendations block if the current product was opened from the recommendation block. The unique code is available in the PersonaClick account in the "data-recommender-code" attribute of each block. |
Params view = new Params(); view .put(new Params.Item("100500")) .put(new Params.RecommendedBy(Params.RecommendedBy.TYPE.RECOMMENDATION, "b934b6ba2eb6202b8922d6a3fb8b3271")); PersonaClick.track(Params.TrackEvent.VIEW, view); |
The method gives the system an understanding of the category viewed by the user.
The API will respond with an error for categories unknown to the system. The system only knows the categories from the product feed (XML) or the HTTP import of the category list. |
PersonaClick.track(Params.TrackEvent.CATEGORY, (new Params()).put(Params.Parameter.CATEGORY_ID, category_id)); |
Name | Type | Requirement | Description |
---|---|---|---|
category_id | string | required | The ID of the current category. |
PersonaClick.track(Params.TrackEvent.CATEGORY, (new Params()).put(Params.Parameter.CATEGORY_ID, "146")); |
The method gives the system an understanding of the product added to the cart by the user.
Params cart = new Params(); cart .put(new Params.Item(product_id) .set(Params.Item.COLUMN.FASHION_SIZE, fashion_size) .set(Params.Item.COLUMN.AMOUNT, amount) ) .put(new Params.RecommendedBy(Params.RecommendedBy.TYPE.RECOMMENDATION, recommender_code)); PersonaClick.track(Params.TrackEvent.CART, cart); |
Name | Type | Requirement | Description |
---|---|---|---|
product_id | string | required | The ID of the product added to the cart |
amount | string | optionally | Quantity of product. Default: 1. |
fashion_size | string | optionally | The parameter allows specifying the size of the product related to the Apparel & Accessories niche. |
recommender_code | string | required in some cases | This property should have a unique code for the product recommendations block if the current product was added to the cart from the recommendation block. The unique code is available in the PersonaClick account in the "data-recommender-code" attribute of each block. |
Params cart = new Params(); cart .put(new Params.Item("100500") .set(Params.Item.COLUMN.FASHION_SIZE, "M") .set(Params.Item.COLUMN.AMOUNT, 2) ) .put(new Params.RecommendedBy(Params.RecommendedBy.TYPE.RECOMMENDATION, "b934b6ba2eb6202b8922d6a3fb8b3271")); PersonaClick.track(Params.TrackEvent.CART, cart); |
The method gives the system an understanding of the product removed from the cart by the user.
sdk.track(event: .productRemovedFromCart(id: product_id)) { callback } |
Name | Type | Requirement | Description |
---|---|---|---|
product_id | string | required | The ID of the product removed from the cart |
callback | function | optionally | Callback function to catch success or error |
sdk.track(event: .productRemovedFromCart(id: "100500")) { trackResponse in print("Product removed from the cart callback") switch trackResponse { case let .success(response): print("Successful") case let .failure(error): switch error { case .custom(let customError): print("Error: ", customError) default: print("Error: ", error.localizedDescription) } fatalError("Task failed successfully") } } |
The method updates the whole cart on the system side.
Use this method when the user, for example, changes the quantity of a product in the cart or completely purges the cart. Also, this method can be used as an alternative to the "Add to cart" and "Remove from cart" methods if you have access to the entire cart when these events occur for a specific product. |
Syntax and parameters
sdk.track(event: .synchronizeCart(ids: product_ids)) { callback } |
Name | Type | Requirement | Description |
---|---|---|---|
product_ids | array | required | The ID of the product in the cart |
callback | function | optionally | Callback function to catch success or error |
sdk.track(event: .synchronizeCart(ids: ["146", "100500", "12345"])) { trackResponse in print("Cart synchronized callback") switch trackResponse { case let .success(response): print("Successful") case let .failure(error): switch error { case .custom(let customError): print("Error: ", customError) default: print("Error: ", error.localizedDescription) } fatalError("Task failed successfully") } } |
The method gives the system information about the successful checkout, its products, and other information related to the checkout.
sdk.track(event: .orderCreated(orderId, totalValue, products)) { callback } |
Name | Type | Requirement | Description |
---|---|---|---|
products | array | required | An array of purchased products. See the table below for details. |
orderId | string | optionally | Internal store Order ID. If not specified, the system will create its internal ID. Synchronization of order statuses, in this case, won't be available. |
totalValue | number | optionally | The final order value, including all discounts. If not specified, the system will calculate the order value based on prices from the product feed. |
Product properties:
Name | Type | Requirement | Discription |
---|---|---|---|
id | string | required | Product ID. |
amount | number | required | Product Quantity. |
sdk.track(event: .orderCreated(orderId: "N100500", totalValue: 750, products: [(id: "37", amount: 3), (id: "187", amount: 1)])) { trackResponse in print("Order is created callback") switch trackResponse { case let .success(response): print("Successful") case let .failure(error): switch error { case .custom(let customError): print("Error: ", customError) default: print("Error: ", error.localizedDescription) } fatalError("Task failed successfully") } } |
The method gives the system an understanding the user has added a product to the wishlist.
sdk.track(event: .productAddedToFavorities(id: product_id)) { callback } |
Name | Type | Requirement | Description |
---|---|---|---|
product_id | string | required | The ID of the product added to the wishlist |
callback | function | optionally | Callback function to catch success or error |
sdk.track(event: .productAddedToFavorities(id: "100500")) { trackResponse in print("Product added to the wishlist callback") switch trackResponse { case let .success(response): print("Successful") case let .failure(error): switch error { case .custom(let customError): print("Error: ", customError) default: print("Error: ", error.localizedDescription) } fatalError("Task failed successfully") } } |
The method gives the system an understanding the user has removed a product from the wishlist.
sdk.track(event: .productRemovedToFavorities(id: product_id)) { callback } |
Name | Type | Requirement | Description |
---|---|---|---|
product_id | string | required | The ID of the product removed from the wishlist |
callback | function | optionally | Callback function to catch success or error |
sdk.track(event: .productRemovedToFavorities(id: "100500")) { trackResponse in print("Product removed from the wishlist callback") switch trackResponse { case let .success(response): print("Successful") case let .failure(error): switch error { case .custom(let customError): print("Error: ", customError) default: print("Error: ", error.localizedDescription) } fatalError("Task failed successfully") } } |
The method gives the system an understanding that some user event has happened.
Before you can use custom events, you must create them in the PersonaClick account: Settings > Custom events. |
sdk.trackEvent(event: custom_event_key, category, label, value) |
Name | Type | Requirement | Description |
---|---|---|---|
custom_event_key | string | required | Unique custom event key. Must be pre-created in the PersonaClick account: Settings > Custom events. |
category | string | optionally | A category is a name that you supply as a way to group some event's properties. |
label | string | optionally | With labels, you can provide additional information for events that you need. |
value | number | optionally | The value property can be any integer and can be used to send a specific value in an event. |
sdk.trackEvent(event: "my_event") |
sdk.trackEvent(event: "my_event", category: "my_category", label: "my_label", value: 100500) |
The method gives the system an understanding that the user jumped from the campaign message: bulk, chain, transactional.
sdk.trackSource(source, code) |
Name | Type | Requirement | Description | |
---|---|---|---|---|
source | enum string | required | One of the string enum values. Available values:
| |
code | string | required | Unique campaign code
|
sdk.trackSource(source: .chain, code: "100500146") |