Google Tag Manager

❗️

For Developers

This document assumes a technical familiarity with the Google Tag Manager product, and provides technical details about Universe's GTM integration. If you are a host building an advanced integration with GTM, please direct the developer you are working with to this document.

If you are looking for configuration help, please refer to our help desk article.

Universe supports the integration of Google Tag Manager to run scripts during various points in the ticket buying experience. This integration exists to support use cases like:

  • Firing conversion events (pixel trackers) after a purchase has completed
  • Tracking entrance into the checkout funnel, to calculate bounce rate/dropoff
  • Tracking dropoff to build retargeting funnels

To support the above use cases, and more, we provide a number of custom events on which GTM containers can hook tags. Along side these custom events, we provide custom variables which your tags can use. For more information about how custom events and custom variables work with Google Tag Manager in general, please refer to their help article about the subject.

For information on configuring your events with Google Tag Manager please refer to our help desk article.

Custom Events

Event NameDescription
view-listingA view to your event page on universe.com
get-ticketsExecuted on the first step of the checkout experience - the ticket selection page
confirmationExecuted after a purchase has successfully completed

Custom Variables

view-listing

/**
 * @flow
 */

type ViewListingVariablesSpec = {
  listing_id: string,
  listing_title: string
}
{
  listing_id: "593059cde4403a7189729817",
  listing_title: "End of Unix Time"
}

get-tickets

/**
 * @flow
 */

type GetTicketsVariablesSpec = {
  listing_id: string,
  listing_title: string
}
{
  listing_id: "593059cde4403a7189729817",
  listing_title: "End of Unix Time"
}

confirmation

/**
 * @flow
 */

type ConfirmationVariablesSpec = {
  access_key_used: bool,
  discount_used: bool,
  num_tickets: number,
  order_id: string,
  listing {
    id: string,
    title: string,
    country: string
  },
  tickets: Array<{
    rate_id: string,
    host_fields: Array<{
      id: string,
      name: string,
      value: string
    }>
  }>,
  buyer: {
    first_name: string,
    last_name: string,
    email: string
  },
  cost_breakdown: {
    commission: number,
    currency: string,
    discount: number,
    payment: number
  }
}
{
  access_key_used: false,
  discount_used: false,
  num_tickets: 1,
  order_id: "593059cde4403a7189729816",
  cost_breakdown: {
    commission: 2.22,
    currency: "USD",
    discount: 0.0,
    payment: 12.22
  },
  tickets: [{
    host_fields: [
      {
        id: "5879ad906672e70036d58ba7",
        name: "First Name",
        value: "Kieran"
      }, 
      {
        id: "5879ad906672e70036d58bab",
        name: "Last Name",
        value: "Huggins"
      },
      {
        id: "5879ad906672e70036d58bac",
        name: "Email",
        value: "[email protected]"
      }
    ],
    rate_id: "5879ad906672e70036d58bb0"
  }],
  buyer: {
    first_name: "Kieran",
    last_name: "Huggins",
    email: "[email protected]"
  }
}