diff --git a/apple/OmnivoreKit/Sources/App/Views/AI/FullScreenDigestView.swift b/apple/OmnivoreKit/Sources/App/Views/AI/FullScreenDigestView.swift index 94ea44818..3ee28662a 100644 --- a/apple/OmnivoreKit/Sources/App/Views/AI/FullScreenDigestView.swift +++ b/apple/OmnivoreKit/Sources/App/Views/AI/FullScreenDigestView.swift @@ -76,12 +76,17 @@ public class FullScreenDigestViewModel: ObservableObject { self.isRunning = digest.jobState == "RUNNING" || digest.jobState == "PENDING" self.hasError = digest.jobState == "FAILED" - if let playingDigest = audioController.itemAudioProperties as? DigestAudioItem, playingDigest.digest.id == digest.id { + if let playingDigest = audioController.itemAudioProperties as? DigestAudioItem, + playingDigest.digest.id == digest.id { // Don't think we need to do anything here } else { let chapterData = self.chapterInfo?.map { $0.1 } audioController.play(itemAudioProperties: DigestAudioItem(digest: digest, chapters: chapterData ?? [])) } + + EventTracker.track( + .digestOpened(digestID: digest.id) + ) } else { hasError = true } @@ -200,7 +205,7 @@ struct FullScreenDigestView: View { await viewModel.load(dataService: dataService, audioController: audioController) } } - + var jobRunningText: some View { VStack { Spacer() diff --git a/apple/OmnivoreKit/Sources/Utils/EventTracking/TrackableEvents.swift b/apple/OmnivoreKit/Sources/Utils/EventTracking/TrackableEvents.swift index 1678526f0..3488b7fbe 100644 --- a/apple/OmnivoreKit/Sources/Utils/EventTracking/TrackableEvents.swift +++ b/apple/OmnivoreKit/Sources/Utils/EventTracking/TrackableEvents.swift @@ -6,6 +6,7 @@ public enum TrackableEvent { case backgroundFetch(jobStatus: BackgroundFetchJobStatus, itemCount: Int, secondsElapsed: Int) case audioSessionStart(linkID: String, voice: String, voiceProvider: String) case audioSessionEnd(linkID: String, timeElapsed: Double) + case digestOpened(digestID: String) } public enum BackgroundFetchJobStatus: String { @@ -28,6 +29,8 @@ public extension TrackableEvent { return "audio_session_start" case .audioSessionEnd: return "audio_session_end" + case .digestOpened: + return "digest_opened" } } @@ -59,6 +62,11 @@ public extension TrackableEvent { "link": linkID, "timeElapsed": String(timeElapsed) ] + case let .digestOpened(digestID: digestID): + return [ + "channel": "push", + "digestID": digestID + ] } } }