From 6784c750ce4060253ddcd47f2c43a169f07be2e3 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Tue, 7 Apr 2015 14:04:29 -0500 Subject: [PATCH 1/9] VRFS-2874 : Initial analytics for playing JamTracks in a session attended by multiple participants. --- web/app/assets/javascripts/session.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index 2b6ea1e80..dbde1143a 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -13,6 +13,7 @@ var modUtils = context.JK.ModUtils; var logger = context.JK.logger; var self = this; + var trackedJamPlay=false; var defaultParticipant = { tracks: [{ @@ -2650,7 +2651,7 @@ text: "Unable to open your JamTrack. Please contact support@jamkazam.com" }, null, true); } else { - rest.playJamTrack(jamTrack.id); + playJamTrack(jamTrack.id); } } }) @@ -2669,6 +2670,23 @@ return false; } + function playJamTrack(jamTrackId) { + var participantCnt=sessionModel.participants().length + rest.playJamTrack(jamTrack.id) + if(!trackedJamPlay && participantCnt > 1) { + context.stats.write('web.jamtrack.play', { + category: "JamTrackGlobal", + value: 1, + action: "PublicPerformance", + optional_label: "InSession", + session_size: participantCnt, + user_id: context.JK.currentUserId, + user_name: context.JK.currentUserName + }) + trackedJamPlay=true + }// if + }// function + function openBackingTrackFile(e) { // just ignore the click if they are currently recording for now @@ -2681,6 +2699,12 @@ return false; } else { context.jamClient.openBackingTrackFile(sessionModel.backing_track) + context.stats.write('web.backingtrack.open', { + value: 1, + session_size: participantCnt, + user_id: context.JK.currentUserId, + user_name: context.JK.currentUserName + }) //context.JK.CurrentSessionModel.refreshCurrentSession(true); } return false; From 1d6f690f827eeae0048bc186353728c845907a04 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Mon, 13 Apr 2015 13:07:50 -0500 Subject: [PATCH 2/9] VRFS-2874 : Jam Track Analytics JS tracking method implementation. --- web/app/assets/javascripts/ga.js | 33 +++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/web/app/assets/javascripts/ga.js b/web/app/assets/javascripts/ga.js index 4fe5e565d..5f8edc89a 100644 --- a/web/app/assets/javascripts/ga.js +++ b/web/app/assets/javascripts/ga.js @@ -130,6 +130,20 @@ jkComment : 'jkComment' }; + // JamTrack categories and actions: + var jamTrackAvailabilityTypes = { + global: 'JamTrackGlobal', + usa: 'JamTrackUSA' + } + var jamTrackActions = { + isPublic: 'PublicPerformance', + isPrivate: 'PrivateUse' + } + var jamTrackSessionLabels = { + nonSession: 'NonSession', + inSession: 'InSession' + } + function translatePlatformForGA(platform) { assertOneOf(platform, context.JK.OS); @@ -239,6 +253,19 @@ context.ga('send', 'event', categories.findSession, sessionCountRollup, numSessionsFound); } + function trackJamTrackPlay(isGlobal, isPublic, inSession) { + assertBoolean(isGlobal) + assertBoolean(isPublic) + assertBoolean(inSession) + context.ga( + 'send', + 'event', + (isGlobal) ? CAT_JAM_TRACK_GLOBAL : CAT_JAM_TRACK_USA, + (isPublic) ? ACTION_JAM_TRACK_PUBLIC_PERFORMANCE : ACTION_JAM_TRACK_PRIVATE_USE, + (inSession) ? JAM_TRACK_IN_SESSION_LABEL : JAM_TRACK_NON_SESSION_LABEL + ) + } + // if you want to pass in no title, either omit it from the arg list when u invoke virtualPageView, or pass in undefined, NOT null function virtualPageView(page, title) { @@ -379,7 +406,7 @@ GA.trackSessionQuality = trackSessionQuality; GA.trackServiceInvitations = trackServiceInvitations; GA.trackFindSessions = trackFindSessions; - GA.virtualPageView = virtualPageView; + GA.trackJamTrackPlay = trackJamTrackPlay; GA.trackFriendConnect = trackFriendConnect; GA.trackMakeRecording = trackMakeRecording; GA.trackShareRecording = trackShareRecording; @@ -387,8 +414,8 @@ GA.trackSessionPlay = trackSessionPlay; GA.trackBand = trackBand; GA.trackJKSocial = trackJKSocial; - - + GA.virtualPageView = virtualPageView; + context.JK.GA = GA; })(window,jQuery); \ No newline at end of file From f56cf339e91c40d0c535e6b25e08b3f441947900 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Mon, 13 Apr 2015 13:08:34 -0500 Subject: [PATCH 3/9] VRFS-2874 : Incremental hookup of ga for jam tracks. --- web/app/assets/javascripts/session.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index dbde1143a..deccaafa3 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -2672,13 +2672,12 @@ function playJamTrack(jamTrackId) { var participantCnt=sessionModel.participants().length - rest.playJamTrack(jamTrack.id) - if(!trackedJamPlay && participantCnt > 1) { + rest.playJamTrack(jamTrackId) + logger.debug("trackedJamPlay", trackedJamPlay) + if(!trackedJamPlay) {//} && participantCnt > 1) { + context.stats.write('web.jamtrack.play', { - category: "JamTrackGlobal", value: 1, - action: "PublicPerformance", - optional_label: "InSession", session_size: participantCnt, user_id: context.JK.currentUserId, user_name: context.JK.currentUserName From ae050590f613a509b5a7558331711e8a9d7e91bb Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Wed, 15 Apr 2015 18:17:02 -0500 Subject: [PATCH 4/9] Whack extraneous logging. --- .../javascripts/accounts_payment_history_screen.js.coffee | 1 - web/app/assets/javascripts/dialog/openBackingTrackDialog.js | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/web/app/assets/javascripts/accounts_payment_history_screen.js.coffee b/web/app/assets/javascripts/accounts_payment_history_screen.js.coffee index 2f20246cf..05fc089d7 100644 --- a/web/app/assets/javascripts/accounts_payment_history_screen.js.coffee +++ b/web/app/assets/javascripts/accounts_payment_history_screen.js.coffee @@ -98,7 +98,6 @@ context.JK.AccountPaymentHistoryScreen = class AccountPaymentHistoryScreen # Turn in to HTML rows and append: #@tbody.html("") - console.log("response.next", response) @next = response.next_page @renderPayments(response) if response.next_page == null diff --git a/web/app/assets/javascripts/dialog/openBackingTrackDialog.js b/web/app/assets/javascripts/dialog/openBackingTrackDialog.js index 87150456f..bd0d136aa 100644 --- a/web/app/assets/javascripts/dialog/openBackingTrackDialog.js +++ b/web/app/assets/javascripts/dialog/openBackingTrackDialog.js @@ -49,7 +49,6 @@ function getBackingTracks(page) { var result = context.jamClient.getBackingTrackList(); - console.log("result", result) var backingTracks = result.backing_tracks; if (!backingTracks || backingTracks.length == 0) { @@ -89,8 +88,7 @@ rest.openBackingTrack({id: context.JK.CurrentSessionModel.id(), backing_track_path: backingTrack.name}) .done(function(response) { var result = context.jamClient.SessionOpenBackingTrackFile(backingTrack.name, false); - console.log("BackingTrackPlay response: %o", result); - + // TODO: Possibly actually check the result. Investigate // what real client returns: // // if(result) { From 4db40f6d3b781e17bef821996a713ea3d724fa20 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Wed, 15 Apr 2015 18:22:55 -0500 Subject: [PATCH 5/9] VRFS-2874 : Some prerequisite functionality required for analytics. --- ruby/lib/jam_ruby/models/active_music_session.rb | 2 +- ruby/lib/jam_ruby/models/jam_track.rb | 3 +++ ruby/lib/jam_ruby/models/recording.rb | 3 ++- web/app/assets/javascripts/jam_rest.js | 10 +++------- web/app/assets/javascripts/jam_track_screen.js.coffee | 2 +- web/app/assets/javascripts/jamtrack_landing.js.coffee | 2 +- web/app/views/api_music_sessions/show.rabl | 2 +- web/app/views/api_recordings/show.rabl | 6 +++++- 8 files changed, 17 insertions(+), 13 deletions(-) diff --git a/ruby/lib/jam_ruby/models/active_music_session.rb b/ruby/lib/jam_ruby/models/active_music_session.rb index 04724695c..2addd2266 100644 --- a/ruby/lib/jam_ruby/models/active_music_session.rb +++ b/ruby/lib/jam_ruby/models/active_music_session.rb @@ -7,7 +7,7 @@ module JamRuby self.table_name = 'active_music_sessions' - attr_accessor :legal_terms, :max_score, :opening_jam_track, :opening_recording, :opening_backing_track, :opening_metronome + attr_accessor :legal_terms, :max_score, :opening_jam_track, :opening_recording, :opening_backing_track, :opening_metronome, :jam_track_id belongs_to :claimed_recording, :class_name => "JamRuby::ClaimedRecording", :foreign_key => "claimed_recording_id", :inverse_of => :playing_sessions belongs_to :claimed_recording_initiator, :class_name => "JamRuby::User", :inverse_of => :playing_claimed_recordings, :foreign_key => "claimed_recording_initiator_id" diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index b08533c1e..f05643c86 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -161,6 +161,9 @@ module JamRuby query = query.where("original_artist=?", options[:artist]) end + if options[:id].present? + query = query.where("jam_tracks.id=?", options[:id]) + end if options[:group_artist] query = query.select("original_artist, array_agg(jam_tracks.id) AS id, MIN(name) AS name, MIN(description) AS description, MIN(recording_type) AS recording_type, MIN(original_artist) AS original_artist, MIN(songwriter) AS songwriter, MIN(publisher) AS publisher, MIN(sales_region) AS sales_region, MIN(price) AS price, MIN(version) AS version, MIN(genre_id) AS genre_id") diff --git a/ruby/lib/jam_ruby/models/recording.rb b/ruby/lib/jam_ruby/models/recording.rb index cdb72816a..43470c016 100644 --- a/ruby/lib/jam_ruby/models/recording.rb +++ b/ruby/lib/jam_ruby/models/recording.rb @@ -21,6 +21,7 @@ module JamRuby belongs_to :owner, :class_name => "JamRuby::User", :inverse_of => :owned_recordings, :foreign_key => 'owner_id' belongs_to :band, :class_name => "JamRuby::Band", :inverse_of => :recordings belongs_to :music_session, :class_name => "JamRuby::ActiveMusicSession", :inverse_of => :recordings, foreign_key: :music_session_id + belongs_to :non_active_music_session, :class_name => "JamRuby::MusicSession", foreign_key: :music_session_id belongs_to :jam_track, :class_name => "JamRuby::JamTrack", :inverse_of => :recordings, :foreign_key => 'jam_track_id' belongs_to :jam_track_initiator, :class_name => "JamRuby::User", :inverse_of => :initiated_jam_track_recordings, :foreign_key => 'jam_track_initiator_id' @@ -196,7 +197,7 @@ module JamRuby def has_access?(user) - users.exists?(user) + users.exists?(user) || plays.where("player_id=?", user).count != 0 end # Start recording a session. diff --git a/web/app/assets/javascripts/jam_rest.js b/web/app/assets/javascripts/jam_rest.js index 0cf7b6767..afa9b4be5 100644 --- a/web/app/assets/javascripts/jam_rest.js +++ b/web/app/assets/javascripts/jam_rest.js @@ -287,11 +287,6 @@ } function addPlayablePlay(playableId, playableType, claimedRecordingId, userId) { - if (playableType == 'JamRuby::Recording') { - context.JK.GA.trackRecordingPlay(); - } else if (playableType == 'JamRuby::MusicSession') { - context.JK.GA.trackSessionPlay(); - } return $.ajax({ url: '/api/users/' + playableId + "/plays", type: "POST", @@ -1452,7 +1447,8 @@ }); } - function getJamtracks(options) { + function getJamTracks(options) { + logger.debug("GETTING JAMTRACKS") return $.ajax({ type: "GET", url: '/api/jamtracks?' + $.param(options), @@ -1771,7 +1767,7 @@ this.updateAudioLatency = updateAudioLatency; this.getJamTrack = getJamTrack; this.getJamTrackWithArtistInfo = getJamTrackWithArtistInfo; - this.getJamtracks = getJamtracks; + this.getJamTracks = getJamTracks; this.getPurchasedJamTracks = getPurchasedJamTracks; this.getPaymentHistory = getPaymentHistory; this.getSalesHistory = getSalesHistory; diff --git a/web/app/assets/javascripts/jam_track_screen.js.coffee b/web/app/assets/javascripts/jam_track_screen.js.coffee index 6cea8e994..1cf2fd6b7 100644 --- a/web/app/assets/javascripts/jam_track_screen.js.coffee +++ b/web/app/assets/javascripts/jam_track_screen.js.coffee @@ -66,7 +66,7 @@ context.JK.JamTrackScreen=class JamTrackScreen refresh:() => @currentQuery = this.buildQuery() that = this - rest.getJamtracks(@currentQuery).done((response) => + rest.getJamTracks(@currentQuery).done((response) => that.clearResults() that.handleJamtrackResponse(response) ).fail (jqXHR) => diff --git a/web/app/assets/javascripts/jamtrack_landing.js.coffee b/web/app/assets/javascripts/jamtrack_landing.js.coffee index 760744e9f..2512cd9a7 100644 --- a/web/app/assets/javascripts/jamtrack_landing.js.coffee +++ b/web/app/assets/javascripts/jamtrack_landing.js.coffee @@ -18,7 +18,7 @@ context.JK.JamTrackLanding = class JamTrackLanding beforeShow:() => # Get artist names and build links - @rest.getJamtracks({group_artist: true}) + @rest.getJamTracks({group_artist: true}) .done(this.buildArtistLinks) .fail(this.handleFailure) diff --git a/web/app/views/api_music_sessions/show.rabl b/web/app/views/api_music_sessions/show.rabl index 093e47077..771933fbd 100644 --- a/web/app/views/api_music_sessions/show.rabl +++ b/web/app/views/api_music_sessions/show.rabl @@ -13,7 +13,7 @@ if !current_user } else - attributes :id, :name, :description, :musician_access, :approval_required, :fan_access, :fan_chat, :band_id, :user_id, :claimed_recording_initiator_id, :track_changes_counter, :max_score, :backing_track_path, :metronome_active, :jam_track_initiator_id + attributes :id, :name, :description, :musician_access, :approval_required, :fan_access, :fan_chat, :band_id, :user_id, :claimed_recording_initiator_id, :track_changes_counter, :max_score, :backing_track_path, :metronome_active, :jam_track_initiator_id, :jam_track_id node :can_join do |session| session.can_join?(current_user, true) diff --git a/web/app/views/api_recordings/show.rabl b/web/app/views/api_recordings/show.rabl index 330f12f7b..d59732cb3 100644 --- a/web/app/views/api_recordings/show.rabl +++ b/web/app/views/api_recordings/show.rabl @@ -1,6 +1,10 @@ object @recording -attributes :id, :band, :created_at, :duration, :comment_count, :like_count, :play_count, :when_will_be_discarded?, :jam_track_id, :jam_track_initiator_id +attributes :id, :band, :created_at, :duration, :comment_count, :like_count, :play_count, :when_will_be_discarded?, :jam_track_id, :jam_track_initiator_id, :music_session_id, :music_session + +node :fan_access do |recording| + recording.non_active_music_session.fan_access +end node :mix do |recording| if recording.mix From 280496af78e3c0a1a68f1b5bdd487585a4e49c7a Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Wed, 15 Apr 2015 18:23:51 -0500 Subject: [PATCH 6/9] VRFS-2874 : JamTrack analytic core tracking functionality --- web/app/assets/javascripts/ga.js | 42 +++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/web/app/assets/javascripts/ga.js b/web/app/assets/javascripts/ga.js index 5f8edc89a..cb297b28c 100644 --- a/web/app/assets/javascripts/ga.js +++ b/web/app/assets/javascripts/ga.js @@ -6,6 +6,7 @@ "use strict"; context.JK = context.JK || {}; + var rest = context.JK.Rest(); var logger = context.JK.logger; // types @@ -132,7 +133,7 @@ // JamTrack categories and actions: var jamTrackAvailabilityTypes = { - global: 'JamTrackGlobal', + worldwide: 'JamTrackGlobal', usa: 'JamTrackUSA' } var jamTrackActions = { @@ -253,6 +254,22 @@ context.ga('send', 'event', categories.findSession, sessionCountRollup, numSessionsFound); } + function trackJamTrackPlaySession(sessionId, inSession) { + rest.getSession(sessionId).done(function(session) { + if (session && session.jam_track_id && typeof(session.jam_track_id)!='undefined') { + rest.getJamTracks({id:session.jam_track_id}).done(function(response) { + if (response.jamtracks && response.jamtracks.length==1) { + var jamtrack = response.jamtracks[0] + trackJamTrackPlay( + jamtrack.sales_region!=context.JK.AVAILABILITY_US, + session.participants.length > 0, + inSession); + }// if + })// rest.getJamTracks + }// if + })// rest.getSession + } + function trackJamTrackPlay(isGlobal, isPublic, inSession) { assertBoolean(isGlobal) assertBoolean(isPublic) @@ -260,10 +277,11 @@ context.ga( 'send', 'event', - (isGlobal) ? CAT_JAM_TRACK_GLOBAL : CAT_JAM_TRACK_USA, - (isPublic) ? ACTION_JAM_TRACK_PUBLIC_PERFORMANCE : ACTION_JAM_TRACK_PRIVATE_USE, - (inSession) ? JAM_TRACK_IN_SESSION_LABEL : JAM_TRACK_NON_SESSION_LABEL + (isGlobal) ? jamTrackAvailabilityTypes.worldwide : jamTrackAvailabilityTypes.usa, + (isPublic) ? jamTrackActions.isPublic : jamTrackActions.isPrivate, + (inSession) ? jamTrackSessionLabels.inSession : jamTrackSessionLabels.nonSession ) + logger.debug("Tracked Jam Track Play") } // if you want to pass in no title, either omit it from the arg list when u invoke virtualPageView, or pass in undefined, NOT null @@ -298,7 +316,8 @@ } // when someone plays a recording - function trackRecordingPlay(recordingAction) { + function trackRecordingPlay(recording, recordingAction) { + if (!recordingAction) { recordingAction = _defaultPlayAction(); } @@ -306,10 +325,20 @@ var label = JK.currentUserId ? userLabels.registeredUser : userLabels.visitor; context.ga('send', 'event', categories.recordingPlay, recordingAction, label); + + if (recording.jam_track) { + rest.getJamTracks({id:recording.jam_track_id}).done(function(response) { + if (response.jamtracks && response.jamtracks.length==1) { + var jamtrack = response.jamtracks[0] + trackJamTrackPlay(jamtrack.sales_region!=context.JK.AVAILABILITY_US, recording.fan_access, false); + } + }) + } } // when someone plays a live session broadcast - function trackSessionPlay(recordingAction) { + function trackSessionPlay(session, recordingAction) { + logger.debug("Tracking session play: ", session) if (!recordingAction) { recordingAction = _defaultPlayAction(); } @@ -407,6 +436,7 @@ GA.trackServiceInvitations = trackServiceInvitations; GA.trackFindSessions = trackFindSessions; GA.trackJamTrackPlay = trackJamTrackPlay; + GA.trackJamTrackPlaySession = trackJamTrackPlaySession; GA.trackFriendConnect = trackFriendConnect; GA.trackMakeRecording = trackMakeRecording; GA.trackShareRecording = trackShareRecording; From 946640e7246ea98ce8fdab2175db0d15a534448f Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Wed, 15 Apr 2015 18:27:00 -0500 Subject: [PATCH 7/9] VRFS-2874 : Jam Track Analytics : Hook up broadcast listen. --- web/app/assets/javascripts/jquery.listenRecording.js | 4 ++++ web/app/assets/javascripts/jquery.listenbroadcast.js | 3 ++- web/app/assets/javascripts/playbackControls.js | 9 +++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/web/app/assets/javascripts/jquery.listenRecording.js b/web/app/assets/javascripts/jquery.listenRecording.js index 84a7628f7..1303f50f7 100644 --- a/web/app/assets/javascripts/jquery.listenRecording.js +++ b/web/app/assets/javascripts/jquery.listenRecording.js @@ -78,6 +78,10 @@ audioDomElement.play(); isPlaying = true; rest.addPlayablePlay(recordingId, 'JamRuby::Recording', claimedRecordingId, context.JK.currentUserId); + rest.getRecording({id: recordingId}) + .done(function(recording) { + context.JK.GA.trackRecordingPlay(recording); + }) }) } diff --git a/web/app/assets/javascripts/jquery.listenbroadcast.js b/web/app/assets/javascripts/jquery.listenbroadcast.js index f6964cd60..89c5184dd 100644 --- a/web/app/assets/javascripts/jquery.listenbroadcast.js +++ b/web/app/assets/javascripts/jquery.listenbroadcast.js @@ -112,7 +112,8 @@ waitForBufferingTimeout = setTimeout(noBuffer, WAIT_FOR_BUFFER_TIMEOUT); logger.debug("setting buffering timeout"); rest.addPlayablePlay(musicSessionId, 'JamRuby::MusicSession', null, context.JK.currentUserId); - + context.JK.GA.trackJamTrackPlaySession(musicSessionId, false) + if(needsCanPlayGuard()) { $audio.bind('canplay', function() { audioDomElement.play(); diff --git a/web/app/assets/javascripts/playbackControls.js b/web/app/assets/javascripts/playbackControls.js index 1a90712a6..cfbcf9c5b 100644 --- a/web/app/assets/javascripts/playbackControls.js +++ b/web/app/assets/javascripts/playbackControls.js @@ -58,6 +58,12 @@ update(0, playbackDurationMs, playbackPlaying); } $self.triggerHandler('play', {playbackMode: playbackMode, playbackMonitorMode: playbackMonitorMode}); + + + if(playbackMonitorMode == PLAYBACK_MONITOR_MODE.JAMTRACK) { + var sessionModel = context.JK.CurrentSessionModel || null; + context.JK.GA.trackJamTrackPlaySession(sessionModel.id(), true) + } } function stopPlay(endReached) { @@ -182,8 +188,7 @@ var positionMs = context.jamClient.SessionCurrrentJamTrackPlayPosMs(); var duration = context.jamClient.SessionGetJamTracksPlayDurationMs(); var durationMs = duration.media_len; - var start = duration.start; // needed to understand start offset, and prevent slider from moving in tapins - //console.log("JamTrack start: " + start) + var start = duration.start; // needed to understand start offset, and prevent slider from moving in tapins } else { var positionMs = context.jamClient.SessionCurrrentPlayPosMs(); From 168d1e77f1d4a3537c0b5aa3dbd31aa7f586e421 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Wed, 15 Apr 2015 18:37:07 -0500 Subject: [PATCH 8/9] VRFS-2874 : Developer tracking --- web/app/assets/javascripts/session.js | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index aa95cc944..6dd4d2a5b 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -13,8 +13,7 @@ var modUtils = context.JK.ModUtils; var logger = context.JK.logger; var self = this; - var trackedJamPlay=false; - + var defaultParticipant = { tracks: [{ instrument_id: "unknown" @@ -2718,17 +2717,12 @@ function playJamTrack(jamTrackId) { var participantCnt=sessionModel.participants().length rest.playJamTrack(jamTrackId) - logger.debug("trackedJamPlay", trackedJamPlay) - if(!trackedJamPlay) {//} && participantCnt > 1) { - - context.stats.write('web.jamtrack.play', { - value: 1, - session_size: participantCnt, - user_id: context.JK.currentUserId, - user_name: context.JK.currentUserName - }) - trackedJamPlay=true - }// if + context.stats.write('web.jamtrack.open', { + value: 1, + session_size: participantCnt, + user_id: context.JK.currentUserId, + user_name: context.JK.currentUserName + }) }// function function openBackingTrackFile(e) { From 705e67a810a657870e13818f2fa37ad476e2f49d Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Thu, 16 Apr 2015 00:21:45 -0500 Subject: [PATCH 9/9] VRFS-2874 : Clean up code and logic - fixes problem of false positive. --- ruby/lib/jam_ruby/models/recording.rb | 2 +- web/app/assets/javascripts/ga.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ruby/lib/jam_ruby/models/recording.rb b/ruby/lib/jam_ruby/models/recording.rb index 43470c016..16b0aa1dd 100644 --- a/ruby/lib/jam_ruby/models/recording.rb +++ b/ruby/lib/jam_ruby/models/recording.rb @@ -3,7 +3,7 @@ module JamRuby @@log = Logging.logger[Recording] - attr_accessible :owner, :owner_id, :band, :band_id, :recorded_tracks_attributes, :mixes_attributes, :claimed_recordings_attributes, :name, :description, :genre, :is_public, :duration, as: :admin + attr_accessible :owner, :owner_id, :band, :band_id, :recorded_tracks_attributes, :mixes_attributes, :claimed_recordings_attributes, :name, :description, :genre, :is_public, :duration, :jam_track_id, as: :admin has_many :users, :through => :recorded_tracks, :class_name => "JamRuby::User" has_many :claimed_recordings, :class_name => "JamRuby::ClaimedRecording", :inverse_of => :recording, :foreign_key => 'recording_id', :dependent => :destroy diff --git a/web/app/assets/javascripts/ga.js b/web/app/assets/javascripts/ga.js index cb297b28c..8e51a081e 100644 --- a/web/app/assets/javascripts/ga.js +++ b/web/app/assets/javascripts/ga.js @@ -256,13 +256,13 @@ function trackJamTrackPlaySession(sessionId, inSession) { rest.getSession(sessionId).done(function(session) { - if (session && session.jam_track_id && typeof(session.jam_track_id)!='undefined') { - rest.getJamTracks({id:session.jam_track_id}).done(function(response) { - if (response.jamtracks && response.jamtracks.length==1) { + if (session && session.jam_track ) { + rest.getJamTracks({id:session.jam_track.id}).done(function(response) { + if (response.jamtracks && response.jamtracks.length!=0) { var jamtrack = response.jamtracks[0] trackJamTrackPlay( jamtrack.sales_region!=context.JK.AVAILABILITY_US, - session.participants.length > 0, + session.participants.length > 1, inSession); }// if })// rest.getJamTracks