Main Implementation

Implementation of Roivenue Measurement

Prerequisites

  • Property ID - You will need this to set up your script correctly. Contact your account manager to obtain it.

Initial Setup

  1. Download the GTM container here.

  2. Go to your GTM (at https://tagmanager.google.com/ )

  3. Go to Admin tab select β€œImport container”, select the container file you have downloaded. Select the workspace you want to import to and set β€œmerge” option - as on the picture bellow.

  1. Go to section β€œVariables”

  2. Click on roivenue.tracking.config and change the values in the JSON object:

    1. property_id - Insert a Property Id provided by your account manager

    2. api_url - Should be "https://tr.roivenue.com” unless you implement a custom tracking domain. In that case, change the parameter accordingly.

    3. currency_code - the default currency code that will be used for tracking purchases used in case that the currency is not specified in purchase object

    4. event_types - List of dataLayer events that are automatically being captured when the measurement tag is triggered. More about possible changes in the Capturing Events section. Remember that you still need to set the tag triggers!

Setting up Triggers

In this step, you are setting up when Roivenue Measurement script should run. By default it runs with every page view and with every Roivenue Measurement Event - a custom event you can set up only for Roivenue Measurement.

  1. Navigate to Tags section.

  2. Select roivenue.tracking code.

  3. Go to the section β€œTriggering” and add all triggers when you want Roivenue Measurement script to run

The expected additional triggers are those which fire on all of your conversion events and also a trigger indicating a change in consent from a visitor. (By including this, you can switch between cookie and anonymous tracking within one session, if the consent is collected after the start of that session.)

Capturing Events

When the roivenue.tracking script is being executed during the first load, it automatically records a page view event. Then it walks through all objects in dataLayer. If the object is an event and the event type is specified in event_types (in configuration), the event is automatically captured. Every other time the script is executed, it processes only the new events (according to event_types) in the dataLayer since the last run.

By default these event types are being tracked automatically:

  • page_view

  • conversion

  • purchase

  • ecomm_purchase

The default configuration works for most businesses. If you need to customize the behavior or change how events parameters are defined, you will find more details in separate pages for custom pageview tracking and custom conversion tracking.

Tracking Page Views

Page view is tracked automatically when the page is loaded at the first time. The default settings works for majority of cases. If you have a single page application or have problem with a duplication of page views, go to Custom Pageview Tracking article.

Tracking Users

If β€˜user’ object is set in any event item in dataLayer, we use the user.id as the unique user identifier. This is then used for identifying users and connecting their path across multiple devices. Eg:

dataLayer.push({'user' : {'id':123}});

This can significantly help with reconstruction of customer journeys, especially, if you have a lot of signed users.

The User ID should not be a personal sensitive information. For privacy protection reasons it is recommended to use an artificial identifier or a hash.

Tracking Purchases and Other Conversions

If you already have Google Analytics ecommerce.purchase event in dataLayer, you do not need to implement anything because we will use the following fields to track a purchase conversion.

  • value - the conversion value

  • tax - the tax

  • currency - three letter ISO-4217 code of currency

  • transaction_id - the transaction ID

And we save them into these variables in Roivenue:

  • conversionType: 'purchase'

  • conversionId: transaction_id

  • conversionValue: value - tax

  • currencyCode: currency

This is how the event in your dataLayer should look like.

window.dataLayer.push({
	event: 'purchase',
	ecommerce: {
		transaction_id: "T_12345",
		value: 25.42,
		tax: 4.90,
		shipping: 5.99,
		currency: "USD"
	}
});

In case you would like to track more conversions than just a purchase or you are sending purchases to your dataLayer in a format which is different from the example above, you can.

It is possible to track any number of conversions by pushing conversionevent into the dataLayer.

  1. If you want to send additional conversion, these are the parameters you need to send in the conversion event:

  • conversionType - What type of conversion it is.

  • converisonValue - the value without tax in specified currency

  • currencyCode - Three letter ISO-4217 code of currency

  • conversionId - an optional parameter which we recommend using in case you want to identify unique conversions later.

dataLayer.push({
  'event' : 'conversion', 
  'conversionId': 'T_12345', // optional
  'conversionType': 'goal1', 
  'conversionValue' : 123, 
  'currencyCode' : 'CZK'
});

You can add additional fields to the tracked object if you need. Consult this with our support.

If you already have some conversion event object in dataLayer, but the event or some of its parameters are named differently, there is an option how to use these in Roivenue Measurement. The recommended way is described in the Translation Tags page.

Setting up Consents and Anonymous Tracking

Roivenue Anonymous Tracking can be used to track users without using any cookies and to tracks users in a limited scope.

By default the Roivenue Measurement is enabled only when consent with analytical cookies has been set via tag manager. If you want to measure in a cookieless mode, you need to modify the tag consent settings.

If you have your CMP integrated with GTM, you can use Consent Settings on roivenue.measurement tag to trigger only when a specific consent has been granted by user. Go to roivenue.measurement tag and specify β€œRequire Additional Consent”.

Alternatively (for example if your CMP is not integrated with GTM consent system) you can edit roivenue.tracking.enabled variable implementation. Roivenue measurement will be completely disabled if the variable returns false.

If you decide to make the tag enabled regardless of GTM consent, set the tag’s Consent Settings / Additional Consent Checks to β€œNot set” and use consents from any other source.

By default when Roivenue Measurement tag is triggered, It automatically reads the consent settings from dataLayer and use different persistence settings based on setting of analytics_storage consent variable.

You should always set up your consent to be pushed to dataLayer as well. It is possible that your CMP updates information in Google Tag Manager that the analytics_storage has been granted but does not push this information to dataLayer. In such case, Roivenue Measurement tag will measure but will measure in anonymous mode without cookies. Which can produce less precise results.

  1. Go to Variables.

  2. Open the roivenue.tracking.enabled

  3. Set up the variable in a way that it will return β€œTrue” in case the visitor should be tracked (either in a cookie mode or anonymous mode, this will be set up later). In a case you want to completely exclude user from tracking, this variable should return β€œFalse”

  4. Open the roivenue.tracking.persistence variable.

  5. Set it up in a way it returns localStorage+cookie in case you want to measure a user using cookies. If you want to measure this user in an anonymous mode, this variable should return sessionStorage.

  6. When a user changes his consent, you should reflect this change in the value returned by roivenue.tracking.persistence and potentially also in the roivenue.tracking.enabled depending on your implementation.

You are using a custom consent management system and because of that, the steps above are more generic and you need to implement it using outputs from that CMS.

As we only act as a data processor, you are responsible for setting up the Roivenue Measurement in line with applicable legislation in your country.

Cross Domain Tracking in Cookieless Mode

This section is relevant to you only in case your page consists of multiple subdomains. For example: yourshop.com for the store and checkout.yourshop.com for the checkout.

with enabled cookeis, then the events will be connected a single visit. But if user does the same in cookieless mode, there would be a second visit at checkout.yourshop.com and all conversions then would be tracked with www.yourshop.com as a referrer traffic source.

To prevent this:

1. Set write_cross_domain_info in roivenue.measuerement.config to true.

This will put our unique device identifier into page url. Our tag modifies the page url by inserting &rm_cd_cid=xxx-unique-device-id into url query parameters. In rare case it would conflict with some your query parameter, you can change the parameter name by setting modifying cross_domain_query_parameter or setting cross_domain_use_fragment to true, to put the parameter into url fragment instead.

  1. A referrer policy needs to be set to allow this mechanism to work.

You need to either enable passing full referrer information to other domain either globally by including this in page header:

<meta name="referrer" content="no-referrer-when-downgrade" />

or by setting the referrer policy for a specific link:

<a href="https://checkout.yourshop.com" referrerpolicy="no-referrer-when-downgrade">…</a>

Last updated