Generating Tracking Pixels and Off-Site Collections

In this article

Track conversions on your partner's site and use this to report on the success of, and to optimise, your campaign

Permutive can collect data on users off-site. There are many cases where this can be useful, for example, if you want to:

  • Track a PartnerConversion event when a user visits your partner's site and has converted on a campaign.
  • Track an EmailOpen event when a user opens a marketing email.
  • Track an AdImpression event, when a user views an advertising campaign either off-site or within an isolated iframe or video player.

In the case of impression and conversion tracking, this can be especially useful for:

  • Reporting back on the performance of a campaign after it has run
  • Optimising during the campaign to make sure you reach conversion KPIs
  • Removing users from targeting cohorts if they have already converted
  • Offering premium targeting for users who have visited the partner site but not yet converted

These types of off-site events are typically tracked by firing pixels. These are small HTTP requests that are made to Permutive and enable us to register an event against a user ID.

Identifying Users

A prerequisite to setting up a pixel is to first know how you will identify the user in Permutive when your pixel fires. There are generally two options for doing this:

  1. Rely on a third-party cookie. Typically, a third-party cookie such as the AppNexus ID is used to track users across the web. This is very effective but has the downside of only working in environments where third-party cookies are permitted. 
  2. Use your own internal user ID. This option is not always feasible, but if you are passing your own internal user IDs into Permutive (e.g. using Permutive aliases) - you can use these aliases in the pixel URL to enable us to identify the user.

Note: In order to rely on a third-party cookie, third-party tracking must first be enabled on your Permutive project. If unsure whether this feature has been enabled, please reach out to for us to enable this.

Implementing Pixels

Generally, there are three ways to implement and deploy a pixel: by passing a tracking URL into a third-party platform, by deploying a JavaScript tag on-site or via an HTML image element. We will discuss each approach in this section.

We recommend you email for help in setting up your pixels and to ensure the pixel is deployed correctly.

Method 1 Method 2 Method 3
Generate a Tracking URL

This method is commonly used when you just need a pixel URL that can be copied and pasted into a third-party platform. The third-party platform will then handle the process of making the pixel request and sending the event into Permutive.

In future, we intend to make the process of generating pixel URLs easier - however, currently, we recommend you generate pixel URLs by executing the below JavaScript snippets in your web browser console.

If relying on a third-party cookie:

var publicKey = '<PUBLIC_API_KEY>';
var eventName = '<EVENT_NAME>';
var eventProperties = {
console.log("" + encodeURI("" + publicKey + "&i=$UID&e=" + eventName + "&p=" + encodeURIComponent(JSON.stringify(eventProperties)) + "&it=appnexus"));

If relying on your own internal user IDs:

var publicKey = '<PUBLIC_API_KEY>';
var eventName = '<EVENT_NAME>';
var aliasId = '<ALIAS_ID>';
var aliasTag = '<ALIAS_TAG>';
var eventProperties = {

console.log("" + publicKey + "&i=" + aliasId + "&e=" + eventName + "&p=" + encodeURIComponent(JSON.stringify(eventProperties)) + "&it=" + aliasTag);

 In the above snippets, be sure to replace <PUBLIC_API_KEY> , <EVENT_NAME>  and <EVENT_PROPERTIES_AS_JSON> appropriately.

For the latter snippet, replace <ALIAS_ID>  and <ALIAS_TAG>  with your internal user ID and the tag used for this type of user ID within Permutive. If you are using our JavaScript SDK's permutive.identify method to pass these aliases to Permutive, your aliases will be tagged as default.

If relying on Permutive user id:

var publicKey = '<PUBLIC_API_KEY>';
var eventName = '<EVENT_NAME>';
var userId = '<USER_ID>';
var eventProperties = {

console.log("" + publicKey + "&u=" + userId + "&e=" + eventName + "&p=" + encodeURIComponent(JSON.stringify(eventProperties)));

If you have any questions, please contact customer support by emailing or chat to the Customer Operations Team via the LiveChat icon in the bottom right corner of your screen.

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request