From feee1ce5bead419424c3c0b3e5fcad414c2ea60b Mon Sep 17 00:00:00 2001 From: NoMoreViolence Date: Wed, 18 Dec 2024 15:05:59 +0900 Subject: [PATCH] [feat]: add new added events --- BluxClient/Classes/BluxClient.swift | 11 ++- BluxClient/Classes/WebViewController.swift | 2 +- .../request/events/AddCartaddEvent.swift | 12 +-- .../request/events/AddCustomEvent.swift | 12 ++- .../request/events/AddInstantImpression.swift | 50 +++++++++++ .../Classes/request/events/AddLikeEvent.swift | 12 +-- .../request/events/AddPageViewEvent.swift | 17 ++-- .../request/events/AddPageVisitEvent.swift | 30 +++++++ .../events/AddPersistentImpression.swift | 50 +++++++++++ .../events/AddProductDetailViewEvent.swift | 37 ++++++-- .../request/events/AddPurchaseEvent.swift | 16 ++-- .../Classes/request/events/AddRateEvent.swift | 20 ++--- .../request/events/AddSectionViewEvent.swift | 41 +++++++++ BluxClient/Classes/request/events/Event.swift | 87 +++++++++++++++++-- Example/Pods/Pods.xcodeproj/project.pbxproj | 16 ++++ 15 files changed, 345 insertions(+), 68 deletions(-) create mode 100644 BluxClient/Classes/request/events/AddInstantImpression.swift create mode 100644 BluxClient/Classes/request/events/AddPageVisitEvent.swift create mode 100644 BluxClient/Classes/request/events/AddPersistentImpression.swift create mode 100644 BluxClient/Classes/request/events/AddSectionViewEvent.swift diff --git a/BluxClient/Classes/BluxClient.swift b/BluxClient/Classes/BluxClient.swift index 9202756..b5b29d5 100644 --- a/BluxClient/Classes/BluxClient.swift +++ b/BluxClient/Classes/BluxClient.swift @@ -287,15 +287,14 @@ struct PropertiesWrapper: Codable { } } - public static func sendRequestData(_ data: [Event]) { - EventService.sendRequest(data) - InappService.handleInappEvent(data) + public static func sendRequestData(_ events: [Event]) { + EventService.sendRequest(events) + InappService.handleInappEvent(events) } /// Send Request - public static func sendRequest(_ request: EventRequest) { - let requestData = request.getPayload() - sendRequestData(requestData) + public static func sendRequest(_ eventRequest: EventRequest) { + sendRequestData(eventRequest.getPayload()) } /// Set the handler when notification is clicked diff --git a/BluxClient/Classes/WebViewController.swift b/BluxClient/Classes/WebViewController.swift index 27f9ad3..dfa5f4c 100644 --- a/BluxClient/Classes/WebViewController.swift +++ b/BluxClient/Classes/WebViewController.swift @@ -5,7 +5,7 @@ // Created by Tommy on 6/4/24. // import UIKit -import WebKit +@preconcurrency import WebKit @available(iOSApplicationExtension, unavailable) final class WebViewController: UIViewController, WKNavigationDelegate, diff --git a/BluxClient/Classes/request/events/AddCartaddEvent.swift b/BluxClient/Classes/request/events/AddCartaddEvent.swift index 18043a4..c6a4942 100644 --- a/BluxClient/Classes/request/events/AddCartaddEvent.swift +++ b/BluxClient/Classes/request/events/AddCartaddEvent.swift @@ -5,17 +5,18 @@ public class AddCartaddEvent: EventRequest { init(builder: Builder) throws { super.init() - self.events.append( - try Event(eventType: builder.eventType) + try self.events.append( + Event(eventType: builder.eventType) .setItemId(builder.itemId) .setCustomEventProperties(builder.customEventProperties) ) } public class Builder { - var itemId: String - var eventType: String = AddCartaddEvent.DEFAULT_EVENT_TYPE - var customEventProperties: [String: String]? = nil + fileprivate let eventType: String = AddCartaddEvent.DEFAULT_EVENT_TYPE + + fileprivate var itemId: String + fileprivate var customEventProperties: [String: String]? = nil public init(itemId: String) { self.itemId = itemId @@ -31,4 +32,3 @@ public class AddCartaddEvent: EventRequest { } } } - diff --git a/BluxClient/Classes/request/events/AddCustomEvent.swift b/BluxClient/Classes/request/events/AddCustomEvent.swift index 4e2f163..6a23901 100644 --- a/BluxClient/Classes/request/events/AddCustomEvent.swift +++ b/BluxClient/Classes/request/events/AddCustomEvent.swift @@ -11,14 +11,20 @@ public class AddCustomEvent: EventRequest { } public class Builder { - var itemId: String? - var eventType: String - var customEventProperties: [String: String]? = nil + fileprivate let eventType: String + + fileprivate var itemId: String? + fileprivate var customEventProperties: [String: String]? = nil public init(eventType: String) { self.eventType = eventType } + public func itemId(_ itemId: String) -> Builder { + self.itemId = itemId + return self + } + public func customEventProperties( _ customEventProperties: [String: String] ) -> Builder { diff --git a/BluxClient/Classes/request/events/AddInstantImpression.swift b/BluxClient/Classes/request/events/AddInstantImpression.swift new file mode 100644 index 0000000..394deb7 --- /dev/null +++ b/BluxClient/Classes/request/events/AddInstantImpression.swift @@ -0,0 +1,50 @@ +import Foundation + +public class AddInstantImpressionEvent: EventRequest { + private static let DEFAULT_EVENT_TYPE = "instant_impression" + + init(builder: Builder) throws { + super.init() + try self.events.append( + Event(eventType: builder.eventType) + .setItemId(builder.itemId) + .setPage(builder.page) + .setSection(builder.section) + .setPosition(builder.position) + .setRecommendationId(builder.recommendationId ?? "") + .setCustomEventProperties(builder.customEventProperties ?? [:]) + ) + } + + public class Builder { + fileprivate let eventType: String = DEFAULT_EVENT_TYPE + fileprivate let itemId: String + fileprivate let page: String + fileprivate let section: String + fileprivate let position: Double + + fileprivate var recommendationId: String? = nil + fileprivate var customEventProperties: [String: String]? = nil + + public init(itemId: String, page: String, section: String, position: Double) { + self.itemId = itemId + self.page = page + self.section = section + self.position = position + } + + public func recommendationId(_ recommendationId: String) -> Builder { + self.recommendationId = recommendationId + return self + } + + public func customEventProperties(_ customEventProperties: [String: String]) -> Builder { + self.customEventProperties = customEventProperties + return self + } + + public func build() throws -> AddInstantImpressionEvent { + return try AddInstantImpressionEvent(builder: self) + } + } +} diff --git a/BluxClient/Classes/request/events/AddLikeEvent.swift b/BluxClient/Classes/request/events/AddLikeEvent.swift index 3ece4e4..3a2130e 100644 --- a/BluxClient/Classes/request/events/AddLikeEvent.swift +++ b/BluxClient/Classes/request/events/AddLikeEvent.swift @@ -5,17 +5,18 @@ public class AddLikeEvent: EventRequest { init(builder: Builder) throws { super.init() - self.events.append( - try Event(eventType: builder.eventType) + try self.events.append( + Event(eventType: builder.eventType) .setItemId(builder.itemId) .setCustomEventProperties(builder.customEventProperties) ) } public class Builder { - var itemId: String - var eventType: String = AddLikeEvent.DEFAULT_EVENT_TYPE - var customEventProperties: [String: String]? = nil + fileprivate let eventType: String = DEFAULT_EVENT_TYPE + fileprivate let itemId: String + + fileprivate var customEventProperties: [String: String]? = nil public init(itemId: String) { self.itemId = itemId @@ -31,4 +32,3 @@ public class AddLikeEvent: EventRequest { } } } - diff --git a/BluxClient/Classes/request/events/AddPageViewEvent.swift b/BluxClient/Classes/request/events/AddPageViewEvent.swift index c5443ad..3e3b742 100644 --- a/BluxClient/Classes/request/events/AddPageViewEvent.swift +++ b/BluxClient/Classes/request/events/AddPageViewEvent.swift @@ -5,23 +5,23 @@ public class AddPageViewEvent: EventRequest { init(builder: Builder) throws { super.init() - self.events.append( - try Event(eventType: builder.eventType) - .setPage(builder.page) - .setCustomEventProperties(builder.customEventProperties) + try self.events.append( + Event(eventType: builder.eventType) + .setPage(builder.page) + .setCustomEventProperties(builder.customEventProperties) ) } public class Builder { - var eventType: String = AddPageViewEvent.DEFAULT_EVENT_TYPE - var page: String - var customEventProperties: [String: String]? = nil + fileprivate let eventType: String = DEFAULT_EVENT_TYPE + fileprivate let page: String + + fileprivate var customEventProperties: [String: String]? = nil public init(page: String) { self.page = page } - public func customEventProperties(_ customEventProperties: [String: String]) -> Builder { self.customEventProperties = customEventProperties return self @@ -32,4 +32,3 @@ public class AddPageViewEvent: EventRequest { } } } - diff --git a/BluxClient/Classes/request/events/AddPageVisitEvent.swift b/BluxClient/Classes/request/events/AddPageVisitEvent.swift new file mode 100644 index 0000000..0cf397d --- /dev/null +++ b/BluxClient/Classes/request/events/AddPageVisitEvent.swift @@ -0,0 +1,30 @@ +import Foundation + +public class AddPageVisitEvent: EventRequest { + private static let DEFAULT_EVENT_TYPE: String = "page_visit" + + init(builder: Builder) throws { + super.init() + self.events.append( + Event(eventType: builder.eventType) + .setCustomEventProperties(builder.customEventProperties) + ) + } + + public class Builder { + fileprivate let eventType: String = DEFAULT_EVENT_TYPE + + fileprivate var customEventProperties: [String: String]? = nil + + public init() {} + + public func customEventProperties(_ customEventProperties: [String: String]) -> Builder { + self.customEventProperties = customEventProperties + return self + } + + public func build() throws -> AddPageVisitEvent { + return try AddPageVisitEvent(builder: self) + } + } +} diff --git a/BluxClient/Classes/request/events/AddPersistentImpression.swift b/BluxClient/Classes/request/events/AddPersistentImpression.swift new file mode 100644 index 0000000..77d0ed5 --- /dev/null +++ b/BluxClient/Classes/request/events/AddPersistentImpression.swift @@ -0,0 +1,50 @@ +import Foundation + +public class AddPersistentImpressionEvent: EventRequest { + private static let DEFAULT_EVENT_TYPE = "persistent_impression" + + init(builder: Builder) throws { + super.init() + try self.events.append( + Event(eventType: builder.eventType) + .setItemId(builder.itemId) + .setPage(builder.page) + .setSection(builder.section) + .setPosition(builder.position) + .setRecommendationId(builder.recommendationId ?? "") + .setCustomEventProperties(builder.customEventProperties ?? [:]) + ) + } + + public class Builder { + fileprivate let eventType: String = DEFAULT_EVENT_TYPE + fileprivate let itemId: String + fileprivate let page: String + fileprivate let section: String + fileprivate let position: Double + + fileprivate var recommendationId: String? = nil + fileprivate var customEventProperties: [String: String]? = nil + + public init(itemId: String, page: String, section: String, position: Double) { + self.itemId = itemId + self.page = page + self.section = section + self.position = position + } + + public func recommendationId(_ recommendationId: String) -> Builder { + self.recommendationId = recommendationId + return self + } + + public func customEventProperties(_ customEventProperties: [String: String]) -> Builder { + self.customEventProperties = customEventProperties + return self + } + + public func build() throws -> AddPersistentImpressionEvent { + return try AddPersistentImpressionEvent(builder: self) + } + } +} diff --git a/BluxClient/Classes/request/events/AddProductDetailViewEvent.swift b/BluxClient/Classes/request/events/AddProductDetailViewEvent.swift index e09bf73..b90efd4 100644 --- a/BluxClient/Classes/request/events/AddProductDetailViewEvent.swift +++ b/BluxClient/Classes/request/events/AddProductDetailViewEvent.swift @@ -5,22 +5,44 @@ public class AddProductDetailViewEvent: EventRequest { init(builder: Builder) throws { super.init() - self.events.append( - try Event(eventType: builder.eventType) - .setItemId(builder.itemId) - .setCustomEventProperties(builder.customEventProperties) + try self.events.append( + Event(eventType: builder.eventType) + .setItemId(builder.itemId) + .setPrevPage(builder.prevPage) + .setPrevSection(builder.prevSection) + .setRecommendationId(builder.recommendationId) + .setCustomEventProperties(builder.customEventProperties) ) } public class Builder { - var itemId: String - var eventType: String = AddProductDetailViewEvent.DEFAULT_EVENT_TYPE - var customEventProperties: [String: String]? = nil + fileprivate let eventType: String = AddProductDetailViewEvent.DEFAULT_EVENT_TYPE + fileprivate let itemId: String + + fileprivate var prevPage: String? = nil + fileprivate var prevSection: String? = nil + fileprivate var recommendationId: String? = nil + fileprivate var customEventProperties: [String: String]? = nil public init(itemId: String) { self.itemId = itemId } + public func prevPage(_ prevPage: String) -> Builder { + self.prevPage = prevPage + return self + } + + public func prevSection(_ prevSection: String) -> Builder { + self.prevSection = prevSection + return self + } + + public func recommendationId(_ recommendationId: String) -> Builder { + self.recommendationId = recommendationId + return self + } + public func customEventProperties(_ customEventProperties: [String: String]) -> Builder { self.customEventProperties = customEventProperties return self @@ -31,4 +53,3 @@ public class AddProductDetailViewEvent: EventRequest { } } } - diff --git a/BluxClient/Classes/request/events/AddPurchaseEvent.swift b/BluxClient/Classes/request/events/AddPurchaseEvent.swift index 4ae1f1e..e129327 100644 --- a/BluxClient/Classes/request/events/AddPurchaseEvent.swift +++ b/BluxClient/Classes/request/events/AddPurchaseEvent.swift @@ -9,25 +9,22 @@ public class AddPurchaseEvent: EventRequest { } public class Builder { - var events: [Event] = [] - var eventType: String = AddPurchaseEvent.DEFAULT_EVENT_TYPE - var customEventProperties: [String: String]? = nil + fileprivate var events: [Event] = [] - public init() { - - } + public init() {} - public func addPurchase(itemId: String, price: Double, quantity: Int, customEventProperties: [String: String]? = nil) throws -> Builder { - guard (quantity > 0) else { + public func addPurchase(itemId: String, price: Double, quantity: Int, orderId: String? = nil, customEventProperties: [String: String]? = nil) throws -> Builder { + guard quantity > 0 else { throw BluxError.InvalidQuantity } var customEventPropertiesWithQuantity = customEventProperties ?? [:] customEventPropertiesWithQuantity["quantity"] = "\(quantity)" - let event = try Event(eventType: eventType) + let event = try Event(eventType: DEFAULT_EVENT_TYPE) .setItemId(itemId) .setPrice(price * Double(quantity)) + .setOrderId(orderId) .setCustomEventProperties(customEventPropertiesWithQuantity) self.events.append(event) @@ -39,4 +36,3 @@ public class AddPurchaseEvent: EventRequest { } } } - diff --git a/BluxClient/Classes/request/events/AddRateEvent.swift b/BluxClient/Classes/request/events/AddRateEvent.swift index cc7517f..82b2df8 100644 --- a/BluxClient/Classes/request/events/AddRateEvent.swift +++ b/BluxClient/Classes/request/events/AddRateEvent.swift @@ -5,19 +5,20 @@ public class AddRateEvent: EventRequest { init(builder: Builder) throws { super.init() - self.events.append( - try Event(eventType: builder.eventType) - .setItemId(builder.itemId) - .setRating(builder.rating) - .setCustomEventProperties(builder.customEventProperties) + try self.events.append( + Event(eventType: builder.eventType) + .setItemId(builder.itemId) + .setRating(builder.rating) + .setCustomEventProperties(builder.customEventProperties) ) } public class Builder { - var itemId: String - var eventType: String = AddRateEvent.DEFAULT_EVENT_TYPE - var rating: Double - var customEventProperties: [String: String]? = nil + fileprivate let eventType: String = DEFAULT_EVENT_TYPE + fileprivate let itemId: String + fileprivate let rating: Double + + fileprivate var customEventProperties: [String: String]? = nil public init(itemId: String, rating: Double) { self.itemId = itemId @@ -34,4 +35,3 @@ public class AddRateEvent: EventRequest { } } } - diff --git a/BluxClient/Classes/request/events/AddSectionViewEvent.swift b/BluxClient/Classes/request/events/AddSectionViewEvent.swift new file mode 100644 index 0000000..677a73d --- /dev/null +++ b/BluxClient/Classes/request/events/AddSectionViewEvent.swift @@ -0,0 +1,41 @@ +import Foundation + +public class AddSectionViewEvent: EventRequest { + private static let DEFAULT_EVENT_TYPE: String = "section_view" + + init(builder: Builder) throws { + super.init() + try self.events.append( + Event(eventType: builder.eventType) + .setSection(builder.section) + .setRecommendationId(builder.recommendationId) + .setCustomEventProperties(builder.customEventProperties) + ) + } + + public class Builder { + fileprivate let eventType: String = DEFAULT_EVENT_TYPE + fileprivate let section: String + + fileprivate var recommendationId: String? = nil + fileprivate var customEventProperties: [String: String]? = nil + + public init(section: String) { + self.section = section + } + + public func recommendationId(_ recommendationId: String) -> Builder { + self.recommendationId = recommendationId + return self + } + + public func customEventProperties(_ customEventProperties: [String: String]) -> Builder { + self.customEventProperties = customEventProperties + return self + } + + public func build() throws -> AddSectionViewEvent { + return try AddSectionViewEvent(builder: self) + } + } +} diff --git a/BluxClient/Classes/request/events/Event.swift b/BluxClient/Classes/request/events/Event.swift index fe0bfc1..4e12eac 100644 --- a/BluxClient/Classes/request/events/Event.swift +++ b/BluxClient/Classes/request/events/Event.swift @@ -2,17 +2,29 @@ import Foundation public class EventProperties: Codable { public var itemId: String? + public var section: String? + public var prevSection: String? + public var recommendationId: String? public var price: Double? + public var orderId: String? public var rating: Double? + public var prevPage: String? public var page: String? + public var position: Double? enum CodingKeys: String, CodingKey { case itemId = "item_id" + case section + case prevSection = "prev_section" + case recommendationId = "recommendation_id" case price + case orderId = "order_id" case rating + case prevPage = "prev_page" case page + case position } } @@ -52,24 +64,81 @@ public class Event: Codable { } @discardableResult - public func setPage(_ page: String) throws -> Event { - let validatedPage = try Validator.validateString(page, min: 1, max: 500, varName: "page") + public func setSection(_ section: String?) throws -> Event { + if let section = section { + let validatedSection = try Validator.validateString(section, min: 1, max: 500, varName: "section") + eventProperties.section = validatedSection + } + return self + } + + @discardableResult + public func setPrevSection(_ prevSection: String?) throws -> Event { + if let prevSection = prevSection { + let validatedPrevSection = try Validator.validateString(prevSection, min: 1, max: 500, varName: "prevSection") + eventProperties.prevSection = validatedPrevSection + } + return self + } + + @discardableResult + public func setRecommendationId(_ recommendationId: String?) throws -> Event { + if let recommendationId = recommendationId { + let validatedRecommendationId = try Validator.validateString(recommendationId, min: 1, max: 500, varName: "recommendationId") + eventProperties.recommendationId = validatedRecommendationId + } + return self + } + + @discardableResult + public func setPrice(_ price: Double?) throws -> Event { + if let price = price { + let validatedPrice = try Validator.validateNumber(price, min: 0, varName: "price") + eventProperties.price = validatedPrice + } + return self + } + + @discardableResult + public func setOrderId(_ orderId: String?) throws -> Event { + if let orderId = orderId { + let validatedOrderId = try Validator.validateString(orderId, min: 1, max: 500, varName: "orderId") + eventProperties.orderId = validatedOrderId + } + return self + } + + @discardableResult + public func setRating(_ rating: Double?) throws -> Event { + if let rating = rating { + eventProperties.rating = rating + } + return self + } - eventProperties.page = validatedPage + @discardableResult + public func setPrevPage(_ prevPage: String?) throws -> Event { + if let prevPage = prevPage { + let validatedPrevPage = try Validator.validateString(prevPage, min: 1, max: 500, varName: "prevPage") + eventProperties.prevPage = validatedPrevPage + } return self } @discardableResult - public func setPrice(_ price: Double) throws -> Event { - let validatedPrice = try Validator.validateNumber(price, min: 0, varName: "price") - eventProperties.price = validatedPrice + public func setPage(_ page: String?) throws -> Event { + if let page = page { + let validatedPage = try Validator.validateString(page, min: 1, max: 500, varName: "page") + eventProperties.page = validatedPage + } return self } @discardableResult - public func setRating(_ rating: Double) throws -> Event { - let validatedRating = try Validator.validateNumber(rating, min: 0, varName: "rating") - eventProperties.rating = validatedRating + public func setPosition(_ position: Double?) throws -> Event { + if let position = position { + eventProperties.position = position + } return self } diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index deb3207..8be7128 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -9,6 +9,10 @@ /* Begin PBXBuildFile section */ 025FB895582BD3D658F9923BF34CEC0F /* EventService.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0FC9F3F27F8E2C2AE610BFED27CBD23 /* EventService.swift */; }; 064972E597D29F26F059E9D105A2B6E3 /* AddProductDetailViewEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21DB5DD39D03596D27F60825C55DFEC9 /* AddProductDetailViewEvent.swift */; }; + 1AD7B4A92D1282B5000C6FAF /* AddInstantImpression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AD7B4A82D1282B2000C6FAF /* AddInstantImpression.swift */; }; + 1AEE71FC2D128F4100BA3C0F /* AddPageVisitEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AEE71FB2D128F3900BA3C0F /* AddPageVisitEvent.swift */; }; + 1AEE71FE2D12982700BA3C0F /* AddPersistentImpression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AEE71FD2D12982600BA3C0F /* AddPersistentImpression.swift */; }; + 1AEE72002D129C8C00BA3C0F /* AddSectionViewEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AEE71FF2D129C8A00BA3C0F /* AddSectionViewEvent.swift */; }; 1EC147553D5D28A57081F1A6173A440C /* BluxClient-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 51EF65364429228275EA9C4C5666618D /* BluxClient-dummy.m */; }; 20EDDC9C567C94AF4EA6E545D24C3E7E /* HTTPClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88A3909FB093ECEE979A2606BBA84008 /* HTTPClient.swift */; }; 21B04C1012D8CB1F05D2AC1704F846EB /* BluxNotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F7DFEF76AD16D53FE2694FA72786E96 /* BluxNotificationCenter.swift */; }; @@ -72,6 +76,10 @@ 068E40AC4E4E971972B12454208B7641 /* Pods-BluxClient_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BluxClient_Example-acknowledgements.plist"; sourceTree = ""; }; 11FBF77E331C2375C764D5501F98873B /* Pods-BluxNotificationServiceExtenstion.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BluxNotificationServiceExtenstion.release.xcconfig"; sourceTree = ""; }; 1A90C5C3C7274A7186DE3605363F292E /* EventHandlers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EventHandlers.swift; path = BluxClient/Classes/EventHandlers.swift; sourceTree = ""; }; + 1AD7B4A82D1282B2000C6FAF /* AddInstantImpression.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddInstantImpression.swift; sourceTree = ""; }; + 1AEE71FB2D128F3900BA3C0F /* AddPageVisitEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddPageVisitEvent.swift; sourceTree = ""; }; + 1AEE71FD2D12982600BA3C0F /* AddPersistentImpression.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddPersistentImpression.swift; sourceTree = ""; }; + 1AEE71FF2D129C8A00BA3C0F /* AddSectionViewEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddSectionViewEvent.swift; sourceTree = ""; }; 1D700A57D8BD33D63B8EEF4AF63A1FAA /* Pods-BluxNotificationServiceExtenstion-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BluxNotificationServiceExtenstion-acknowledgements.markdown"; sourceTree = ""; }; 21DAAB3AAEC17F6A85FE8B7810FD6317 /* Pods-BluxNotificationServiceExtenstion-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-BluxNotificationServiceExtenstion-umbrella.h"; sourceTree = ""; }; 21DB5DD39D03596D27F60825C55DFEC9 /* AddProductDetailViewEvent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AddProductDetailViewEvent.swift; sourceTree = ""; }; @@ -213,11 +221,15 @@ E9DBAAE72CE4A5BE003FC11C /* InappEvent.swift */, 5E45686C2CD11B6AA2AB2385B52F3FDD /* AddCartaddEvent.swift */, 4A35B7D704AC6369BBF18CA795EDC866 /* AddCustomEvent.swift */, + 1AD7B4A82D1282B2000C6FAF /* AddInstantImpression.swift */, C27427288323DD4CA72EF6DEA5F93943 /* AddLikeEvent.swift */, E22BE8F520DCB2CC848E58640D3EE969 /* AddPageViewEvent.swift */, + 1AEE71FB2D128F3900BA3C0F /* AddPageVisitEvent.swift */, + 1AEE71FD2D12982600BA3C0F /* AddPersistentImpression.swift */, 21DB5DD39D03596D27F60825C55DFEC9 /* AddProductDetailViewEvent.swift */, 005759E130A9055C40998D349F473858 /* AddPurchaseEvent.swift */, E697AFD60CEF4A4480B5D0813A4579E2 /* AddRateEvent.swift */, + 1AEE71FF2D129C8A00BA3C0F /* AddSectionViewEvent.swift */, FCF604E5BB559FA6D79BBE1AE30C4319 /* Event.swift */, 6D4BEBDF3EF53167EB03A5B8D8F72E73 /* EventRequest.swift */, ); @@ -501,9 +513,11 @@ files = ( 8DF014C87A560ADD9655C756B4C2A296 /* AddCartaddEvent.swift in Sources */, 8C6B3828B43412E51802ED006FA9A29B /* AddCustomEvent.swift in Sources */, + 1AD7B4A92D1282B5000C6FAF /* AddInstantImpression.swift in Sources */, 52E881DF57AD86ECC4FA6A16DA89741F /* AddLikeEvent.swift in Sources */, 313945057D12E33854AA837DA7D9C410 /* AddPageViewEvent.swift in Sources */, 064972E597D29F26F059E9D105A2B6E3 /* AddProductDetailViewEvent.swift in Sources */, + 1AEE71FC2D128F4100BA3C0F /* AddPageVisitEvent.swift in Sources */, 26B9436F0F8C30AA8CBC1707A373F0A3 /* AddPurchaseEvent.swift in Sources */, 3E5926F9A57C66A634B66E023A77152C /* AddRateEvent.swift in Sources */, 89646924DCB8A7F37A195FFC78121450 /* BluxAppDelegate.swift in Sources */, @@ -516,10 +530,12 @@ 21B04C1012D8CB1F05D2AC1704F846EB /* BluxNotificationCenter.swift in Sources */, E9BFC2202CEE0FBA00FC2055 /* WebViewMessageHandler.swift in Sources */, E9AC4D052CE33BDE00659BB4 /* EventQueue.swift in Sources */, + 1AEE71FE2D12982700BA3C0F /* AddPersistentImpression.swift in Sources */, BF4A6CE53C258C87100E057E9E7378E5 /* BluxNotificationServiceExtension.swift in Sources */, 3DDE1842561E4EBC17123203C9C1BC3C /* ColdStartNotificationManager.swift in Sources */, C92898E3034FC9C5EB7417CE4B1FF3CB /* DeviceService.swift in Sources */, B2D4215FA999C5C9CBF5EC9F49278D51 /* Event.swift in Sources */, + 1AEE72002D129C8C00BA3C0F /* AddSectionViewEvent.swift in Sources */, D6307B19DAD07CC8DFA0241A7BCE3064 /* EventHandlers.swift in Sources */, E9DBAAF92CE4D61D003FC11C /* UIColor.swift in Sources */, E9DBAAEC2CE4AD2F003FC11C /* InappService.swift in Sources */,