Envolva o código de rastreamento de terceiros

Startups aparecem e depois morrem. Ou ficar fora de moda. Principalmente aqueles que fornecem ferramentas para outras startups. Um dia você quer usar o intercom.io, no outro você quer usar o mixpanel.com. Não adicione chamadas à API deles diretamente em seu código. Tenha seu próprio rastreador e atualize-o sempre que mudar de ideia.

My.Tracker = function () {

this.push = function (command) {
try {
this[command[0]].apply(this, command.slice(1));
} catch (e) {
// ...
}
};

this.track = function () {
try {
var mixpanel = window.mixpanel;
mixpanel
.track.apply(mixpanel, arguments);
} catch (e) {
// ...
}
};

this.identify = function (userDetails) {
try {
var mixpanel = window.mixpanel;
mixpanel
.identify(userDetails['id']);
mixpanel
.name_tag(userDetails['email']);
mixpanel
.people.set(userDetails);
} catch (e) {
// ...
}
};

if (typeof window._my_tracker !== 'undefined') {
for (command in window._my_tracker) {
this.push(command[0], command[1]);
}
}
};

_my_tracker
= new My.Tracker();

Agora você pode usar este rastreador em seu código:

_my_tracker.push(['identify', {id: 123, email: 'example@example.com'}]);

Você pode usar seu rastreador antes mesmo de carregá-lo, como o do Google Analytics:

_my_tracker = _my_tracker || [];
_my_tracker
.push(['track', 'hello']);

Quando você decidir mudar seu provedor (mixpanel neste exemplo), você apenas tem que atualizar this.tracke / this.identifyou quaisquer outros métodos públicos que você deseja que seu rastreador tenha.