Ads Attribution & Tracking
Flipkart Commerce Cloud’s ad monetisation service (FCC AdMon service) provides attribution tracking to evaluate the performance of ads being run by different advertisers on different ecommerce publishers. Advertisers can see the current and future impact (T + 28 days) of ads in the form of awareness, engagement and conversion. A future purchase or interest shown in a product or brand due to any past awareness or engagement of an ad shown to a user, for the same brand or brand and category both is covered in attribution analysis.
- Awareness covers events like ad impressions, views and clicks.
- Engagement includes events like product page views, product added to cart and wishlist.
- Conversion covers the purchase of a product for the same advertiser (or same advertiser and category both).
Consider an example, where a purchase order in future is due to an engagement to an advertisement in the past (impressions, clicks, etc in the last 30 days, 7 days etc) in the same category & brand. Then we can attribute the revenue due to that order to that ad campaign.
Attribution Details
The following are the attribution details of FCC AdMon service:
Attribution Model | Direct (Brand and Category) Attribution Indirect (Brand) Attribution |
Attribution Type | Click-based View-based |
Attribution Method | Last Touch |
Attribution Period | 28 days (Click) 7 days (View) |
Metrics | Ad Impressions Ad Views Ad Clicks Product Page View Add to Cart Orders Conversion Rate Revenue ROI |
Data Ingestion | Product Catalog Order / Purchase Events User Activity Events |
Ingestion Frequency | Batch Process (for catalog data) Real Time (for all other events) |
Reporting Levels | Release Order Ad Format Campaign Ad Group Creative Daily Cuts |
Attribution Model
FCC AdMon service provides two major attribution models:
- Direct Attribution
- Indirect Attribution
Direct Attribution
Consider a case where an advertiser name X wants to run a brand ad campaign A for any number of product(s) P(n) = [P1, P2, P3…….Pn] which fall under the same category C. Any purchase or interest shown for P(n) (or any product within the same category C for the same brand) within a period of 28 days will get accumulated as a result of ad campaign A. So, direct attribution provides the impact of running ads on products of the same brand and category for which the ad campaign was created.
Indirect Attribution
Consider a case where an advertiser name X has a list of products which fall under different categories C(n) = [C1, C2, C3…….Cn]. Now, let’s assume that advertiser X has created an ad campaign A for brand B for product(s) which fall under the category C1. Any purchase or interest shown in products for brand B which fall under any categories of C(n) except C1 within a period of 28 days will get accumulated as a result of ad campaign A. So, indirect attribution provides the impact of running ads on products of the same brand (but for different categories) for which the ad campaign was created.
Attribution Method
FCC AdMon service provides Last Touch attribution method as a part of attribution tracking. Consider a case where an ad campaign is being run by a brand. If a user clicks on the ad, goes to the product page and then adds the product to the cart. However, the user doesn’t purchase the product. After a few days the same user again clicks on the ad and then ends up buying the same product which was already added in the cart because of the previous ad click, even then purchase will get accumulated for the most recent click.
Attribution Metrics
FCC AdMon service provides full funnel attribution which includes metrics of awareness, engagement and conversion.
Insights | Metrics |
Awareness | Impressions – No. of times ad gets served to users. Views – No. of times ad gets viewed by users. Recommendation to record a view event: 50% of the ad banner must be in viewable area, Ad should be visible for at least 1 second Clicks – No. of times ad banners get clicked by users. |
Engagement | Product Page Views – No. of times the product page gets viewed by users for which ad campaign was created Add to Cart – No. of times product gets added to cart by users Wishlist – No. of times product gets added into wishlist |
Conversion | Order/Purchase – No. of orders placed/units bought by users within a period of 28 days from the day of the most recent ad click Conversion Rate – Total orders (clicks and views attributed) / Total clicks on the ads Revenue – Total revenue generated from the no. of orders placed/units sold ROI – Total Revenue (clicks and views attributed) / Total spend |
Attribution Events
Events related to awareness (impressions, views and clicks) are covered in the overall Tracking and Reporting document and are not limited only to Attribution analysis. Hence, these events have been kept out of this document. This document will cover events related to engagement and conversion.
Product Page View Event
This event is to be fired whenever a Product Page is viewed by any user.
Parameters required with the event:
Parameter | Type | Required/Optional | Description |
reqId | String | Required | Unique Id for the Event, UUID. Publisher to generate a unique id and pass it in request |
version | String | Required | Version would be 1.0 |
clientId | String | Required | Unique Client ID. Client ID will be provided by FCC team while onboarding a publisher |
source | String | Required | Data origin Publisher Name |
isTest | Boolean | Required | true for test data, false for production data |
eventTime | Long | Required | EPOC in milliseconds. Eg: 1571544308105 |
refReqId | String | Optional | Referred request Id |
URI | String | Optional | URI of the page |
vstOsF | String | Optional | Visitor OS family |
vstOsV | String | Optional | Visitor OS version |
vstBrwsrF | String | Optional | Visitor browser family |
vstBrwsrV | String | Optional | Visitor browser version |
vstDevF | String | Optional | Visitor device family |
vstDevType | String | Optional | Visitor device type |
vstDevId | String | Optional | Visitor device Id |
userId | String | Required | Unique User Id of the customer (fill with NOT_LOGGED_IN if user is not logged in) |
vstId | String | Optional | Visit Id |
vstrId | String | Optional | Visitor Id |
networkType | String | Optional | Eg. 4G |
sdkAdId | String | Required | Ad Id, unique identifier for tracking & service ads |
locCntry | String | Required | customer country name |
locCty | String | Optional | Customer city name |
locIP | String | Required | Customer IP address |
locLat | Double | Optional | latitude |
locLon | Double | Optional | longitude |
pageType | String | Optional | Page Type |
pageName | String | Optional | Page Name |
pageTitle | String | Optional | Page Title |
eventAction | String | Required | Pass “click” in this field |
productAction | String | Required | Pass “ppv” in this field |
productId | String | Required | Unique ID of the product |
productBrand | String | Required | Brand Id of the product |
productCategory | String | Required | Product Category id path like id1/id2/id3 |
productVariant | String | Optional | Product variant of the product action |
propN | String/Custom | Optional | Additional Information can be passed in this field. N in propN varies from 1 to 50 |
Add To Cart Event
This event is to be fired whenever a product gets added to the cart.
Parameters required with the event:
Parameter | Type | Required/Optional | Description |
reqId | String | Required | Unique Id for the Event, UUID. Publisher to generate a unique id and pass it in request. |
version | String | Required | Version would be 1.0 |
clientId | String | Required | Unique Client ID. Client ID will be provided by FCC team while onboarding a publisher. |
source | String | Required | Data origin Publisher Name |
isTest | Boolean | Required | true for test data, false for production data. |
eventTime | Long | Required | EPOC in milliseconds. Eg: 1571544308105 |
refReqId | String | Optional | Referred request Id. |
URI | String | Optional | URI of the page |
vstOsF | String | Optional | Visitor OS family |
vstOsV | String | Optional | Visitor OS version |
vstBrwsrF | String | Optional | Visitor browser family |
vstBrwsrV | String | Optional | Visitor browser version |
vstDevF | String | Optional | Visitor device family |
vstDevType | String | Optional | Visitor device type |
vstDevId | String | Optional | Visitor device Id |
userId | String | Required | Unique User Id of the customer (fill with NOT_LOGGED_IN if user is not logged in) |
vstId | String | Optional | Visit Id |
vstrId | String | Optional | Visitor Id |
networkType | String | Optional | Eg. 4G |
sdkAdId | String | Required | Ad Id, unique identifier for tracking & service ads |
locCntry | String | Required | customer country name |
locCty | String | Optional | Customer city name |
locIP | String | Required | Customer IP address |
locLat | Double | Optional | latitude |
locLon | Double | Optional | longitude |
pageType | String | Optional | Page Type |
pageName | String | Optional | Page Name |
pageTitle | String | Optional | Page Title |
eventAction | String | Required | Pass “click” in this field |
productAction | String | Required | Pass “atc” in this field |
productId | String | Required | Unique ID of the product |
productBrand | String | Required | Brand Id of the product |
productCategory | String | Required | Product Category id path like id1/id2/id3 |
productVariant | String | Optional | Product variant of the product action |
propN | String/Custom | Optional | Additional Information can be passed in this field. N in propN varies from 1 to 50 |
Wishlist Event
This event is to be fired whenever a product gets added to the wishlist.
Parameters required with the event:
Parameter | Type | Required/Optional | Description |
reqId | String | Required | Unique Id for the Event, UUID. Publisher to generate a unique id and pass it in request. |
version | String | Required | Version would be 1.0 |
clientId | String | Required | Unique Client ID. Client ID will be provided by FCC team while onboarding a publisher. |
source | String | Required | Data origin Publisher Name |
isTest | Boolean | Required | true for test data, false for production data |
eventTime | Long | Required | EPOC in milliseconds. Eg: 1571544308105 |
refReqId | String | Optional | Referred request Id |
URI | String | Optional | URI of the page |
vstOsF | String | Optional | Visitor OS family |
vstOsV | String | Optional | Visitor OS version |
vstBrwsrF | String | Optional | Visitor browser family |
vstBrwsrV | String | Optional | Visitor browser version |
vstDevF | String | Optional | Visitor device family |
vstDevType | String | Optional | Visitor device type |
vstDevId | String | Optional | Visitor device Id |
userId | String | Required | Unique User Id of the customer (fill with NOT_LOGGED_IN if user is not logged in) |
vstId | String | Optional | Visit Id |
vstrId | String | Optional | Visitor Id |
networkType | String | Optional | Eg. 4G |
sdkAdId | String | Required | Ad Id, unique identifier for tracking & service ads |
locCntry | String | Required | customer country name |
locCty | String | Optional | Customer city name |
locIP | String | Required | Customer IP address |
locLat | Double | Optional | latitude |
locLon | Double | Optional | longitude |
pageType | String | Optional | Page Type |
pageName | String | Optional | Page Name |
pageTitle | String | Optional | Page Title |
eventAction | String | Required | Pass “click” in this field |
productAction | String | Required | Pass “atw” in this field |
productId | String | Required | Unique ID of the product |
productBrand | String | Required | Brand Id of the product |
productCategory | String | Required | Product Category id path like id1/id2/id3 |
productVariant | String | Optional | Product variant of the product action |
propN | String/Custom | Optional | Additional Information can be passed in this field. N in propN varies from 1 to 50 |
Order / Purchase Event
This event is to be fired whenever a product gets purchased.
Ingestion Frequency: Real Time
Parameters required with the event:
Parameter | Type | Required/Optional | Description |
reqId | String | Required | Unique Id for the Event, UUID. Publisher to generate a unique id and pass it in request. |
version | String | Required | Version would be 1.0 |
clientId | String | Required | Unique Client ID. Client ID will be provided by FCC team while onboarding a publisher. |
source | String | Required | Data origin Publisher Name |
isTest | Boolean | Required | true for test data, false for production data. |
eventTime | Long | Required | EPOC in milliseconds. Eg: 1571544308105 |
vstId | String | Optional | Visit Id |
vstrId | String | Optional | Visitor Id |
URI | String | Optional | URI of the page |
sdkAdId | String | Required | Ad Id, unique identifier for tracking & service ads |
userId | String | Required | Unique User Id of the customer (fill with NOT_LOGGED_IN if user is not logged in) |
locIP | String | Required | Customer IP address |
pageType | String | Optional | Page Type |
pageName | String | Optional | Page Name |
pageTitle | String | Optional | Page Title |
eventAction | String | Required | Pass “click” in this field |
productAction | String | Required | Pass “purchase” in this field |
items | Object Array | Required | Object Array defined separately |
totRevenue | Double | Required | Total revenue on the purchase |
totTax | Double | Required | Total Tax amount on the purchase |
totCurrency | String | Required | Currency Type. List of currency types to be shared by FCC team. |
purchaseId | String | Required | Unique Id of the purchase order |
refReqId | String | Optional | Referred request Id |
vstOsF | String | Optional | Visitor OS family |
vstOsV | String | Optional | Visitor OS version |
vsBrwsrF | String | Optional | Visitor browser family |
vstBrwrV | String | Optional | Visitor browser version |
vstDevF | String | Optional | Visitor device family |
vstDevType | String | Optional | Visitor device type |
vstDevId | String | Optional | Visitor device Id |
networkType | String | Optional | Eg. 4G |
locCntry | String | Required | customer country name |
locCty | String | Optional | Customer city name |
locLat | Double | Optional | latitude |
loclon | Double | Optional | longitude |
productPosition | String | Optional | Product position of the product action |
totAffiliate | Double | Optional | Total affiliate charges |
totShipping | Double | Optional | Total shipping charges |
totOfferAmount | Double | Optional | Total offer amount |
totOfferIds | String Array | Optional | Offer Ids array |
propN | String/Custom | Optional | Additional Information can be passed in this field. N in propN varies from 1 to 50 |
Items Object Array
Item object array will have information on each item If there are multiple items in a single purchase order.
Parameter | Type | Required/Optional | Description |
productId | String | Required | Unique ID of product |
productBrand | String | Required | Brand Id of the product |
productCategory | String | Required | Product Category id path like id1/id2/id3 |
productVariant | String | Optional | Variant of the product of same product id |
sellerId | Long | Optional | Unique ID of the seller of the product |
listingId | String | Optional | Unique ID of the listing of product |
revenue | Double | Required | Revenue generated for the item per quantity |
offerAmount | Double | Optional | Discount given on the item per quantity |
quantity | Integer | Required | Quantity of the item purchased |
Data Ingestion – Product Catalog
To provide full funnel attribution, FCC AdMon service needs to store the entire catalog of the retailer. Based on the information stored in the catalog, FCC AdMon service would be able to show the metrics like:
- Orders
- Conversion Rate (attributed to ad clicks / views)
- Total Revenue
- ROI
Parameters required with the event:
Parameter |
Type |
Required/Optional |
Description |
id |
String |
Required |
Unique Product id of the item |
productAttributes |
Object |
Optional |
Attributes of the product |
skus |
Object Array |
Optional |
Listings for the product |
productAttributes Object
Parameter |
Type |
Required/Optional |
Description |
title |
Multilingual Map |
Required |
Title of the product |
description |
Multilingual Map |
Optional |
Description of the Product |
isActive |
Boolean |
Required |
Default value should be true |
eventTime |
Long |
Required |
EPOC in milliseconds. Eg: 1571544308105 |
link |
String |
Optional |
URL directly linking to your item’s page on your website |
mobileLink |
String |
Optional |
Link to a mobile-optimized version of the landing page |
imageLink |
String |
Optional |
URL of an image of the item |
additionalImageLinks |
String Array |
Optional |
Additional Image URLs |
brandId |
String |
Required |
Brand Id of the product |
categoryId |
String |
Required |
Category Id of the product |
itemGroupId |
String |
Optional |
Shared identifier for all variants of the same product |
price |
Double |
Optional |
Price of the item |
color |
Multilingual Map |
Optional |
Color of the item |
material |
Multilingual Map |
Optional |
Material of the product |
model |
String |
Optional |
Model designation |
mpn |
String |
Optional |
Manufacturer Product Number, usually assigned by Manufacturer |
upc |
String |
Optional |
UPC/EAN/ISBN/GTIN – globally recognized universal ids for the product. Should match the product variation. |
size |
Multilingual Map |
Optional |
Size of the item |
condition |
Multilingual Map |
Optional |
Condition of the item |
ageGroup |
Multilingual Map |
Optional |
Age Group for the item |
gender |
Multilingual Map |
Optional |
Gender of the item |
additionalAttributes |
Object Array |
Optional |
Attributes that are not listed above |
searchFilters |
Object Array |
Optional |
Filters to be used in search |
searchKeywords |
String |
Optional |
Keywords to be used for search |
skus Object Array
Parameter |
Type |
Required/Optional |
Description |
id |
String |
Required |
Sku id |
sellerId |
String |
Required |
Seller id for that particular listing |
isActive |
Boolean |
Required |
Default value is true, whether the listing is active or not |
price |
Double |
Required |
Price of that listing |
availability |
Enum |
Optional |
Whether the listing is available or not. Values accepted are AVAILABLE, OUT_OF_STOCK, COMING_SOON |
inventory |
Int |
Optional |
How much inventory is available for that particular listing |
Multilingual Map
{
“Lang1”: “value of that attribute in Lang1”,
“Lang2”: “value of that attribute in Lang2” and so on
}
Languages example : “en” for English, “es” for Spanish, “ar” for Arabic
additionalAttributes Object Array
Parameter |
Type |
Required/Optional |
Description |
Name |
Multilingual Map |
Required |
Additional Attribute Name |
value |
Multilingual Map |
Required |
Additional Attribute Value |
searchFilters Object Array
Parameter |
Type |
Required/Optional |
Description |
name |
String |
Required |
Search Filter Name |
value |
String |
Required |
Search Filter Value |