Sha256: 21b1c3daeccb50d86c18a5097cd5bb15f486d698d2f854cca502f08fa71ae423
Contents?: true
Size: 1.96 KB
Versions: 5
Compression:
Stored size: 1.96 KB
Contents
// Stageprompt 2.0.1 // // See: https://github.com/alphagov/stageprompt // // Stageprompt allows user journeys to be described and instrumented // using data attributes. // // Setup (run this on document ready): // // GOVUK.performance.stageprompt.setupForGoogleAnalytics(); // // Usage: // // Sending events on page load: // // <div id="wrapper" class="service" data-journey="pay-register-birth-abroad:start"> // [...] // </div> // // Sending events on click: // // <a class="help-button" href="#" data-journey-click="stage:help:info">See more info...</a> ;(function (global) { 'use strict' var $ = global.jQuery var GOVUK = global.GOVUK || {} GOVUK.performance = GOVUK.performance || {} GOVUK.performance.stageprompt = (function () { var setup, setupForGoogleAnalytics, splitAction splitAction = function (action) { var parts = action.split(':') if (parts.length <= 3) return parts return [parts.shift(), parts.shift(), parts.join(':')] } setup = function (analyticsCallback) { var journeyStage = $('[data-journey]').attr('data-journey') var journeyHelpers = $('[data-journey-click]') if (journeyStage) { analyticsCallback.apply(null, splitAction(journeyStage)) } journeyHelpers.on('click', function (event) { analyticsCallback.apply(null, splitAction($(this).data('journey-click'))) }) } setupForGoogleAnalytics = function () { setup(GOVUK.performance.sendGoogleAnalyticsEvent) } return { setup: setup, setupForGoogleAnalytics: setupForGoogleAnalytics } }()) GOVUK.performance.sendGoogleAnalyticsEvent = function (category, event, label) { if (global.ga && typeof global.ga === 'function') { global.ga('send', 'event', category, event, label, { nonInteraction: true }) } else { global._gaq.push(['_trackEvent', category, event, label, undefined, true]) } } global.GOVUK = GOVUK })(window)
Version data entries
5 entries across 5 versions & 1 rubygems