---
title: Implement Tracking Events
slug: fluid-adserver-api/implement-tracking-events
description: How to implement load impressions, viewed impressions, click tracking, and conversion tracking using Pentaleap's pre-encrypted beacon URLs.
icon: 📍
docTags: 
createdAt: 2023-07-24T10:48:17.010Z
---

# Tracking Protocol 

Three kinds of tracking are required to implement our tracking protocol:&#x20;



![](https://api.archbee.com/api/optimize/ECRkQNjfn90rl6zxx1YkK-nXs9sP3CKRSwVMetbg2HS-20240827-124223.png)

Additionally, Load beacons can also be returned by Pentaleap on request.

Please refer to our Tracking [API Documentation](https://docs.pentaleap.com/fluid-adserver-api/endpoint-for-delivering-impression-events-back-to-the-tracking-infrastructure-via-tracking-link) to learn more about the Tracker API.

For click and impression tracking, Pentaleap provides encrypted tracking links in the ad response. The retailer system simply has to send a GET request to the URL when the product is shown or clicked.

Conversion tracking requires the retailer to send a POST request with the userID and product/transaction information.

## Tracking API Best Practices

:::ExpandableHeading
### Requirements

**Impression Tracking (loaded and viewed impressions)**

Track when an ad is shown to the user using a tracking pixel (1x1 image) or by calling the tracking URL. Load impressions should be triggered on pageload, while viewed impressions should be triggered when the asset is in the viewport in accordance with [IAB Standards](https://www.iab.com/wp-content/uploads/2015/06/MRC-Viewable-Ad-Impression-Measurement-Guideline.pdf)

**Click Tracking**

Track when a sponsored product is clicked by the user by sending a GET request to the Click URL. The click URL should be triggered for both click and add to basket actions.

For Sponsored Brand ads, the Click URL should be triggered on any click action on the asset or associated products. Pentaleap handles de-duplication of click and impression events automatically.

**Conversion Tracking**

Track conversions (e.g., purchases) by calling an endpoint on the conversion page with transaction details. **Ensure the user\_id in the AdRequest matches the user\_id in the conversion events.**

Refer to our [Tracking API Documentation](https://docs.crealytics.com/retailer-integration/endpoint-for-delivering-impression-events-back-to-the-tracking-infrastructure-via-tracking-link) for detailed information.
:::

:::ExpandableHeading
### Best Practices

**Trigger Load Impression links on pageload:** Load Impression links signified by load*Urls* should be triggered on pageload.

**Trigger Impression (Beacon) links on view:** Impression links signified by *beaconUrls* should be triggered only when the ad is visible in the viewport to the user. For example, a carousel could contain 10 ads but only display 4, so *BeaconUrls* should only be triggered for the first 4 until the user scrolls to further ads.

**Trigger Click links on click and add-to-cart:&#x20;**&#x54;he same click link can be associated to multiple actions. For example, if you have an add-to-cart button ans well as a product image and text, the click link should be triggered when the user does any of:

- Add to cart
- Click image or product tile
- Click product title/description

Pentaleap attribution has a de-duplication function to only count clicks once.

**Which conversion events to send?**

- The **best practice** is to send all transactions to Pentaleap. This enables Pentaleap to apply attribution rules based on a larger transaction inventory.



- Optional: to send product purchases related to user's IDs matching sponsored product requests.



**Batch Processing for Conversions:** When possible, use batch processing for conversion tracking to reduce the number of POST requests. This can help in managing load and ensuring efficient data transfer.

**Consistent User IDs:** Ensure that the *user\_id* sent in the *AdRequest* is the same as the one used in conversion events. This consistency is vital for accurate tracking and attribution.

:::





