function rcTrackViaDatalayer( data ) { // Only proceed if the dataLayer has already been instantiated if( typeof dataLayer === 'undefined' ) return; // ensure we have all the required data if ( ! data.action || ! data.category ) return; // push the event data dataLayer.push( { eventCategory: data.category, event: data.event, eventAction: data.action, eventLabel: data.label, eventValue: data.value } ); } function rcTrackViaFallback( data ) { // ensure we have an instance of google analytics if( typeof _gaq === 'undefined' ) return; // ensure we have all the required data if ( ! data.action || ! data.category ) return; // push the event data return _gaq.push( [ '_trackEvent', data.category, data.action, data.label, data.value ] ); } // for debug purposes function rcTrackViaConsole( data ) { console.log( "Analytics Event" ); console.log( "Category: " + data.category ); console.log( "Event: " + data.event ); console.log( "Action: " + data.action ); console.log( "Label: " + data.label ); console.log( "Value: " + data.value ); }