Skip to main content

Tracking Script Reference

Script attributes, runtime methods, automatic integrations, and events

Table of Contents

Tracking Script Reference

Install snippet

<script>
  (function (w, r) {
    w._abq = w._abq || [];
    w[r] =
      w[r] ||
      function () {
        (w[r].q = w[r].q || []).push(arguments);
      };
  })(window, "affiliatebase");
</script>
<script
  async
  src="https://app.affiliatebase.io/track.js"
  data-account-id="YOUR_ACCOUNT_ID"
></script>

Script attributes

AttributeRequiredNotes
data-account-idYesAccount id (data-account alias also supported)
data-api-urlNoOverride API base URL (useful for local dev)
data-debugNotrue enables client logs
data-affiliatebase-paramsNoComma-separated custom attribution params
data-paramsNoAlias for data-affiliatebase-params
data-domainsNoComma-separated domains for cross-domain referral tagging
data-request-timeout-msNoRequest timeout (default 8000)
data-respect-dntNotrue skips tracking requests when DNT is enabled

URL parameter behavior

Priority:

  1. ?referral=<REFERRAL_ID> (preloads existing referral id)
  2. ?via=<TOKEN> (canonical token parameter)
  3. Custom params from data-affiliatebase-params (for example ?partner=<TOKEN>)

Runtime methods

affiliatebase("convert", { email: "[email protected]" });
affiliatebase("identify", { email: "[email protected]" }); // alias

affiliatebase("source", "affiliate_token");
affiliatebase("track", "affiliate_token"); // alias

affiliatebase("ready", () => console.log("loaded"));

affiliatebase("debug", true);
affiliatebase("set_debug", true); // alias

affiliatebase("reset");
affiliatebase("clear"); // alias

affiliatebase("referral"); // returns referral id
affiliatebase("state"); // returns full attribution state

Global state

window.AffiliateBase.referral;
window.AffiliateBase.affiliate;
window.AffiliateBase.campaign;
window.AffiliateBase.coupon;

window.affiliatebase_referral; // legacy alias getter

Automatic integrations

Forms

Add data-affiliatebase to a form to auto-inject a hidden referral input when attribution exists.

<form data-affiliatebase action="/signup" method="POST">
  ...
</form>

Optional custom hidden field name:

<form data-affiliatebase data-affiliatebase-param-name="referral_id">
  ...
</form>

Stripe Buy Buttons and Pricing Tables

Add data-affiliatebase and the script sets client-reference-id automatically.

<stripe-buy-button data-affiliatebase ...></stripe-buy-button>
<stripe-pricing-table data-affiliatebase ...></stripe-pricing-table>

For links marked data-affiliatebase, the script appends client_reference_id=<referral>.

<a data-affiliatebase href="https://buy.stripe.com/...">Buy</a>

Cross-domain tagging

With data-domains="example.com,checkout.example.com", matching external links are tagged with referral=<referral_id>.

Browser events

  • AffiliateBase.initialized
  • AffiliateBase.tracked
  • AffiliateBase.reset

Example:

window.addEventListener("AffiliateBase.tracked", (event) => {
  console.log(event.detail.referral);
});

Local development

Point the script at your local API:

<script
  async
  src="/track.js"
  data-account-id="YOUR_ACCOUNT_ID"
  data-api-url="http://localhost:3000"
  data-debug="true"
></script>