From c02567fae00011fd5f288a1cb39353e2b8f2a66f Mon Sep 17 00:00:00 2001 From: NachoSoto Date: Thu, 14 Sep 2023 11:16:18 -0700 Subject: [PATCH] `Paywalls`: renamed `PaywallEvent.view` to `.impression` Suggested by @aboedo, makes this less ambiguous with `PaywallView`. --- RevenueCatUI/PaywallView.swift | 2 +- RevenueCatUI/Purchasing/PurchaseHandler.swift | 4 +- .../Networking/PaywallEventsRequest.swift | 2 +- Sources/Paywalls/Events/PaywallEvent.swift | 4 +- .../Purchases/PurchasesOrchestrator.swift | 2 +- .../SwiftAPITester/PaywallAPI.swift | 2 +- .../PaywallEventsIntegrationTests.swift | 12 +++--- .../PaywallViewEventsTests.swift | 28 +++++++------- .../PurchasesOrchestratorTests.swift | 8 ++-- .../Events/PaywallEventSerializerTests.swift | 8 ++-- .../Events/PaywallEventStoreTests.swift | 38 +++++++++---------- .../Events/PaywallEventsBackendTests.swift | 4 +- .../Events/PaywallEventsManagerTests.swift | 6 +-- .../Events/PaywallEventsRequestTests.swift | 4 +- ...vent.1.json => testImpressionEvent.1.json} | 0 15 files changed, 62 insertions(+), 62 deletions(-) rename Tests/UnitTests/Paywalls/Events/__Snapshots__/PaywallEventsRequestTests/{testViewEvent.1.json => testImpressionEvent.1.json} (100%) diff --git a/RevenueCatUI/PaywallView.swift b/RevenueCatUI/PaywallView.swift index 514dd19d2d..fac695bebc 100644 --- a/RevenueCatUI/PaywallView.swift +++ b/RevenueCatUI/PaywallView.swift @@ -246,7 +246,7 @@ struct LoadedOfferingPaywallView: View { .preference(key: RestoredCustomerInfoPreferenceKey.self, value: self.purchaseHandler.restoredCustomerInfo) .disabled(self.purchaseHandler.actionInProgress) - .onAppear { self.purchaseHandler.trackPaywallView(self.eventData) } + .onAppear { self.purchaseHandler.trackPaywallImpression(self.eventData) } .onDisappear { self.purchaseHandler.trackPaywallClose(self.eventData) } switch self.mode { diff --git a/RevenueCatUI/Purchasing/PurchaseHandler.swift b/RevenueCatUI/Purchasing/PurchaseHandler.swift index 64929bffa9..3cb01a3b0c 100644 --- a/RevenueCatUI/Purchasing/PurchaseHandler.swift +++ b/RevenueCatUI/Purchasing/PurchaseHandler.swift @@ -106,9 +106,9 @@ extension PurchaseHandler { return customerInfo } - func trackPaywallView(_ eventData: PaywallEvent.Data) { + func trackPaywallImpression(_ eventData: PaywallEvent.Data) { self.eventData = eventData - self.track(.view(eventData)) + self.track(.impression(eventData)) } func trackPaywallClose(_ eventData: PaywallEvent.Data) { diff --git a/Sources/Paywalls/Events/Networking/PaywallEventsRequest.swift b/Sources/Paywalls/Events/Networking/PaywallEventsRequest.swift index ec60f77e2a..980197aaaa 100644 --- a/Sources/Paywalls/Events/Networking/PaywallEventsRequest.swift +++ b/Sources/Paywalls/Events/Networking/PaywallEventsRequest.swift @@ -85,7 +85,7 @@ private extension PaywallEvent { var eventType: PaywallEventsRequest.EventType { switch self { - case .view: return .impression + case .impression: return .impression case .cancel: return .cancel case .close: return .close } diff --git a/Sources/Paywalls/Events/PaywallEvent.swift b/Sources/Paywalls/Events/PaywallEvent.swift index b9420ae001..182ceb1195 100644 --- a/Sources/Paywalls/Events/PaywallEvent.swift +++ b/Sources/Paywalls/Events/PaywallEvent.swift @@ -20,7 +20,7 @@ public enum PaywallEvent { public typealias SessionID = UUID /// A `PaywallView` was displayed. - case view(Data) + case impression(Data) /// A purchase was cancelled. case cancel(Data) @@ -92,7 +92,7 @@ extension PaywallEvent { /// - Returns: the underlying ``PaywallEvent/Data-swift.struct`` for this event. public var data: Data { switch self { - case let .view(data): return data + case let .impression(data): return data case let .cancel(data): return data case let .close(data): return data } diff --git a/Sources/Purchasing/Purchases/PurchasesOrchestrator.swift b/Sources/Purchasing/Purchases/PurchasesOrchestrator.swift index 3abec67a30..4ccfdb9f25 100644 --- a/Sources/Purchasing/Purchases/PurchasesOrchestrator.swift +++ b/Sources/Purchasing/Purchases/PurchasesOrchestrator.swift @@ -549,7 +549,7 @@ final class PurchasesOrchestrator { func track(paywallEvent: PaywallEvent) { switch paywallEvent { - case let .view(data): + case let .impression(data): self.cachePresentedPaywall(data) case .close: diff --git a/Tests/APITesters/SwiftAPITester/SwiftAPITester/PaywallAPI.swift b/Tests/APITesters/SwiftAPITester/SwiftAPITester/PaywallAPI.swift index ef8c7ecb08..c20ba7f1db 100644 --- a/Tests/APITesters/SwiftAPITester/SwiftAPITester/PaywallAPI.swift +++ b/Tests/APITesters/SwiftAPITester/SwiftAPITester/PaywallAPI.swift @@ -166,7 +166,7 @@ func checkPaywallEvent(_ event: PaywallEvent) { let _: PaywallEvent.SessionID = UUID() switch event { - case let .view(data): checkPaywallEventData(data) + case let .impression(data): checkPaywallEventData(data) case let .cancel(data): checkPaywallEventData(data) case let .close(data): checkPaywallEventData(data) @unknown default: break diff --git a/Tests/BackendIntegrationTests/PaywallEventsIntegrationTests.swift b/Tests/BackendIntegrationTests/PaywallEventsIntegrationTests.swift index fb3d92189b..44106b72fd 100644 --- a/Tests/BackendIntegrationTests/PaywallEventsIntegrationTests.swift +++ b/Tests/BackendIntegrationTests/PaywallEventsIntegrationTests.swift @@ -42,7 +42,7 @@ class PaywallEventsIntegrationTests: BaseStoreKitIntegrationTests { } func testPurchasingPackageWithPresentedPaywall() async throws { - try await self.purchases.track(paywallEvent: .view(self.eventData)) + try await self.purchases.track(paywallEvent: .impression(self.eventData)) let transaction = try await XCTAsyncUnwrap(try await self.purchases.purchase(package: package).transaction) @@ -50,7 +50,7 @@ class PaywallEventsIntegrationTests: BaseStoreKitIntegrationTests { } func testPurchasingPackageAfterClearingPresentedPaywall() async throws { - try await self.purchases.track(paywallEvent: .view(self.eventData)) + try await self.purchases.track(paywallEvent: .impression(self.eventData)) try await self.purchases.track(paywallEvent: .close(self.eventData)) let transaction = try await XCTAsyncUnwrap(try await self.purchases.purchase(package: self.package).transaction) @@ -62,7 +62,7 @@ class PaywallEventsIntegrationTests: BaseStoreKitIntegrationTests { self.testSession.failTransactionsEnabled = true self.testSession.failureError = .unknown - try await self.purchases.track(paywallEvent: .view(self.eventData)) + try await self.purchases.track(paywallEvent: .impression(self.eventData)) do { _ = try await self.purchases.purchase(package: self.package) @@ -85,7 +85,7 @@ class PaywallEventsIntegrationTests: BaseStoreKitIntegrationTests { } func testFlushingEvents() async throws { - try await self.purchases.track(paywallEvent: .view(self.eventData)) + try await self.purchases.track(paywallEvent: .impression(self.eventData)) try await self.purchases.track(paywallEvent: .cancel(self.eventData)) try await self.purchases.track(paywallEvent: .close(self.eventData)) @@ -94,7 +94,7 @@ class PaywallEventsIntegrationTests: BaseStoreKitIntegrationTests { } func testFlushingEventsClearsThem() async throws { - try await self.purchases.track(paywallEvent: .view(self.eventData)) + try await self.purchases.track(paywallEvent: .impression(self.eventData)) try await self.purchases.track(paywallEvent: .cancel(self.eventData)) try await self.purchases.track(paywallEvent: .close(self.eventData)) @@ -104,7 +104,7 @@ class PaywallEventsIntegrationTests: BaseStoreKitIntegrationTests { } func testRemembersEventsWhenReopeningApp() async throws { - try await self.purchases.track(paywallEvent: .view(self.eventData)) + try await self.purchases.track(paywallEvent: .impression(self.eventData)) try await self.purchases.track(paywallEvent: .close(self.eventData)) await self.resetSingleton() diff --git a/Tests/RevenueCatUITests/PaywallViewEventsTests.swift b/Tests/RevenueCatUITests/PaywallViewEventsTests.swift index 700959ef18..cb39861931 100644 --- a/Tests/RevenueCatUITests/PaywallViewEventsTests.swift +++ b/Tests/RevenueCatUITests/PaywallViewEventsTests.swift @@ -29,7 +29,7 @@ class PaywallViewEventsTests: TestCase { private let mode: PaywallViewMode = .random private let scheme: ColorScheme = Bool.random() ? .dark : .light - private var viewEventExpectation: XCTestExpectation! + private var impressionEventExpectation: XCTestExpectation! private var closeEventExpectation: XCTestExpectation! private var cancelEventExpectation: XCTestExpectation! @@ -44,12 +44,12 @@ class PaywallViewEventsTests: TestCase { } } - self.viewEventExpectation = .init(description: "View event") + self.impressionEventExpectation = .init(description: "Impression event") self.closeEventExpectation = .init(description: "Close event") self.cancelEventExpectation = .init(description: "Cancel event") } - func testPaywallViewEvent() async throws { + func testPaywallImpressionEvent() async throws { let expectation = XCTestExpectation() try self.createView() @@ -58,9 +58,9 @@ class PaywallViewEventsTests: TestCase { await self.fulfillment(of: [expectation], timeout: 1) - expect(self.events).to(containElementSatisfying { $0.eventType == .view }) + expect(self.events).to(containElementSatisfying { $0.eventType == .impression }) - let event = try XCTUnwrap(self.events.first { $0.eventType == .view }) + let event = try XCTUnwrap(self.events.first { $0.eventType == .impression }) self.verifyEventData(event.data) } @@ -73,7 +73,7 @@ class PaywallViewEventsTests: TestCase { expect(self.events).to(haveCount(2)) expect(self.events).to(containElementSatisfying { $0.eventType == .close }) - let event = try XCTUnwrap(self.events.first { $0.eventType == .view }) + let event = try XCTUnwrap(self.events.first { $0.eventType == .impression }) self.verifyEventData(event.data) } @@ -84,7 +84,7 @@ class PaywallViewEventsTests: TestCase { await self.fulfillment(of: [self.closeEventExpectation], timeout: 1) expect(self.events).to(haveCount(2)) - expect(self.events.map(\.eventType)) == [.view, .close] + expect(self.events.map(\.eventType)) == [.impression, .close] expect(Set(self.events.map(\.data.sessionIdentifier))).to(haveCount(1)) } @@ -98,7 +98,7 @@ class PaywallViewEventsTests: TestCase { timeout: 1) expect(self.events).to(haveCount(3)) - expect(self.events.map(\.eventType)).to(contain([.view, .cancel, .close])) + expect(self.events.map(\.eventType)).to(contain([.impression, .cancel, .close])) expect(Set(self.events.map(\.data.sessionIdentifier))).to(haveCount(1)) let data = try XCTUnwrap(self.events.first { $0.eventType == .cancel }).data @@ -106,7 +106,7 @@ class PaywallViewEventsTests: TestCase { } func testDifferentPaywallsCreateSeparateSessionIdentifiers() async throws { - self.viewEventExpectation.expectedFulfillmentCount = 2 + self.impressionEventExpectation.expectedFulfillmentCount = 2 self.closeEventExpectation.expectedFulfillmentCount = 2 let firstCloseExpectation = XCTestExpectation(description: "First paywall was closed") @@ -120,10 +120,10 @@ class PaywallViewEventsTests: TestCase { try self.createView() .addToHierarchy() - await self.fulfillment(of: [self.viewEventExpectation, self.closeEventExpectation], timeout: 1) + await self.fulfillment(of: [self.impressionEventExpectation, self.closeEventExpectation], timeout: 1) expect(self.events).to(haveCount(4)) - expect(self.events.map(\.eventType)) == [.view, .close, .view, .close] + expect(self.events.map(\.eventType)) == [.impression, .close, .impression, .close] expect(Set(self.events.map(\.data.sessionIdentifier))).to(haveCount(2)) } @@ -140,7 +140,7 @@ private extension PaywallViewEventsTests { self.events.append(event) switch event { - case .view: self.viewEventExpectation.fulfill() + case .impression: self.impressionEventExpectation.fulfill() case .cancel: self.cancelEventExpectation.fulfill() case .close: self.closeEventExpectation.fulfill() } @@ -179,7 +179,7 @@ private extension PaywallEvent { enum EventType { - case view + case impression case cancel case close @@ -187,7 +187,7 @@ private extension PaywallEvent { var eventType: EventType { switch self { - case .view: return .view + case .impression: return .impression case .cancel: return .cancel case .close: return .close } diff --git a/Tests/StoreKitUnitTests/PurchasesOrchestratorTests.swift b/Tests/StoreKitUnitTests/PurchasesOrchestratorTests.swift index 5aa4abeceb..9033962672 100644 --- a/Tests/StoreKitUnitTests/PurchasesOrchestratorTests.swift +++ b/Tests/StoreKitUnitTests/PurchasesOrchestratorTests.swift @@ -266,7 +266,7 @@ class PurchasesOrchestratorTests: StoreKitConfigTestCase { let product = try await self.fetchSk1Product() let payment = self.storeKit1Wrapper.payment(with: product) - self.orchestrator.track(paywallEvent: .view(Self.paywallEvent)) + self.orchestrator.track(paywallEvent: .impression(Self.paywallEvent)) _ = await withCheckedContinuation { continuation in self.orchestrator.purchase( @@ -299,7 +299,7 @@ class PurchasesOrchestratorTests: StoreKitConfigTestCase { } } - self.orchestrator.track(paywallEvent: .view(Self.paywallEvent)) + self.orchestrator.track(paywallEvent: .impression(Self.paywallEvent)) self.customerInfoManager.stubbedCachedCustomerInfoResult = self.mockCustomerInfo self.backend.stubbedPostReceiptResult = .failure(.unexpectedBackendResponse(.customerInfoNil)) @@ -720,7 +720,7 @@ class PurchasesOrchestratorTests: StoreKitConfigTestCase { self.customerInfoManager.stubbedCachedCustomerInfoResult = self.mockCustomerInfo self.backend.stubbedPostReceiptResult = .success(self.mockCustomerInfo) - self.orchestrator.track(paywallEvent: .view(Self.paywallEvent)) + self.orchestrator.track(paywallEvent: .impression(Self.paywallEvent)) let mockListener = try XCTUnwrap( self.orchestrator.storeKit2TransactionListener as? MockStoreKit2TransactionListener @@ -747,7 +747,7 @@ class PurchasesOrchestratorTests: StoreKitConfigTestCase { let product = try await self.fetchSk2Product() - self.orchestrator.track(paywallEvent: .view(Self.paywallEvent)) + self.orchestrator.track(paywallEvent: .impression(Self.paywallEvent)) self.customerInfoManager.stubbedCachedCustomerInfoResult = self.mockCustomerInfo diff --git a/Tests/UnitTests/Paywalls/Events/PaywallEventSerializerTests.swift b/Tests/UnitTests/Paywalls/Events/PaywallEventSerializerTests.swift index 87424ef4cd..6ff3b9be6e 100644 --- a/Tests/UnitTests/Paywalls/Events/PaywallEventSerializerTests.swift +++ b/Tests/UnitTests/Paywalls/Events/PaywallEventSerializerTests.swift @@ -24,8 +24,8 @@ class PaywallEventSerializerTests: TestCase { try AvailabilityChecks.iOS15APIAvailableOrSkipTest() } - func testEncodeViewEvent() throws { - let event: PaywallStoredEvent = .init(event: .view(.random()), userID: Self.userID) + func testEncodeImpressionEvent() throws { + let event: PaywallStoredEvent = .init(event: .impression(.random()), userID: Self.userID) let encoded = try PaywallEventSerializer.encode(event) let decoded: PaywallStoredEvent = try JSONDecoder.default.decode(jsonData: encoded.asData) @@ -34,8 +34,8 @@ class PaywallEventSerializerTests: TestCase { expect(decoded) == event } - func testDecodeViewEvent() throws { - let event: PaywallStoredEvent = .init(event: .view(.random()), userID: Self.userID) + func testDecodeImpressionEvent() throws { + let event: PaywallStoredEvent = .init(event: .impression(.random()), userID: Self.userID) expect(try event.encodeAndDecode()) == event } diff --git a/Tests/UnitTests/Paywalls/Events/PaywallEventStoreTests.swift b/Tests/UnitTests/Paywalls/Events/PaywallEventStoreTests.swift index ae15cd8219..b8e20be5b6 100644 --- a/Tests/UnitTests/Paywalls/Events/PaywallEventStoreTests.swift +++ b/Tests/UnitTests/Paywalls/Events/PaywallEventStoreTests.swift @@ -51,7 +51,7 @@ class PaywallEventStoreTests: TestCase { } func testStoreOneEvent() async { - let event: PaywallStoredEvent = .randomViewEvent() + let event: PaywallStoredEvent = .randomImpressionEvent() await self.store.store(event) @@ -60,7 +60,7 @@ class PaywallEventStoreTests: TestCase { } func testFetchEventsDoesNotRemoveEvents() async { - await self.store.store(.randomViewEvent()) + await self.store.store(.randomImpressionEvent()) let eventsBeforeFetching = await self.store.fetch(1) let eventsAfterFetching = await self.store.fetch(1) @@ -70,8 +70,8 @@ class PaywallEventStoreTests: TestCase { } func testStoreMultipleEvents() async { - let event1: PaywallStoredEvent = .randomViewEvent() - let event2: PaywallStoredEvent = .randomViewEvent() + let event1: PaywallStoredEvent = .randomImpressionEvent() + let event2: PaywallStoredEvent = .randomImpressionEvent() await self.store.store(event1) await self.store.store(event2) @@ -81,22 +81,22 @@ class PaywallEventStoreTests: TestCase { } func testFetchOnlySomeEvents() async { - let event: PaywallStoredEvent = .randomViewEvent() + let event: PaywallStoredEvent = .randomImpressionEvent() await self.store.store(event) - await self.store.store(.randomViewEvent()) - await self.store.store(.randomViewEvent()) + await self.store.store(.randomImpressionEvent()) + await self.store.store(.randomImpressionEvent()) let events = await self.store.fetch(1) expect(events) == [event] } func testFetchEventsWithUnrecognizedLines() async { - let event: PaywallStoredEvent = .randomViewEvent() + let event: PaywallStoredEvent = .randomImpressionEvent() await self.store.store(event) await self.handler.append(line: "not an event") - await self.store.store(.randomViewEvent()) + await self.store.store(.randomImpressionEvent()) let events = await self.store.fetch(2) expect(events) == [event] @@ -112,7 +112,7 @@ class PaywallEventStoreTests: TestCase { } func testClearSingleEvent() async { - let event: PaywallStoredEvent = .randomViewEvent() + let event: PaywallStoredEvent = .randomImpressionEvent() await self.store.store(event) await self.store.clear(1) @@ -123,9 +123,9 @@ class PaywallEventStoreTests: TestCase { func testClearOnlyOneEvent() async { let storedEvents: [PaywallStoredEvent] = [ - .randomViewEvent(), - .randomViewEvent(), - .randomViewEvent() + .randomImpressionEvent(), + .randomImpressionEvent(), + .randomImpressionEvent() ] for event in storedEvents { @@ -142,7 +142,7 @@ class PaywallEventStoreTests: TestCase { let count = 3 for _ in 0.. Self { - return .view(.random()) + static func randomImpressionEvent() -> Self { + return .impression(.random()) } } @@ -203,8 +203,8 @@ extension PaywallEvent { @available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *) private extension PaywallStoredEvent { - static func randomViewEvent() -> Self { - return .init(event: .randomViewEvent(), userID: UUID().uuidString) + static func randomImpressionEvent() -> Self { + return .init(event: .randomImpressionEvent(), userID: UUID().uuidString) } } diff --git a/Tests/UnitTests/Paywalls/Events/PaywallEventsBackendTests.swift b/Tests/UnitTests/Paywalls/Events/PaywallEventsBackendTests.swift index b9522e8637..3052161b2c 100644 --- a/Tests/UnitTests/Paywalls/Events/PaywallEventsBackendTests.swift +++ b/Tests/UnitTests/Paywalls/Events/PaywallEventsBackendTests.swift @@ -40,7 +40,7 @@ class BackendPaywallEventTests: BaseBackendTests { } func testPostPaywallEventsWithOneEvent() { - let event: PaywallStoredEvent = .init(event: .view(Self.event1), userID: Self.userID) + let event: PaywallStoredEvent = .init(event: .impression(Self.event1), userID: Self.userID) let error = waitUntilValue { completion in self.internalAPI.postPaywallEvents(events: [event], completion: completion) @@ -50,7 +50,7 @@ class BackendPaywallEventTests: BaseBackendTests { } func testPostPaywallEventsWithMultipleEvents() { - let event1: PaywallStoredEvent = .init(event: .view(Self.event1), userID: Self.userID) + let event1: PaywallStoredEvent = .init(event: .impression(Self.event1), userID: Self.userID) let event2: PaywallStoredEvent = .init(event: .close(Self.event2), userID: Self.userID) let error = waitUntilValue { completion in diff --git a/Tests/UnitTests/Paywalls/Events/PaywallEventsManagerTests.swift b/Tests/UnitTests/Paywalls/Events/PaywallEventsManagerTests.swift index f09a44fa9a..f317cfe440 100644 --- a/Tests/UnitTests/Paywalls/Events/PaywallEventsManagerTests.swift +++ b/Tests/UnitTests/Paywalls/Events/PaywallEventsManagerTests.swift @@ -42,7 +42,7 @@ class PaywallEventsManagerTests: TestCase { // MARK: - trackEvent func testTrackEvent() async { - let event: PaywallEvent = .view(.random()) + let event: PaywallEvent = .impression(.random()) await self.manager.track(paywallEvent: event) @@ -53,7 +53,7 @@ class PaywallEventsManagerTests: TestCase { } func testTrackMultipleEvents() async { - let event1: PaywallEvent = .view(.random()) + let event1: PaywallEvent = .impression(.random()) let event2: PaywallEvent = .close(.random()) await self.manager.track(paywallEvent: event1) @@ -225,7 +225,7 @@ class PaywallEventsManagerTests: TestCase { private extension PaywallEventsManagerTests { func storeRandomEvent() async -> PaywallEvent { - let event: PaywallEvent = .view(.random()) + let event: PaywallEvent = .impression(.random()) await self.manager.track(paywallEvent: event) return event diff --git a/Tests/UnitTests/Paywalls/Events/PaywallEventsRequestTests.swift b/Tests/UnitTests/Paywalls/Events/PaywallEventsRequestTests.swift index 554ad5f77d..a4a6a3afd8 100644 --- a/Tests/UnitTests/Paywalls/Events/PaywallEventsRequestTests.swift +++ b/Tests/UnitTests/Paywalls/Events/PaywallEventsRequestTests.swift @@ -25,8 +25,8 @@ class PaywallEventsRequestTests: TestCase { try AvailabilityChecks.iOS15APIAvailableOrSkipTest() } - func testViewEvent() throws { - let event: PaywallStoredEvent = .init(event: .view(Self.eventData), userID: Self.userID) + func testImpressionEvent() throws { + let event: PaywallStoredEvent = .init(event: .impression(Self.eventData), userID: Self.userID) let requestEvent: PaywallEventsRequest.Event = .init(storedEvent: event) assertSnapshot(matching: requestEvent, as: .formattedJson) diff --git a/Tests/UnitTests/Paywalls/Events/__Snapshots__/PaywallEventsRequestTests/testViewEvent.1.json b/Tests/UnitTests/Paywalls/Events/__Snapshots__/PaywallEventsRequestTests/testImpressionEvent.1.json similarity index 100% rename from Tests/UnitTests/Paywalls/Events/__Snapshots__/PaywallEventsRequestTests/testViewEvent.1.json rename to Tests/UnitTests/Paywalls/Events/__Snapshots__/PaywallEventsRequestTests/testImpressionEvent.1.json