ROIVENUE Resources
  • Welcome to Roivenue
  • 🚀Roivenue Implementation
  • ❓FAQ
  • 📈Roivenue Training
    • Core Concepts
      • AI Data Driven Attribution
      • Click-based vs. Impression-based Touchpoints
    • Roivenue Features
      • Introduction
      • Model Comparison
      • Custom Dimensions
      • Configurable Dashboards
      • Performance Analysis
      • Filter Panel
      • Bookmarks
      • Dimension Breakdown
      • Budget Optimizer
      • Targets
      • Other Expenses
      • Measures
      • Users Management
    • Data Exports
      • Exports Overview
      • Export to a Google Sheet
      • Export to Azure Blob Storage
      • Export to Google Looker Studio
    • Roivenue for Chrome
    • Playbook
      • How to Identify Best Performing Channels
      • Evaluating Campaign Performance Over Time
    • Roivenue Help Center
  • 💻How To
    • Transaction Data Implementation
    • UTM Parameters
    • Sharing Acesses
    • Sharing GA4 Data through BigQuery
    • Roivenue Measurement Implementation
      • Implementation through GTM
        • Main Implementation
        • Tracking Through Own Subdomain
        • Custom Pageviews Tracking
        • Conversion tracking
      • Implementation without GTM
      • Impression Tracking
      • Implementation validation
  • 🔗Connectors
    • Connectors Overview
      • Advanced Editor
      • JSON Structure Description
    • Google Ads Customization
      • Googlue Ads - Supported Columns
    • Meta Ads Customization
      • Meta - Supported Columns
    • Special Authorization Procees
      • Árukereső
      • Compari
      • Heureka
      • Shoptet
      • Sklik
  • 📖Glossary
    • Marketing and Financial Glossary
      • Delivery Ratio
      • Gross Profit
      • Gross Margin
      • Deliveries
      • Margin Return on Marketing Investment (mROMI)
      • Cost Per Click (CPC)
      • Impressions
      • Marketing Investment Ratio (MIR)
      • Marketing Profit
      • Return on Marketing Investment (ROMI)
      • Cost Per Impression (CPI)
      • Clicks
      • Conversion Rate
      • Cost Per Thousand Impressions (CPT)
      • Cost of Goods Sold
      • Cost Per New Customer Acquisition (CPA)
      • Visits
      • Click-Through Rate (CTR)
      • Average Order Value (AOV)
      • Sales Revenue
      • Return on Investment (ROI)
Powered by GitBook
On this page
  • Auto-capture
  • Send event directly
  • Translation Tags

Was this helpful?

  1. How To
  2. Roivenue Measurement Implementation
  3. Implementation through GTM

Conversion tracking

There are multiple options to track conversions into Roivenue. We will cover three most common ones.

PreviousCustom Pageviews TrackingNextImplementation without GTM

Last updated 2 months ago

Was this helpful?

METHOD
IMPLEMENTATION COMPLEXITY
WHEN TO USE?

Auto-capture

Trigger adjustment

Customizations of tracked events are not necessary.

Send event directly

One custom HTML tag and trigger

There is a need to adjust payload of conversion events. Giving you absolute freedom in the payload you send.

Translation tags

One custom HTML tag and trigger

When changes to otherwise captured properties are needed. Adding additional properties is not supported.

These approaches can be combined, but make sure not to double-count any conversions while doing so.

Auto-capture

If you have followed the Main Implementation and want to track purchases from the e-commerce module, you must only ensure proper triggers for the main tracking tag. This typically requires adding a purchase event as a trigger for it.

Send event directly

Another option is to use the Roivenue global tracking object to capture events directly. This is handy for customizing the purchase event's fields or capturing custom conversions. Before implementing this logic, remove purchase events from the automatically collected events in the roivenue.tracking.config variable.

This is what a script for tracking this event can look like:

posthog.Roivenue.capture('conversion', {
    conversionType: 'MyCustomPurchase', 
    conversionId: {{conversionId}}, 
    conversionValue: {{conversionValue}}, 
    currencyCode: {{currencyCode}},
    customField1: {{...someProps}}
});

Ensuring the main tracking script is initialized before the custom event is sent is essential.

We can use a setup tag in tag sequencing or adjust the trigger. This is how a tag sequence option would look like:

Translation Tags

In a situation when you want to track a conversion and you already have details about the conversion in dataLayer (which may be already used by some other GTM tag) but the data structure of the conversion does not match either the Google Ecommerce or Roivenue Measurement standard, you can create a new tag that will convert the data structure or change the logic how the event is triggered. To implement this you need to:

  1. Make sure the event type already in dataLayer is not listed in event_types in roivenue.tracking.config variable. This is necessary to avoid duplicate events.

  2. create a new tag that will be triggered by the event you would like to track. The tag will read the event data, translate it into roivenue format and then push a new event of type “roivenue_measurement_event” into dataLayer.

  3. roivenue measurement tag is triggered by this event and captures it with its payload. The field type in the payload will work as the event type of the captured event.

An example of the tag is below.

The tag is being triggered by a standard conversion trigger. The tag reads the transaction details from a dataLayer variable named transactionData. Then it pushes a new event roivenue_measurement_event. This would be equivalent of calling this:

DataLayer.push({
'event' : 'conversion',
'conversionId': {{transactionData.orderId}},
'conversionType': 'purchase',
'conversionValue' : {{transactionData.orderAmount}},
'currencyCode' : {{transactionData.currency}}
});

dataLayer.push({

Here is another example of a conversion tag. Its code does not use variables but use directly contents of dataLayer. It searches for the last event of type “purchase” in dataLayer and then translates and pushes a new event.

if (dataLayer) {
 for (var i = dataLayer.length - 1; i >= 0; i--) {
  
  var item = dataLayer[dataLayer.length - 1];
   
   if (item.event == 'purchase') {
    
    dataLayer.push({
     event: 'roivenue_measurement_event',
     type : 'conversion',
     conversionId: item.purchaseData.orderId,
     conversionType: 'purchase',
     conversionValue : item.purchaseData.orderAmount,
     currencyCode : item.purchaseData.currency 
    });
    
      break; 
     } 
    }
   }

The event fields needed for conversion processing are described in the Tracking Purchases and Other Conversions section of the .

💻
Main Implementation
main implementation guide
Example of a translation tag