1var gtmAnalytics = function () { 2 var createEvent = (category, action, label = '', value = 0) => ({ 3 action, 4 category, 5 label, 6 value, 7 }) 8 9 var createGTMEvent = ( 10 event, 11 eventCategory = '', 12 eventAction = '', 13 eventLabel = '', 14 eventValue = '', 15 eventAttribute = '', 16 ) => ({ 17 event, 18 eventAction, 19 eventAttribute, 20 eventCategory, 21 eventLabel, 22 eventValue, 23 }) 24 25 var dataLayerPush = (event) => { 26 window.dataLayer = window.dataLayer || [] 27 window.dataLayer.push(event) 28 } 29 30 var VIRTUAL_PAGE_READY_EVENT = 'virtualPageReady' 31 var LIVE_VIRTUAL_AUDIO_START_EVENT = 'liveVirtualAudioStart' 32 var LIVE_VIRTUAL_AUDIO_PAUSE_EVENT = 'liveVirtualAudioPause' 33 var LIVE_VIRTUAL_VIDEO_START_EVENT = 'liveVirtualVideoStart' 34 var LIVE_VIRTUAL_VIDEO_PAUSE_EVENT = 'liveVirtualVideoPause' 35 var VIRTUAL_AUDIO_START_EVENT = 'virtualAudioStart' 36 var VIRTUAL_AUDIO_PAUSE_EVENT = 'virtualAudioPause' 37 var VIRTUAL_AUDIO_END_EVENT = 'virtualAudioEnd' 38 var VIRTUAL_AD_START_EVENT = 'virtualAdStart' 39 var VIRTUAL_AD_END_EVENT = 'virtualAdEnd' 40 41 return { 42 createEvent, 43 createGTMEvent, 44 dataLayerPush, 45 events: { 46 VIRTUAL_PAGE_READY_EVENT, 47 LIVE_VIRTUAL_AUDIO_START_EVENT, 48 LIVE_VIRTUAL_AUDIO_PAUSE_EVENT, 49 LIVE_VIRTUAL_VIDEO_START_EVENT, 50 LIVE_VIRTUAL_VIDEO_PAUSE_EVENT, 51 VIRTUAL_AUDIO_START_EVENT, 52 VIRTUAL_AUDIO_PAUSE_EVENT, 53 VIRTUAL_AUDIO_END_EVENT, 54 VIRTUAL_AD_START_EVENT, 55 VIRTUAL_AD_END_EVENT, 56 }, 57 eventFunctions: { 58 virtualPageReady: () => 59 dataLayerPush(createGTMEvent(VIRTUAL_PAGE_READY_EVENT)), 60 liveVirtualAudioStart: (stationName, showName) => 61 dataLayerPush(createGTMEvent(LIVE_VIRTUAL_AUDIO_START_EVENT, "Live", "PLAY", showName, "", `${stationName} - Live Stream`)), 62 liveVirtualAudioPause: (stationName, showName) => 63 dataLayerPush(createGTMEvent(LIVE_VIRTUAL_AUDIO_PAUSE_EVENT, "Live", "PAUSE", showName, "", `${stationName} - Live Stream`)), 64 liveVirtualVideoStart: (stationName, showName) => 65 dataLayerPush(createGTMEvent(LIVE_VIRTUAL_VIDEO_START_EVENT, "Live", "PLAY", showName, "", `${stationName} - Live Stream`)), 66 liveVirtualVideoPause: (stationName, showName) => 67 dataLayerPush(createGTMEvent(LIVE_VIRTUAL_VIDEO_PAUSE_EVENT, "Live", "PAUSE", showName, "", `${stationName} - Live Stream`)), 68 virtualAudioStart: () => 69 dataLayerPush(createGTMEvent(VIRTUAL_AUDIO_START_EVENT, "", "START")), 70 virtualAudioPause: () => 71 dataLayerPush(createGTMEvent(VIRTUAL_AUDIO_PAUSE_EVENT, "", "PAUSE")), 72 virtualAudioEnd: () => 73 dataLayerPush(createGTMEvent(VIRTUAL_AUDIO_END_EVENT, "", "END")), 74 virtualAdStart: () => 75 dataLayerPush(createGTMEvent(VIRTUAL_AD_START_EVENT, "", "START")), 76 virtualAdEnd: () => dataLayerPush(createGTMEvent(VIRTUAL_AD_END_EVENT, "", "END")), 77 }, 78 } 79} 80 81jQuery(document).ready(function ($) { 82 gtmAnalytics().eventFunctions.virtualPageReady() 83})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.