Skip to main content

Event: Click

The Click Event tracks unique clicks on user interface elements powered by Particular Audience, such as product display slots, call-to-action buttons, and sort/filters in search.

This event categorizes actions through ActionType (type of interaction) and ContextType (type of widget being interacted with).

Click events are crucial for tracking interactions related to Retailer Boost Collections and Supplier Funded Retail Media Campaigns, essential for Analytics in Discovery OS.

API Endpoint

Method: POST
URL: https://<PA_END_POINT>/3.0/events/clicks

Request Header

NameValue
Content-Typeapplication/json
AuthorizationBearer ACCESS_TOKEN

Request Parameters (Body)

ParameterTypeRequiredDescription
customerIdGUIDUnique identifier for the customer, obtained from the Config API. This identifier persists throughout the customer's lifetime on the platform. For details on retrieving a customer ID, please refer to the Config API documentation.
sessionIdGUIDUnique identifier for the session, consistent throughout the session's duration. For information on obtaining a session ID, please refer to the Config API documentation.
eventsArray of objectsArray of objects detailing Click event. Each Click event object will contain the following properties:
event's object defination
currentUrlstringURL where the Slot Impression occurred.
clickIdGUIDUnique identifier for the click event. This needs to be generated on the client side.
eventTimedateTimeUTC timestamp of when the search happened.
widgetIdGUIDIdentifier for the widget the slot belongs to. This information is available as part of the Recommendations API response payload from where the slot’s data was collected.
routeIdGUIDRoute identifier that led to the widget display. This information is available as part of the Recommendations API response payload from where the slot’s data was collected.
actionTypeintegerIdentifier for the type of action taken. Please refer to the Action Types for more information.
contextTypeintegerIdentifier for the type of context in which the click occurred. Please refer to the Context Types for more information.
contextDataintegerAdditional data about the context, can be simple text or JSON structured.
refIdstringProduct's refID. If the event is in reference to an individual product then the refId of the product. For example, a click event to view the product detail page or add-to-cart. However, if the click is not related to an individual product, exclude this field.
recommenderIdGUIDIdentifier of the recommender that populated the slot. This information is available as part of the Recommendations API response payload from where the slot’s data was collected.
campaignIdGUIDIdentifier of the campaign that populated the slot. This information is available as part of the Recommendations API response payload from where the slot’s data was collected.
tacticIdGUIDIdentifier of the tactic that populated the slot. This information is available as part of the Recommendations API response payload from where the slot’s data was collected.
Route, Widget & Tactic

Route ID, Widget ID and Tactic ID are important for tracking the performance and effectiveness of the recommendation strategies. These are available as part of the Recommendations API response payload from where the slot’s data was collected. Please refer to the Recommendations API documentation and Personalization Overview page for more information.

slotintegerSlot number where the product was displayed. This is important for tracking the performance of the slot (especilly if the slot is related to Boosting or Retail Media campaigns). This is provided as part of the slot data for the product in the Recommendations API response payload.
referralUrlstringURL from which the user was referred (if applicable).
personalizedbooleanIndicates whether the click was on a personalized Recommendation or Search result.
redirectUrlstringURL to which the user is taken to after the click.
note

The redirectUrl tracking is very important for training the search engine and improving search performance. If you are using ATS, this is crucial for training the system. When a user clicks on a product from the search result, a Click event should be sent with the redirectUrl as the product URL.

Retailer Boost Campaign

The following properties are related to the Retailer Boost event tracking and are required to be sent as part of the event object in the payload for Retailer Boost analytics and reporting.

ParameterTypeRequiredDescription
retailBoostCollectionCampaignIdGUIDThe identifier of the Retailer Boost Collection Campaign. This is provided as part of the slot data for the product in the Recommendations API response payload.

Retail Media

The following properties are related to the Retail Media event tracking and are required to be sent as part of the event object in the payload for Retail Media analytics and spend calculation.

ParameterTypeRequiredDescription
adSetIdGUIDThe identifier of the Ad Set. This is provided as part of the slot data for the product in the Recommendations API response payload.
adSetVersionintegerThe version of the Ad Set. This is provided as part of the slot data for the product in the Recommendations API response payload.
costPerClickdecimalThe cost per click on a sponsored slot is provided as part of the slot data for the product in the Recommendations API response payload.
timeStamptimestampThe timestamp provided as part of the product's slot data in the Recommendations API response payload. This is the timestamp when the slot was populated.
hmacSaltstringString of 16 random characters generated by recommender. Used for calculating and validating HMAC field. This is provided as part of the slot data for the product in the Recommendations API response payload.
hmacstringThe hash-based message authentication code (HMAC) generated using the adSetId, hmacSalt, costPerClick, timeStamp. This is used to validate the authenticity of the slot impression event. This is provided as part of the slot data for the product in the Recommendations API response payload.
note

The keywordId is only required if the Retail Media slot was populated as part of the Keyword Targeting campaign.

  • keywordId (GUID): Client generated Id. If a slot was displayed as part of the Retail Media Keyword Targeting campaign, this field should be populated with the keywordId. The keywordId is generated as part of the search-keywords event. The search-keywords event is triggered when the Recommendations API is called with a specific keyword to retrieve the Retail Media slots for that keyword.

Example Request Payload

{
"customerId": "xxxxxxxxxxxxxxxxxxxxxxx",
"sessionId": "xxxxxxxxxxxxxxxxxxxxxxx",
"events": [
{
"currentUrl": "https://www.example.com/",
"eventTime": "2024-03-01T14:00:00.000Z",
"clickId": "xxxxxxxxxxxxxxxxxxxxxxx",
"refId": "231673",
"actionType": 1,
"contextType": 1,
"contextData": "Camera",
"redirectUrl": "https://www.example.com/xxxxxxxxxxxxxxxxxxxxxxx",
"referralUrl": "https://www.example.com/xxxxxxxxxxxxxxxxxxxxxxx",
"personalized": true,
"widgetId": "xxxxxxxxxxxxxxxxxxxxxxx",
"routeId": "xxxxxxxxxxxxxxxxxxxxxxx",
"recommenderId": "xxxxxxxxxxxxxxxxxxxxxxx",
"campaignId": "xxxxxxxxxxxxxxxxxxxxxxx",
"tacticId": "xxxxxxxxxxxxxxxxxxxxxxx",

// The following are only relevant to the Retailer Boost event tracking
"retailBoostCollectionCampaignId": "xxxxxxxxxxxxxxxxxxxxxxx",

// The following are only relevant to the Retail Media event tracking
"adSetId": "xxxxxxxxxxxxxxxxxxxxxxx",
"adSetVersion": 1,
"costPerClick": 0.5,
"timeStamp": 638481477292391000,
"hmacSalt": "xxxxxxxxxxxxxxxxxxxxxxx",
"hmac": "xxxxxxxxxxxxxxxxxxxxxxx",
"keywordId": "xxxxxxxxxxxxxxxxxxxxxxx"
}
]
}

Response

On Success

On successful update, the returned status code will be 202, and the payload will contain the status message "Accepted" and a transaction ID.

{
"transactionId": "xxxxxxxxxxxxxxxxxxxxxxx",
"status": "Accepted"
}

On Error

If there are any errors, the response status code will not be 202, and the relevant error messages will be provided as part of "errors" in the returned message.

{
"errors": {
"events[0].CurrentUrl": [
"'Current Url' must not be empty."
]
},
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "xxxxxxxxxxxxxxxxxxx"
}

Example Usage (JavaScript)

Here’s an example code snippet using JavaScript’s Fetch API:

const url = 'https://<PA_END_POINT>/3.0/events/clicks';
const accessToken = 'YOUR_ACCESS_TOKEN'; // Replace with your actual access token
const body = {
customerId: 'xxxxxxxxxxxxxxxxxxxxxxx',
sessionId: 'xxxxxxxxxxxxxxxxxxxxxxx',
events: [
{
currentUrl: "https://www.example.com/",
eventTime: "2024-03-01T14:00:00.000Z",
clickId: "xxxxxxxxxxxxxxxxxxxxxxx",
refId: "12312",
actionType: 1,
contextType: 1,
contextData: "Camera",
redirectUrl: "https://www.example.com/xxxxxxxxxxxxxxxxxxxxxxx",
referralUrl: "https://www.example.com/xxxxxxxxxxxxxxxxxxxxxxx",
personalized: true,
widgetId: "xxxxxxxxxxxxxxxxxxxxxxx",
routeId: "xxxxxxxxxxxxxxxxxxxxxxx",
recommenderId: "xxxxxxxxxxxxxxxxxxxxxxx",
campaignId: "xxxxxxxxxxxxxxxxxxxxxxx",
tacticId: "xxxxxxxxxxxxxxxxxxxxxxx",

// The following are only relevant to the Retailer Boost event tracking
retailBoostCollectionCampaignId: "xxxxxxxxxxxxxxxxxxxxxxx",

// The following are only relevant to the Retail Media event tracking
adSetId: "xxxxxxxxxxxxxxxxxxxxxxx",
adSetVersion: 1,
costPerClick: 0.5,
timeStamp: 638481477292391000,
hmacSalt: "xxxxxxxxxxxxxxxxxxxxxxx",
hmac: "xxxxxxxxxxxxxxxxxxxxxxx",
keywordId: "xxxxxxxxxxxxxxxxxxxxxxx"
}
]
};

fetch(url, {
method: 'POST',
headers: {
"Authorization": `Bearer ${accessToken}`,
"Content-Type": "application/json"
},
body: JSON.stringify(body)
})
.then(response => response.json())
.then(data => console.log('Click Recorded:', data))
.catch(error => console.error('Error recording click:', error));

Summary

This document provides details about the Click Event API, including its design, essential parameters, and example payload.

  • The Click Event API tracks unique clicks on user interface elements powered by Particular Audience.
  • It categorizes actions through ActionType and ContextType, crucial for PA Advanced Analytics.
  • The method for this API is POST, and the URL is https://<PA_END_POINT>/3.0/events/clicks.
  • Request body parameters include customer ID, session ID, events array with checkout details, and responses are provided upon successful update or errors.
  • Action Types and Context Types are defined with their respective values and requirements.

Action Types

NameValue
OpenProductPage1
AddProductToCart2
SeeSimilar3
OpenProductListPage4
PopularSearchLink5
QuickLink6
OpenBrandPage7
TextLink8
AddProductToWishlist9
ClickBuyNow10
ClickExternalBuyNow11
ClickPhoneNumber12
ViewInformation13
ClickFilterSort14
ClickDidYouMeanTerm15
CloseModal16
OpenPriceBeatModal17

Context Types

NameValueContextId Required?ContextData Required?
RecommendationWidget1Yes. Value: Id of the WidgetNo.
VisualSearchWidget2Yes. Value: VisualSearchWidget event idNo.
SearchWidget3Yes. Value: TextSearchEventIdYes. Search Term
NativeRecommendationWidget4Yes. Native Widget IdNo.
ExitIntentWidget5No.No.
PersonalizeWidget6No.No.
PersonaliseBrandWidget7No.No.
BundleWidget8No.No.
PriceBeatWidget9No.No.
KeywordTargetingWidget10No.No.
NativeButton11No.No.