         let loader = IncitoLoader { callback in
             incitoPropertyLoader
                 .observeResultSuccess({
-                    expectedIncitoId = $0.publicationId
-                    isAlsoPagedPublication = $0.isAlsoPagedPublication
+                    if eventTriggeredForId != $0.publicationId && TjekEventsTracker.isInitialized {
+                        eventTriggeredForId = $0.publicationId
+                        
+                        TjekEventsTracker.shared.trackEvent(
+                            .incitoPublicationOpened(
+                                $0.publicationId,
+                                isAlsoPagedPublication: $0.isAlsoPagedPublication
+                            )
+                        )
+                    }
                 })
                 .flatMapResult({
                     incitoLoaderBuilder($0.publicationId)

        }
        
        self.load(
            incitoPublicationId: publication.id,
            incitoPropertyLoader: .init(value: .success((publication.id, publication.hasPagedPublication))),
            featureLabelWeights: featureLabelWeights,
            apiClient: apiClient,
            completion: completion
        )
    }
    
    private func firstSuccessfulReload(incitoPublicationId: PublicationId, isAlsoPagedPublication: Bool) {
        
        // On first successful load, trigger the incitoOpened event (if the events tracker has been configured)
        if TjekEventsTracker.isInitialized {
            TjekEventsTracker.shared.trackEvent(
                .incitoPublicationOpened(
                    incitoPublicationId,
                    isAlsoPagedPublication: isAlsoPagedPublication
                )
            )
        }
    }
}

extension IncitoLoaderViewController {
    
    private func load(
        incitoPropertyLoader: FutureResult<(publicationId: PublicationId, isAlsoPagedPublication: Bool)>,
        featureLabelWeights: [String: Double],
        apiClient: TjekAPI,
        completion: ((Result<(viewController: IncitoViewController, firstSuccessfulLoad: Bool), Error>) -> Void)? = nil
    ) {
        var hasLoadedIncito: Bool = false
        var eventTriggeredForId: PublicationId? = nil
        
        // every time the loader is called, fetch the width of the screen
        let incitoLoaderBuilder: (PublicationId) -> Future<Result<IncitoDocument, Error>> = { [weak self] incitoId in
