A simple Attribution install

Learn a basic javascript install

To properly install Attribution, you will need to install Attribution code on your website, app, or server. This code will generate messages based on specific triggers you define.

In the simplest implementation, the code can be a snippet of JavaScript that you copy and paste into the HTML of a website to track page views. However, Attribution can also be installed with a combination of apps like Segment, HubSpot, Shopify, Google tag manager or WordPress. Attribution offers a number of integrations for different purposes.

The best way to learn about how Attribution works is to see it in action. This tutorial will take you through a basic client-side install of Attribution app.

Video guide

Before you start

First thing is to consider your funnel or ad pipeline. The pipeline will typically begin with an ad click, then a landing page, then a conversion event. For example:

A. Visitor clicks ad which redirects to www.example.com/fbaid=xyz
B. Visitor lands on www.example.com/fbaid=xyz and submits web form with information

When the snippet is in place and attribution.js properly runs Attribution will use the referring domain and destination domain to provide credit to specific channels & filters on the dashboard. Below you'll learn more about attribution.js and the necessary components for installing Attribution's tracking apparatus.

Find your Attribution Project ID

You can find your project's unique Attribution ID by logging in and going to Settings

This is your unique project id that will be used with your snippet. Continue below to learn how to install your unique project snippet and start tracking visitors.

Install snippet and page() to start tracking visits

Copy your Attribution snippet by going to Settings

Now paste the snippet from settings into the <head> tag of all your pages. Please note this assumes all your pages are on the same domain. If you'd like to track across multiple domains please be sure to use the cross-domain snippet.


Bundling or Minifying Attribution code

Do not minify or bundle inside a webpack the Attribution JavaScript snippets or it may render unstable in some conditions. Also please try to avoid putting snippets inside a JavaScript enclosures. You are still free to call track() or identify() from inside your web app.

Assuming the same domain, the snippet will load attribution.js onto the page asynchronously, so it won’t affect your page load speed. Once the snippet is running on your site you will begin to start recording visits.

Note: attribution.js will record the referring domain and destination domain of the visit. For example, the referring domain may be www.google.com and the destination domain may be www.attributionapp.com/fbaid=123. Attribution's model will use these values to filter visits on the dashboard and provide credit for ads.

Visitors will appear with anonymous visitor ids in your side bar when you drill into any blue number on the dashboard. Continue reading to learn how to give your visitors traits.

Install identify() to give your visitors traits

The identify method is how you tell Attribution who the current user is. It includes a unique User ID, and any optional traits you know about them. Calling identify() is not a requirement for installing Attribution, but it will allow you to easily assign a User ID, name, email to your visitors and it will give you access to features like 'disregard existing users' & 'company based attribution'

You don't need to call identify for anonymous visitors to your site. Attribution will automatically assign them an anonymousId, so just calling page() and track() works just fine without identify. Identify is high-recommended when you capture any personal information about the visitor.

Here’s what a basic call to identify might look like:

Attribution.identify('fbdzldwr', {
  name: 'Konstantin Pats',
  email: '[email protected]'

That identifies Konstantin by his unique User ID (in this case, fbdzldwr, which is what you know him by in your database) and labels him with name and email traits.

If you do not have a database you can omit a unique user id and use email trait as user tracking id. Identifying with email traits is also a requirement for some CRM and conversion connectors like Stripe, Pipedrive, Salesforce, and HubSpot.

  name: 'Konstantin Pats',
  email: '[email protected]'

Please be sure to replace those hard-coded trait values with the variables that represent the details of the currently logged-in user!

To do that, we recommend that you use a backend template to inject an identify call into the footer of every page of your site where the user is logged in. That way, no matter what page the user first lands on, they will always be identified. You don’t need to call identify if your unique identifier (userId) is not known.
Depending on your templating language, your actual identify call might look something like this:

Attribution.identify('{{user.id}}', {
  name: '{{user.fullname}}',
  email: '{{user.email}}'

With that call in your page footer, you successfully identify every user that visits your site.

You can find more details on calling Identify() with OAuth or jQuery here.

Installing track() to record events and build your model

The track method is how you give Attribution a conversion event to measure return against. You can record specific conversion events like, 'trial started' or ' demo request' to measure the effectiveness of your ads on specific pipeline points; as well as revenue conversion events like 'order paid', 'subscription payment' or 'completed order' to record revenue in your model.

Here’s what a call to track might look like when a user starts a trial:

Attribution.track('Trial Started', {
  plan: 'Blue'

That’s just telling Attribution that your visitor just triggered the Trial Started event and chose your hypothetical 'Blue' plan.

In Attribution you'll be able to filter your conversion events by these properties. For example you can see return on ad spend for your Facebook ads on users that had a Trial Started event specifically for the blue plan.

Tracking conversion events with revenue are unique. Any time a revenue property is present in a track() event it will be considered revenue to be used in calculations and modeling.

In the example below the revenue of 22 would be used in the Attribution model to calculate return on ad spend for your dashboard.

Attribution.track('Order Complete', {
  revenue: '22',
  type: 'blue'

If you wanted to deduct revenue in the case of a refund or return you can also call track with a negative revenue. For example, -22 (revenue should always be sent in 00.00 format but cents could be omitted, don't use comma as decimals separator).

To get started, we recommend that you track just a few important events. You can always add more later!

Once you've successfully installed page(), identify(), and track() you have completed the installation of Attribution's tracking requirements and the next steps are connecting ad platforms and filtering visits.

Recapping the install & connecting the dots

In the example below you can see the visitor's step, what method should be called, and what would appear on the Attribution dashboard if called correctly.

Attribution methods as UI objects on your dashboard.

If you have any questions please reach out to [email protected]