Important: As of August 13, 2024, this page will no longer be actively maintained. Please refer to the current version of this content here.
Callbacks
Indicative also allows callbacks, which will be fired after a successful or unsuccessful stat post. You can include a callback function in any of the buildEvent methods, like so:
var callbackFn = function () {
console.info("callback!");
};
Indicative.buildEvent('event-name', callbackFn);
Indicative.buildEvent('event-name', 'unique-user-id', callbackFn);
Indicative.buildEvent('event-name', 'unique-user-id', {propertyName: 'propertyValue'}, callbackFn);
Indicative.buildEvent('event-name', {propertyName: 'propertyValue'}, callbackFn);
With so many different ways to build an event, you’ll have a lot of flexibility to build and send any custom events you need. For further references, refer to the Analytics object API table below.
Stateful Variables
We allow you to set stateful variables across every page. Stateful variables are stored as a persistent cookie, so every page will be able to share the same common properties and a uniqueID for the user triggering events on your site. Anywhere in your JavaScript, after Analytics was initialized, call:
Indicative.setUniqueID("unique-user-id");
This will allow you to log events without having to refer to a unique ID every time you build an event. Analytics also allows for stateful properties, as well, which can be added with the following calls:
Indicative.addProperty('propertyName', 'propertyValue');
Indicative.addProperties({propertyName: 'propertyValue', propertyName2: 'propertyValue2'});
Indicative.addProperties([{propertyName: 'propertyValue'}, {propertyName2: 'propertyValue2'}]);
These properties will be appended to subsequent event calls. They will not override the properties passed into a buildEvent call, rather append to the list of properties. If a common property isn’t applicable anymore, call:
Indicative.removeProperty('propertyName');
This will remove a single property. It’s just as easy to clear the entire common properties list:
Indicative.clearProperty();
How to Track Links
Tracking href link clicks can be challenging, because once the page changes we lose our chance to fire an event. To solve this problem, we’ve added a callback to our build object. Use the following function to track link clicks and then send the user to the linked page:
function linkClick (event, linkName) {
var url = event.target.getAttribute('href');
console.info(event);
event.preventDefault();
Indicative.buildEvent("Link Click", {Link_Name: linkName}, function () {
console.info("go to site");
if (url) {
window.location = url;
}
});
}
To call this function in your HTML, set up a link like so:
<a onclick="linkClick(event, 'home')" href="home.html">Home</a>
How to Track Web Sessions
We’ve implemented Web Sessions in our JavaScript SDK track users’ web sessions with just a slight change to one line of your code. If a user has no activity for 30 minutes (no events are fired locally), upon any new event activity, the JavaScript SDK will also fire a “Web Session” event to indicate the start of a new Web Session.
How to Integrate
Where you see the line in this snippet:
Indicative.initialize(apiKey);
Alter it to read:
Indicative.initialize(apiKey, {recordSessions: true});
If you want to alter the inactive session length, change the line to be this instead:
Indicative.initialize(apiKey, {recordSessions: true, sessionsThreshold: 5});
where 5 signifies 5 minutes.
Automatic Tracking
We automatically track the following properties:
- browser: browser
- operating system: browser_os
- device: browser_device
- referrer: browser_referrer
- language: browser_language
- page title: page_title
- url: page_url
We also automatically track marketing channels provided by UTM search parameters. You’ll be able to see the following properties if you have users loading your page with UTM properties in the URL: campaign_source,campaign_medium, campaign_term, campaign_content, and campaign_name. We will also provide these channel properties in their own section of the data panel, titled as User Properties - UTM (category).
How to Track Users Across Subdomains
We support tracking user sessions across various subdomains through the use of our SDK. If the option 'cookiesOnMainDomain' is set to true, it will store the cookie on the root domain.
Where you see this line in the snippet:
Indicative.initialize(apiKey);
Alter it to read:
Indicative.initialize(apiKey, {recordSessions: true, sessionsThreshold: 30, cookiesOnMainDomain: true });
Whenever the cookiesOnMainDomain option is set to true, it is recommended that you include the base domain name. If it is not set, our SDK will attempt to figure it out by taking the last two tokens of the domain name, and in some cases it may be invalid values (e.g. .com.mx).
To explicitly add the domain name, add the domainName to the initialization parameters.
Indicative.initialize(apiKey, {recordSessions: true, sessionsThreshold: 30, cookiesOnMainDomain: true, domainName: ‘example.com.mx’ })
Aliasing
Analytics supports aliasing between anonymous IDs and user IDs to allow customers to unify event streams submitted with separate unique keys. Click here for a full walkthrough of Analytics' aliasing protocol.