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.

Always set the import to Merge!
  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!

Fill in all the needed information

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

Add all necessary triggers

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

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.

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.

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.

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.

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.

  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.

Cross Domain Tracking in Cookieless Mode

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>

More about referrer policy: Referrer-Policy - HTTP | MDN

Roivenue platform uses PostHog for analytics. PostHog is licensed under the MIT License. For more details, please see PostHog's GitHub repository or the full MIT License text.

Last updated

Was this helpful?