Settings reference

Full list of settings you can override on MyTest.settings.

How settings work

Each test created with Object.create(Abrantes) inherits Abrantes.settings. Update your experiment settings before calling the method that uses them.

Plugin settings are available after loading the plugin.

var MyTest = Object.create(Abrantes);

MyTest.settings.cookie.expires = 30;
MyTest.settings.crossSiteLink.triggerEvent = false;
MyTest.settings.dataLayer.eventName = "run_my_ab_test";
MyTest.settings.formTrack.inputElement = "#ab_variant";

Core settings

crossSiteLink

It's an event name that controls when crossSiteLink() rewrites cross-site URLs.

  • MyTest.settings.crossSiteLink.triggerEvent (string or false).
  • Default: "DOMContentLoaded". Good for most use cases in websites. Web apps may need to set this to another event.
  • Set to false to run immediately (not recommended).

cookie

Used only when calling persist("cookie"). Controls how variants persist when using cookies.

  • MyTest.settings.cookie.expires (number of days, default: 7).
  • MyTest.settings.cookie.path (string, default: "/").
  • MyTest.settings.cookie.domain (string, default: "").

Plugin settings

GTM dataLayer

Keys used when calling add2dataLayer().

  • MyTest.settings.dataLayer.eventName (default: "run_ab_test").
  • MyTest.settings.dataLayer.customDimension (default: "ab_test_data").
  • MyTest.settings.dataLayer.experimentName (default: "experiment_name").
  • MyTest.settings.dataLayer.variantName (default: "variant_name").
  • MyTest.settings.dataLayer.variantPrefix (default: "v").

Hotjar

Events that should trigger hotjar() when Hotjar loads after consent.

  • MyTest.settings.hotjar.triggerEvents (array of event names).
  • Default: ["load", "cookies:accept", "cookies:acceptall", "cookies:ok"].

Please note that the cookies:* are just examples. Your website probably uses a different naming convention for cookie consent events. You must update the settings accordingly.

Microsoft Clarity

Events that should trigger clarity() when Clarity loads after consent.

  • MyTest.settings.clarity.triggerEvents (array of event names).
  • Default: ["load", "cookies:accept", "cookies:acceptall", "cookies:ok"].

Please note that the cookies:* are just examples. Your website probably uses a different naming convention for cookie consent events. You must update the settings accordingly.

Form tracking

Controls when the hidden input is filled by formTrack().

  • MyTest.settings.formTrack.triggerEvents (array of event names).
  • Default: ["DOMContentLoaded"].

Hidden form field to use for storing the variant name:

  • MyTest.settings.formTrack.inputElement (selector string).
  • Default: "#last_abtest_variant".

Abrantes Log

Controls where to send user's event logs. This plugin must be used with the custom API Abrantes Log.

  • MyTest.settings.log.apiURL - A string with the URL of the API endpoint. Default: "" - It must be defined before calling .log("example_event", "example note").
  • MyTest.settings.log.variantPrefix - Prefix to the variant number in the log. Default: "v".

Hubspot

Keys used when calling hubspotEvent(eventName).

  • MyTest.settings.hubspot.customDimension (default: "ab_test_data").
  • MyTest.settings.hubspot.experimentName (default: "experiment_name").
  • MyTest.settings.hubspot.variantName (default: "variant_name").
  • MyTest.settings.hubspot.variantPrefix (default: "v").

Plugins without settings

These plugins do not add new keys to MyTest.settings:

  • GA4 (gtag): uses gtag and window.googleTrackingConfig.
  • Matomo: uses the global _paq queue.

Default settings (AbrantesPlus)

This is the default settings object when you load AbrantesPlus.js:

Abrantes.settings = {
  crossSiteLink: {
    triggerEvent: "DOMContentLoaded"
  },
  cookie: {
    expires: 7,
    path: "/",
    domain: ""
  },
  hotjar: {
    triggerEvents: ["load", "cookies:accept", "cookies:acceptall", "cookies:ok"]
  },
  clarity: {
    triggerEvents: ["load", "cookies:accept", "cookies:acceptall", "cookies:ok"]
  },
  formTrack: {
    triggerEvents: ["DOMContentLoaded"],
    inputElement: "#last_abtest_variant"
  },
  dataLayer: {
    eventName: "run_ab_test",
    customDimension: "ab_test_data",
    experimentName: "experiment_name",
    variantName: "variant_name",
    variantPrefix: "v"
  }
};