Main Implementation
Last updated
Last updated
Property ID - You will need this to set up your script correctly. Contact your account manager to obtain it.
Download the GTM container here.
Go to your GTM (at https://tagmanager.google.com/ )
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.
Go to section βVariablesβ
Click on roivenue.tracking.config
and change the values in the JSON object:
property_id
- Insert a Property Id provided by your account manager
api_url
- Should be "https://tr.roivenue.comβ unless you implement a custom tracking domain. In that case, change the parameter accordingly.
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
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!
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.
Navigate to Tags section.
Select roivenue.tracking
code.
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.)
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.
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.
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:
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.
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.
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 conversion
event into the dataLayer
.
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.
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.
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.
Go to Variables.
Open the roivenue.tracking.enabled
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β
Open the roivenue.tracking.persistence
variable.
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
.
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.
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.
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