Skip to content

Instantly share code, notes, and snippets.

@alexanderscott
Created January 1, 2013 23:41
Show Gist options
  • Save alexanderscott/4431030 to your computer and use it in GitHub Desktop.
Save alexanderscott/4431030 to your computer and use it in GitHub Desktop.
// Log any kind of Web Intent event to Google Analytics
// Category: "twitter_web_intents"
// Action: Intent Event Type
// Label: Identifier for action taken: tweet_id, screen_name/user_id, click region
// First, load the widgets.js file asynchronously
window.twttr = (function (d,s,id) {
var t, js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
js.src="//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
}(document, "script", "twitter-wjs"));
// Define our custom event handlers
function clickEventToAnalytics(intent_event) {
if (intent_event) {
var label = intent_event.region;
pageTracker._trackEvent('twitter_web_intents', intent_event.type, label);
};
}
function tweetIntentToAnalytics(intent_event) {
if (intent_event) {
var label = "tweet";
pageTracker._trackEvent('twitter_web_intents', intent_event.type, label);
};
}
function favIntentToAnalytics(intent_event) {
tweetIntentToAnalytics(intent_event);
}
function retweetIntentToAnalytics(intent_event) {
if (intent_event) {
var label = intent_event.data.source_tweet_id;
pageTracker._trackEvent('twitter_web_intents', intent_event.type, label);
};
}
function followIntentToAnalytics(intent_event) {
if (intent_event) {
var label = intent_event.data.user_id + " (" + intent_event.data.screen_name + ")";
pageTracker._trackEvent('twitter_web_intents', intent_event.type, label);
};
}
// Wait for the asynchronous resources to load
twttr.ready(function (twttr) {
// Now bind our custom intent events
twttr.events.bind('click', clickEventToAnalytics);
twttr.events.bind('tweet', tweetIntentToAnalytics);
twttr.events.bind('retweet', retweetIntentToAnalytics);
twttr.events.bind('favorite', favIntentToAnalytics);
twttr.events.bind('follow', followIntentToAnalytics);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment