Google Analytics / GTM events

How event tracking works on your flipbook when you add Google Analytics or Google Tag Manager integration.

Google Analytics

We track Pageviews (both initial load and if end user pages the flipbook) in Google Analytics. On top of that, we also track various Events across our flipbooks. Take a look at the list below for a full list of events.

Events

All events are tracked to the iPaper events category in the following formats:

Universal Analytics (UA):

window.ga(tracker.get('name') + '.send', {
	hitType: 'event',
	eventCategory: 'iPaper events',
	eventAction: [ACTION],
	eventLabel: [LABEL]
});

Google Analytics 4 (GA4):

window.gtag('event', [EVENT NAME], {
	event_category: 'iPaper events',
	event_label: [LABEL],
	event_title: [ACTION],
	event_action: [ACTION]
});

Note:

Google Analytics 4 (GA4) does not by default collect event categories, so event names in GA4 have ‘ipf_’ prepended for iPaper Flipbook events

Note:

When using Google Analytics 4 (GA4), the contents of event_label are also sent as individual event parameters prepended with ‘ip_’

Overview

Note:

Dependent on whether you are using Universal Analytics (UA) or Google Analytics 4 (GA4) the event names will be slightly different

Note:

The values in [] will be replaced with context specific value before sending the event.

Example

For example, when somebody searches for “Cute puppies” in your flipbook, we will track it as such via the “Search” event:

Universal Analytics (UA):

window.ga(tracker.get('name') + '.send', {
	hitType: 'event',
	eventCategory: 'iPaper events',
	eventAction: 'Search',
	eventLabel: 'Term: Cute puppies'
});

Google Analytics 4 (GA4):

window.gtag('event', 'ipf_search', {
	event_category: 'iPaper events',
	event_label: 'Term: Cute puppies',
	event_title: 'Search',
	event_action: 'Search',
	ip_term: 'Cute puppies'
});

If you need help setting up Google Analytics on your iPaper account, have a look at our Integrate Google Analytics With iPaper Google Analytics Tracking guide.

Google Tag Manager

Similar to Google Analytics, we track Pageviews (both initial load and if end user pages the flipbook) in Google Tag Manager. Pageviews on GTM are tracked as such:

window.dataLayer.push({
	event: 'virtualPageview',
	virtualPageUrl: [FLIPBOOK_PAGE_URL],
	virtualPageTitle: [FLIPBOOK_PAGE_TITLE],
});

On top of that, we also track various Events across our flipbooks.

Note:

When using Google Tag Manager to track to Google Analytics, it’s important that you haven’t also defined an Analytics Tracking ID, since this will result in pageviews and events getting tracking twice or more. If Google Tag Manager is not used to track to Google Analytics, it’s okay to include both tags, but it’s adviced to stick with one or the other to keep your tracking as simple as possible.

Events

For all events we support, we’ll push the raw event data and the Category, Action and Label that we’d push to Google Analytics for the similar event.

For the events below we will push to the data layer in the following format

window.dataLayer.push({
	'event': [EVENT_NAME],
	'ipaperEventParams': [EVENT_DATA],
	'ipaperEventCategory': [GOOGLE_ANALYTICS_EVENT_CATEGORY],
	'ipaperEventAction': [GOOGLE_ANALYTICS_EVENT_ACTION],
	'ipaperEventLabel': [GOOGLE_ANALYTICS_EVENT_LABEL]
});

Overview

Example

An example of a DataLayer push for the event ipaperEvent_externalLinkClick could look like this:

window.dataLayer.push({
	'event': 'ipaperEvent_externalLinkClick',
	'ipaperEventParams': {
		HoverText: 'The clicked links hover text', 
		Url: 'http://ipaper.io/', 
		Page: 12
	},
	'ipaperEventCategory': 'iPaper events',
	'ipaperEventAction': 'External Link Click',
	'ipaperEventLabel': 'HoverText: The clicked links hover text | Url: http://ipaper.io/ | Page: 12'
})

Page element click tracking on GTM

Aside from the events listed above, we also track the PageElementClicked event, but it’s only triggered for the internal & external linktype.

Event labels in GA and GTM

The data format below is represented in JSON. It is converted to a string for the eventLabel object using the following convention:

  • Key names are PascalCased

  • Key-value pairs are separated by the pipe character |

Example:

{
  HoverText: [LINK_HOVER_TEXT],
  Url: [EXTERNAL_URL],
  Page: [PAGE_NUMBER]
}

…is converted into:

HoverText: [LINK_HOVER_TEXT] | Url: [EXTERNAL_URL] | Page: [PAGE_NUMBER]

Last updated