         }
     }
     
+    override func viewWillAppear(_ animated: Bool) {
+        super.viewWillAppear(animated)
+        if environment.session.currentUser != nil {
+            webviewHelper?.refreshView()
+        }
+        logScreenEvent()
+    }
+    
+    private func logScreenEvent() {
+        if let _ = pathId {
+            environment.analytics.trackScreen(withName: AnalyticsScreenName.ProgramInfo.rawValue)
+        }
+        else {
+            environment.analytics.trackScreen(withName: AnalyticsScreenName.DiscoverProgram.rawValue)
+        }
+    }
+    
     private func loadProgramDetails(with pathId: String) {
         addBackBarButton()
         if let detailTemplate = discoveryConfig?.webview.detailTemplate?.replacingOccurrences(of: URIString.pathPlaceHolder.rawValue, with: pathId),

        else {
            assert(false, "Unable to get search URL.")
        }
        environment.analytics.trackScreen(withName: AnalyticsScreenName.DiscoverProgram.rawValue)
    }
    
    private func load(url :URL, searchQuery: String? = nil, showBottomBar: Bool = true, showSearch: Bool = false, searchBaseURL: URL? = nil) {

        else {
            assert(false, "Unable to make detail URL.")
        }
    }
    
    private func loadPrograms(with url: URL?) {
