ConversionAttribution
Setting up automatic conversion reporting helps Rokt Ads clients measure the impact of your campaigns on your business. Rokt offers a variety of ways to integrate your conversion data. For greatest accuracy, we recommend using the Web SDK or Event API. The instructions for each method are listed below.
Though less accurate, we also support conversion reporting through file transfer and manual upload.
Shopify store owners can install the Rokt Shopify app with one click to start reporting conversion data. Contact your account manager if you'd like to explore the Shopify option.
Please see our Rokt Ads integration hub for detailed integration steps.
Web SDK
The Rokt Web SDK is a JavaScript library that lets you automatically report conversions from the frontend of your website.
Add the Web SDK
Get your unique integration code from your Rokt account manager, or generate it yourself in my.rokt.com.
Log-on to my.rokt.com.
Click your account.
Click Integrations.
Click Set up the Snippet.
Select Record conversions.
Choose a customer identifier so that Rokt can correctly match campaign events to conversions. We recommend using raw or hashed (SHA-256) customer email address as an identifier.
noteAs an alternative to hashed or raw email, you can use the Rokt ID (
passbackconversiontrackingid
) as an identifier. This method takes more work from your development team, but doesn’t require any personally identifiable information.Add relevant data attributes. Contextual data helps Rokt learn more about what campaigns and audiences are most effective for your business. We use these learnings to optimize for acquisition and help your campaigns perform better in the future.
Your integration code will look something like this:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Meta tags -->
<!-- Part #1 - Load the Web SDK -->
<script type="module">
window.RoktLauncherScriptPromise = new Promise((resolve, reject) => {
const target = document.head || document.body;
const script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://apps.rokt.com/wsdk/integrations/launcher.js";
script.fetchpriority = "high";
script.crossOrigin = "anonymous";
script.async = true;
script.id = "rokt-launcher";
script.addEventListener('load', () => resolve());
script.addEventListener('error', (error) => reject(error));
target.appendChild(script);
});
</script>
<!-- Other scripts and meta tags -->
</head>
<body>
<!-- Your HTML content here -->
<!-- Part #2 - As soon as the data attributes are available, execute the below script to display a Rokt placement -->
<script type="module">
await window.RoktLauncherScriptPromise;
const launcher = await window.Rokt.createLauncher({
accountId: "rokt-account-id"
});
await launcher.selectPlacements({
attributes: {
//customer identifier - at least one required
email: "john.smith@gmail.com",
emailsha256: "",
passbackconversiontrackingid: "",
firstname: "",
lastname: "",
conversiontype: "",
billingzipcode: "",
amount: "",
mobile: "",
currency: "",
quantity: "",
paymenttype: "",
margin: "",
confirmationref: "",
},
});
</script>
<!-- Your HTML content here -->
</body>
</html>
The explanation of the various parts of the code example can be found in Web SDK Library documentation.
If you are copying the above example, ensure rokt-account-id
is replaced with your account's unique ID before continuing to the next step. You can get your rokt-account-id
from your account manager or from my.rokt.com.
Add the integration code to your confirmation page.
You should place the integration code on any page that immediately follows a conversion event, typically a confirmation or thank you page. Paste the integration code directly into the HTML on the page, following the suggested structure.
Ensure that the integration records all conversions on your site. Rokt can then handle the attribution process to determine what conversions resulted from a Rokt campaign event.
Tag managersYou can add the Rokt integration code to your site using a tag manager, but it may result in reduced performance due to some conversion events being dropped. For best results, we recommend the direct integration described on this page.
Populate your data attributes. Ensure that at least your customer identifier (email or Rokt ID) is populated with the correct data. Also configure any data attributes.
- If you want to use hashed email address as an identifier, you can use Rokt’s pre-built hashing function. You can find additional information on the Two Step Data Integration page.
Test that the integration is engaging and contains the correct data. View testing instructions.
For optimal performance, consider integrating both the Event API and Web SDK. Using both methods creates redundancy and helps identify any anomalies that may occur in the browser or on your server.
Event API
The Event API offers another options for advertisers looking to integrate conversion data with Rokt. Using the Event API, your backend server can securely connect to Rokt's, transmitting conversion data in real time.
Using the Event API as a standalone integration for conversion data provides multiple benefits:
- Speed: Enables a fully automated, near-real time data exchange, maximizing the potential of Rokt’s automated optimization tools.
- Coverage: Permits integration of events across all channels and devices, resulting in coverage for conversions across web, mobile, and in-store.
- Reliability: As a server-to-server integration, the Event API is not susceptible to any interference by web technologies such as browser or ad blocking. It also supports error handling, ensuring that data is never lost.
Add the Event API
Make sure you can log in to Rokt's my.rokt.com and obtain your Account ID. If you don't have an account, reach out to your account manager.
Get your public and secret key. Reach out to your account manager to receive this key set.
Assemble your payload for the Event API. You can use the
POST /v2/events
endpoint to send any type of conversion event to Rokt.For this use case, always set
eventType
toconversion
so that Rokt knows to trigger the conversion attribution process.Include relevant key-value pairs in the
objectData
. Providing relevant contextual data helps Rokt better optimize your campaigns in the future.Rokt requires at least one of email (
email
), SHA-256 hashed email (emailsha256
), or Rokt ID (passbackconversiontrackingid
) so that Rokt can identify the customer. SuggestedobjectData
fields are available in the table below.
Full endpoint referenceView full reference details for the Event API.
Sample
POST /v2/events
{
"accountId": "12345",
"events": [
{
"clientEventId": "ff3bd69c-ca74-4337-af91-4d5d0bd00e38",
"eventTime": "2020-05-22T10:21:29.339Z",
"eventType": "conversion",
"objectData": [
{
"name": "email",
"value": "email123@emailserver.com"
},
{
"name": "transactionid",
"value": "123456789"
},
{
"name": "amount",
"value": "99.80"
},
{
"name": "currency",
"value": "USD"
},
{
"name": "quantity",
"value": "2"
},
{
"name": "conversiontype",
"value": "hotel_booking"
},
{
"name": "margin",
"value": "10"
},
]
}
]
Suggested objectData
fields
The objectData
object is made up of key-value pairs that contain metadata about the event. In order to properly attribute conversions, you must include one of email (email
), SHA-256 hashed email (emailsha256
), or Rokt ID (passbackconversiontrackingid
) in objectData
so that Rokt can identify the customer.
For the conversion reporting use case, we recommend you include the following attributes.
Field name | Description | Example |
---|---|---|
email | Email passed as plain text, lowercase and without trailing spaces | john@email.com |
emailsha256 | SHA256 hash of email address. Prior to hashing, lowercase and without trailing spaces. | fab1e2e699b3b927cbf875046a64f222 5df02d5cb306f3857424c2bbb87be61f |
passbackconversiontrackingid | Also known as Rokt ID. A Rokt-generated ID used to match conversion events to the originating click. Requires a separate integration. | 1bc29b36f623ba82aaf6724fd3b16718 |
amount | Value of the transaction (allows decimal points) | 100.25 |
currency | Currency code | USD |
quantity | The quantity (integer) of item within the specific conversion | 4 |
conversiontype | Used to differentiate between different conversion events. Note: Only applicable if the default conversion event type is provided. | ticketpurchase , seatupgrade signup |
productname | The name of the product(s) purchased. You can separate multiple items with a comma. | Maroon 5 t-shirt, Warriors vs. Raptors |
sku | The identifier of the product purchased (Note: Only accepts one SKU) | 230847 , tshirt-blue-39487 , 398fhdnff |
paymenttype | The payment method used during the transaction | VISA , American Express |
margin | Profit margin of conversion | 10 |
transactionid | Transaction ID, used to identify a unique transaction. Note: If provided, Rokt uses this identifier to deduplicate conversion events across channels. | ABC789 |
confirmationref | Confirmation reference ID. Alternate identifier that may be used to identify a unique transaction and/or track order confirmations. Note: If provided, Rokt uses this identifier to deduplicate conversion events and transactionid is unavailable. | XYZ123 |
firstname | Customer's first name | John |
lastname | Customer's last name | Smith |
mobile | Mobile phone number of converting customer | 3053211654 , +1 (323) 867-5309 |
ipaddress | Customer's IP address | 172.3.51.182 |
Custom attributes
Rokt has a data mapping system that allows us to map provided field names to our internal data fields, however we have some recommended field names and formatting requirements later in this article. If you would like to use alternate field names, let us know, and we will ensure your fields are managed accordingly. Additionally, we can accept any additional fields if you would like to provide them for reporting purposes.
Premium integration: Combining the Web SDK and Event API
If possible, we recommend setting up conversion reporting through both the Web SDK and Event API. This helps identify any anomalies and provides redundancy if there are any issues on the frontend or backend.
If you choose to set up both integrations, ensure you populate one of transactionid
or confirmationref
in both the Web SDK and Event API integrations. Rokt can then deduplicate incoming your conversion events using these variables, ensuring your reporting is accurate.