# 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:

# 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.form are used, due to the original misconfiguration.
  • AA event: prodView.
  • AA variables:
    • products sets 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.
    • eVar15 sets how did you hear about us value on checkout pages, if present.
    • eVar19 sets donation form appeal name, if present.
    • eVar32 sets donation company name, if present.
    • eVar21 sets the product name value; redundant because product names are uploaded into AA.
    • eVar29 sets the product category; redundant because the product category is passed into to the products variable.
    • eVar45 sets the fund name of the donation products; redundant because fund names are uploaded into AA.
    • eVar77 sets 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:
    • products sets 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.
    • eVar15 sets how did you hear about us value on checkout pages, if present.
    • eVar19 sets donation form appeal name, if present.
    • eVar32 sets donation company name, if present.
    • eVar21 sets the product name value; redundant because product names are uploaded into AA.
    • eVar29 sets the product category; redundant because the product category is passed into to the products variable.
    • eVar45 sets the fund name of the donation products; redundant because fund names are uploaded into AA.
    • eVar77 sets 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:
    • products sets 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.
    • eVar15 sets how did you hear about us value on checkout pages, if present.
    • eVar19 sets donation form appeal name, if present.
    • eVar32 sets donation company name, if present.
    • eVar21 sets the product name value; redundant because product names are uploaded into AA.
    • eVar29 sets the product category; redundant because the product category is passed into to the products variable.
    • eVar45 sets the fund name of the donation products; redundant because fund names are uploaded into AA.
    • eVar77 sets 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:
    • products sets 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.
    • eVar21 sets the product name value; redundant because product names are uploaded into AA.
    • eVar29 sets the product category; redundant because the product category is passed into to the products variable.
    • eVar45 sets the fund name of the donation products; redundant because fund names are uploaded into AA.
    • eVar77 sets 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:
    • products sets 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.
    • eVar21 sets the product name value; redundant because product names are uploaded into AA.
    • eVar29 sets the product category; redundant because the product category is passed into to the products variable.
    • eVar45 sets the fund name of the donation products; redundant because fund names are uploaded into AA.
    • eVar77 sets 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:
    • products sets 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.
    • eVar21 sets the product name value; redundant because product names are uploaded into AA.
    • eVar29 sets the product category; redundant because the product category is passed into to the products variable.
    • eVar45 sets the fund name of the donation products; redundant because fund names are uploaded into AA.
    • eVar77 sets 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:
    • products sets 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.
    • eVar15 sets how did you hear about us value on checkout pages, if present.
    • eVar19 sets donation form appeal name, if present.
    • eVar32 sets donation company name, if present.
    • eVar21 sets the product name value; redundant because product names are uploaded into AA.
    • eVar29 sets the product category; redundant because the product category is passed into to the products variable.
    • eVar45 sets the fund name of the donation products; redundant because fund names are uploaded into AA.
    • eVar77 sets 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:
    • products sets 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.
    • eVar15 sets how did you hear about us value on checkout pages, if present.
    • eVar19 sets donation form appeal name, if present.
    • eVar32 sets donation company name, if present.
    • eVar21 sets the product name value; redundant because product names are uploaded into AA.
    • eVar29 sets the product category; redundant because the product category is passed into to the products variable.
    • eVar45 sets the fund name of the donation products; redundant because fund names are uploaded into AA.
    • eVar77 sets the donation frequency; redundant as it is part of the product id.
    • eVar17 set the payment method for the transaction.
    • eVar18, purchaseID set the purchase id of the transaction. This is a truncated transaction id to accommodate AA limitations.
    • eVar31 set 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:
    • eVar12 sets the user's cid code.
    • eVar13 sets the user's donor id.
    • eVar69 sets the login type.
    • eVar70 sets the login location.
    • eVar79 sets the user's Luminate constituent id.
    • eVar80 sets the user's donor status.
    • eVar81 sets the user's friends asking friends status.
    • eVar82 sets the user's partner status.
    • eVar83 sets the user's sponsor status.