# How Transactions Are Tracked in DTM & Adobe Analytics
This document outlines the complete product transaction workflow. This workflow applies to all transactions but may be modified for different transaction flows based on what screens are available.
Abbreviations:
- AA - Adobe Analytics
- DTM - Data Tag Manager or Adobe Launch after July 2020
The complete list of transaction events in order they happen:
- View a product
- Add a product to the cart
- Remove a product from the cart
- View the cart, if a cart is present
- View shipping page, if present
- View billing page, if present
- View review page or an attempt to purchase
- Successful purchase
- Automatic user login
# Product View
Event should be called when a product page is viewed.
- DTM event:
ecommerce_product_view. - Data layer property:
digitalData.cart.viewProduct. For Luminate donations only,digitalData.donation&digitalData.formare used, due to the original misconfiguration. - AA event:
prodView. - AA variables:
productssets details about all products viewed on the page by following the AA pattern (opens new window). The product string will contain:- product category,
- product id,
- quantity,
- total price, may be omitted as AA does not store this value at this point.
eVar15sets how did you hear about us value on checkout pages, if present.eVar19sets donation form appeal name, if present.eVar32sets donation company name, if present.eVar21sets the product name value; redundant because product names are uploaded into AA.eVar29sets the product category; redundant because the product category is passed into to theproductsvariable.eVar45sets the fund name of the donation products; redundant because fund names are uploaded into AA.eVar77sets the donation frequency; redundant as it is part of the product id.
# Add to Cart
Event should be called when a product is added to the cart. On donation pages, it should be called when the donation amount changes from 0 to any number greater than 0.
- DTM event:
ecommerce_add_to_cart. - Data layer property:
digitalData.cart.addProduct. - AA event:
scAdd. - AA variables:
productssets details about all products viewed on the page by following the AA pattern (opens new window). The product string will contain:- product category,
- product id,
- quantity,
- total price, may be omitted as AA does not store this value at this point.
eVar15sets how did you hear about us value on checkout pages, if present.eVar19sets donation form appeal name, if present.eVar32sets donation company name, if present.eVar21sets the product name value; redundant because product names are uploaded into AA.eVar29sets the product category; redundant because the product category is passed into to theproductsvariable.eVar45sets the fund name of the donation products; redundant because fund names are uploaded into AA.eVar77sets the donation frequency; redundant as it is part of the product id.
# Remove from Cart
Event should be called when a product is removed from the cart. On donation pages, it should be called when the donation amount changes from any number greater than 0 to 0.
- DTM event:
ecommerce_remove_cart. - Data layer property:
digitalData.cart.removeProduct. - AA event:
scRemove. - AA variables:
productssets details about all products viewed on the page by following the AA pattern (opens new window). The product string will contain:- product category,
- product id,
- quantity,
- total price, may be omitted as AA does not store this value at this point.
eVar15sets how did you hear about us value on checkout pages, if present.eVar19sets donation form appeal name, if present.eVar32sets donation company name, if present.eVar21sets the product name value; redundant because product names are uploaded into AA.eVar29sets the product category; redundant because the product category is passed into to theproductsvariable.eVar45sets the fund name of the donation products; redundant because fund names are uploaded into AA.eVar77sets the donation frequency; redundant as it is part of the product id.
# View Cart Page
This event should be called when a cart page is displayed. As of November 2019, this is only in use on gift catalog and sponsorship purchases.
- DTM event:
ecommerce_cart_view. - Data layer property:
digitalData.transaction. - AA event:
scView. - AA variables:
productssets details about all products viewed on the page by following the AA pattern (opens new window). The product string will contain:- product category,
- product id,
- quantity,
- total price.
eVar21sets the product name value; redundant because product names are uploaded into AA.eVar29sets the product category; redundant because the product category is passed into to theproductsvariable.eVar45sets the fund name of the donation products; redundant because fund names are uploaded into AA.eVar77sets the donation frequency; redundant as it is part of the product id.
# View Shipping Page
This event should be called when a shipping page is displayed. As of November 2019, this is not in use since the gift catalog is not configured to sell any shippable products.
- DTM event:
ecommerce_shipping_view. - Data layer property:
digitalData.transaction. - AA event:
event40. - AA variables:
productssets details about all products viewed on the page by following the AA pattern (opens new window). The product string will contain:- product category,
- product id,
- quantity,
- total price.
eVar21sets the product name value; redundant because product names are uploaded into AA.eVar29sets the product category; redundant because the product category is passed into to theproductsvariable.eVar45sets the fund name of the donation products; redundant because fund names are uploaded into AA.eVar77sets the donation frequency; redundant as it is part of the product id.
# View Billing Page
This event should be called when a billing page is displayed. This is a page where the billing address and payment method are entered. Standard Luminate online donation forms do not register this view as the donation pages is product page, cart, and billing page all at once.
- DTM event:
ecommerce_billing_view. - Data layer property:
digitalData.transaction. - AA event:
event55. - AA variables:
productssets details about all products viewed on the page by following the AA pattern (opens new window). The product string will contain:- product category,
- product id,
- quantity,
- total price.
eVar21sets the product name value; redundant because product names are uploaded into AA.eVar29sets the product category; redundant because the product category is passed into to theproductsvariable.eVar45sets the fund name of the donation products; redundant because fund names are uploaded into AA.eVar77sets the donation frequency; redundant as it is part of the product id.
# Review Page View
This event should be called on the transaction review, one step before the thank you page. If no review page is present, the event should be called when the user attempts to make a purchase before the transaction is processed. One example, is standard Luminate donation pages. This event is called when the user clicks Submit button at the end of the form.
- DTM event:
ecommerce_review_view. - Data layer property:
digitalData.transaction. - AA event:
scCheckout. - AA variables:
productssets details about all products viewed on the page by following the AA pattern (opens new window). The product string will contain:- product category,
- product id,
- quantity,
- total price, may be omitted as AA does not store this value at this point.
eVar15sets how did you hear about us value on checkout pages, if present.eVar19sets donation form appeal name, if present.eVar32sets donation company name, if present.eVar21sets the product name value; redundant because product names are uploaded into AA.eVar29sets the product category; redundant because the product category is passed into to theproductsvariable.eVar45sets the fund name of the donation products; redundant because fund names are uploaded into AA.eVar77sets the donation frequency; redundant as it is part of the product id.
# Successful Purchase
This should be called only once when the transaction successfully processes.
- DTM event:
ecommerce_thankyou_view. - Data layer property:
digitalData.transaction. - AA events:
purchase,event109,event110. - AA variables:
productssets details about all products viewed on the page by following the AA pattern (opens new window). The product string will contain:- product category,
- product id,
- quantity,
- total price, may be omitted as AA does not store this value at this point.
eVar15sets how did you hear about us value on checkout pages, if present.eVar19sets donation form appeal name, if present.eVar32sets donation company name, if present.eVar21sets the product name value; redundant because product names are uploaded into AA.eVar29sets the product category; redundant because the product category is passed into to theproductsvariable.eVar45sets the fund name of the donation products; redundant because fund names are uploaded into AA.eVar77sets the donation frequency; redundant as it is part of the product id.eVar17set the payment method for the transaction.eVar18,purchaseIDset the purchase id of the transaction. This is a truncated transaction id to accommodate AA limitations.eVar31set the transaction id of the transaction.
# User Automatic Login Check
If the system automatically logs in users upon registration the standard user login event should be fired. As of November 2019, this only applies to the Luminate transactions. This is because Luminate is the platform of record and it that automatically logs users in upon the first successful transaction. When a new user processes a donation, gift catalog, or sponsorship transaction the code will attempt to check the user's login state first. The code to track the transaction in analytics is executed after the login state check code. Because the user's login state requires an API call the user's data may not be available at the time the transaction is recorded. When a new user registers for an event or a TeamRaiser event the automatic login will be detected immediately after the registration page. That's when the Luminate creates a new user record. For regular events, this will happen on the billing page. For TeamRaiser events, this will happen on a review, a waiver page, if the event is configured to have registration as a third step in the flow. If the registration step is configured to be the first step, the check will happen on a team selection or participation option page.
- DTM event:
site_reg_login. - Data layer property:
digitalData.user. - AA events:
event74. - AA variables:
eVar12sets the user's cid code.eVar13sets the user's donor id.eVar69sets the login type.eVar70sets the login location.eVar79sets the user's Luminate constituent id.eVar80sets the user's donor status.eVar81sets the user's friends asking friends status.eVar82sets the user's partner status.eVar83sets the user's sponsor status.