HomeGuidesChangelog
Log In
Guides

Sponsored Products

Here is a breakdown of the requirements for your sponsored product placement to pass both technical and design QA:

Beaconing

LevelTitleResponse fieldExplanationMandatory
PlacementImpressiononLoadBeaconURL to be called when the whole placement is loaded onto the page. For sponsored products, the placement is considered "loaded" when at least one product is rendered.Yes
PlacementViewonViewBeaconURL to be called when at least 50% of the first product is in the user's viewport for at least 1 uninterrupted second.

This beacon should only be fired once.
Yes
ProductImpressiononLoadBeaconURL to be called when the individual product tile is loaded onto the page. If leveraging universal beacons, this field will be blank.

This beacon should only be fired once.
Yes
ProductViewonViewBeaconURL to be called when the individual product tile is viewed according to IAB's viewable ad impression measurement guidelines. At least 50% of the placement must be in the user's viewport for at least 1 uninterrupted second.

This beacon should only be fired once per product.
Yes
ProductClickproductPage
and/or
onClickBeacon
productPage
This element is a URL that will send an OnClickBeacon beacon to Criteo and then redirect the shopper to the item's PDP link (pulled from the product feed).

It is possible to use this as the href value for the sponsored product as a way to track clicks instead of calling the OnClickBeaconURL.

onClickBeacon
URL to be called when the individual product tile is clicked. This refers to any
click interaction with the product tile outside of adding to cart or adding to wishlist (see next two rows).

This beacon should fire on all the range of clicks; left click, middle click, right click to open in a new tab and keyboard shortcuts that simulate a click.

Both
This beacon should be fired on every click event. Criteo will deduplicate clicks for billing purposes internally.
Yes
ProductAdd-to-cartonBasketChangeBeaconURL to be called when a product is added to or removed from the basket/cart. You can add the quantity of products as a query string parameter. If no quantity parameter is provided, it defaults to 1.

This beacon should be fired on every add-to-cart click event. Criteo will deduplicate clicks for billing purposes internally.
Yes
ProductAdd-to-wishlistonWishlistBeaconURL to be called when the product is added to the wishlist/favorites.

This beacon should be fired on every add-to-wishlist click event. Criteo will deduplicate clicks for billing purposes internally.
Yes

Ad design

CheckExplanationMandatory
Breakpoint adherenceFor each window size (breakpoint), ensure the sponsored products are positioned properly and that all "sponsored" badges are displayed correctly, as shown in the mock-ups provided by Criteo.Yes
Mock-up adherenceThe design of the mock-ups should be followed as specified:

Product information: Layout, price, rating, text orientation, and text centering.
Navigation elements: Include any arrows or scrolls that are part of the product.
Title: Font style should match the mock-ups.
Text: Placement, font family, font size, and colors should match the mock-ups.
Sponsored text: Placement, font family, font size, and color should match the mock-ups.
Contour: Ensure there is a contour around the solution, following the mock-up design.
Yes

API features

CheckExplanationMandatory
Filters leveraged in ad callsFormat: Ensure the filters in the ad call match the product feed.
Multiple values: Ensure filters with multiple values are passed correctly using the 'in' operator.
Removal: Ensure that when filters are removed, updated ad calls are made to Criteo reflecting on site.
Yes, if filters have been implemented
Leveraging regiondataFormat: Ensure that the region IDs in the ad call match what is passed in the product feed
Adherence: Ensure that Criteo is adhering properly to the region in our ad response
Yes, if regiondata has been implemented

Attribution

CheckExplanationMandatory
Test purchaseFormat: Ensure that the trackTransaction page is passing all parameters properly, including unitary price for each item.
Returns: If leveraging the return functionality, ensure that returned orders trigger a new API call with quantity=0 for all returned items.
Yes