Skip to content

Commit 4e29b82

Browse files
authored
feat: recriculation source and cmp status (#32)
1 parent 6e47c38 commit 4e29b82

File tree

8 files changed

+42
-21
lines changed

8 files changed

+42
-21
lines changed

CompassSDK/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.15.0</string>
18+
<string>2.16.0</string>
1919
<key>CFBundleVersion</key>
2020
<string>$(CURRENT_PROJECT_VERSION)</string>
2121
</dict>

CompassSDK/Storage/CompassStorage.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ protocol CompassStorage {
2626
func removeUserSegment(_ name: String)
2727
func clearUserSegments()
2828
func setConsent(_ hasConsent: Bool)
29-
func setLandingPage(_ landingPage: String)
29+
func setLandingPage(_ landingPage: String?)
3030
}
3131

3232
enum Store: String {
@@ -226,7 +226,7 @@ extension PListCompassStorage: CompassStorage {
226226
return model?.landingPage
227227
}
228228

229-
func setLandingPage(_ landingPage: String) {
229+
func setLandingPage(_ landingPage: String?) {
230230
model?.landingPage = landingPage
231231
}
232232
}

CompassSDK/Tracker/Core/CompassTracker.swift

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ public protocol CompassTracking: AnyObject {
6161
func startPageView(url: URL)
6262
@available(*, deprecated, renamed: "trackNewPage")
6363
func startPageView(url: URL, scrollView: UIScrollView?)
64-
func trackNewPage(url: URL)
65-
func trackNewPage(url: URL, scrollView: UIScrollView?)
66-
func trackScreen(_ name: String)
67-
func trackScreen(name: String, scrollView: UIScrollView?)
64+
func trackNewPage(url: URL, rs: String?)
65+
func trackNewPage(url: URL, scrollView: UIScrollView?, rs: String?)
66+
func trackScreen(_ name: String, rs: String?)
67+
func trackScreen(name: String, scrollView: UIScrollView?, rs: String?)
6868
func stopTracking()
6969
func getRFV(_ completion: @escaping (Rfv?) -> ())
7070
@available(*, deprecated, renamed: "setSiteUserId")
@@ -83,7 +83,7 @@ public protocol CompassTracking: AnyObject {
8383
func clearUserSegments()
8484
func setConsent(_ hasConsent: Bool)
8585
func getUserId() -> String
86-
func setLandingPage(_ landingPage: String)
86+
func setLandingPage(_ landingPage: String?)
8787
func setLandingPage(_ landingPage: URL)
8888
}
8989

@@ -196,7 +196,7 @@ extension CompassTracker: ScrollPercentProvider {
196196
}
197197

198198
extension CompassTracker: CompassTracking {
199-
public func setLandingPage(_ landingPage: String) {
199+
public func setLandingPage(_ landingPage: String?) {
200200
storage.setLandingPage(landingPage)
201201
}
202202

@@ -237,30 +237,30 @@ extension CompassTracker: CompassTracking {
237237
trackNewPage(url: url)
238238
}
239239

240-
public func trackNewPage(url: URL, scrollView: UIScrollView?) {
240+
public func trackNewPage(url: URL, scrollView: UIScrollView?, rs: String? = nil) {
241241
self.scrollView = scrollView
242-
self.trackNewPage(url: url)
242+
self.trackNewPage(url: url, rs: rs)
243243
}
244244

245-
public func trackNewPage(url: URL) {
246-
restart(pageName: url.absoluteString)
245+
public func trackNewPage(url: URL, rs: String? = nil) {
246+
restart(pageName: url.absoluteString, rs: rs)
247247
doTik()
248248
}
249249

250-
public func trackScreen(_ name: String) {
250+
public func trackScreen(_ name: String, rs: String? = nil) {
251251
guard let url = screenUrl(name) else {
252252
return
253253
}
254254

255-
trackNewPage(url: url)
255+
trackNewPage(url: url, rs: rs)
256256
}
257257

258-
public func trackScreen(name: String, scrollView: UIScrollView?) {
258+
public func trackScreen(name: String, scrollView: UIScrollView?, rs: String? = nil) {
259259
guard let url = screenUrl(name) else {
260260
return
261261
}
262262

263-
trackNewPage(url: url, scrollView: scrollView)
263+
trackNewPage(url: url, scrollView: scrollView, rs: rs)
264264
}
265265

266266
public func stopTracking() {
@@ -403,10 +403,11 @@ private extension CompassTracker {
403403
operationQueue.addOperation(operation)
404404
}
405405

406-
func restart(pageName: String?) {
406+
func restart(pageName: String?, rs: String? = nil) {
407407
stopObserving()
408408
operationQueue.operations.forEach{ $0.cancel() }
409409
trackInfo.pageUrl = pageName
410+
trackInfo.recirculationSource = rs
410411
pageVars.removeAll()
411412
trackInfo.sessionId = storage.sessionId
412413
tick = 0

CompassSDK/Tracker/Core/IngestTrackInfo.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ struct IngestTrackInfo: Encodable {
1414
case scrollPercent = "sc"
1515
case implodedConversions = "conv"
1616
case landingPage = "lp"
17+
case cc = "cc"
18+
case recirculationSoruce = "rs"
1719
}
1820

1921
private var trackInfo = TrackInfo()
@@ -28,6 +30,7 @@ struct IngestTrackInfo: Encodable {
2830
private var implodedConversions: String?
2931

3032
var landingPage: String?
33+
var recirculationSource: String?
3134

3235
public func encode(to encoder: Encoder) throws {
3336
var container = encoder.container(keyedBy: CodingKeys.self)
@@ -38,6 +41,8 @@ struct IngestTrackInfo: Encodable {
3841
try container.encodeIfPresent(scrollPercent, forKey: .scrollPercent)
3942
try container.encodeIfPresent(implodedConversions, forKey: .implodedConversions)
4043
try container.encodeIfPresent(landingPage, forKey: .landingPage)
44+
try container.encodeIfPresent(cc, forKey: .cc)
45+
try container.encodeIfPresent(recirculationSource, forKey: .recirculationSoruce)
4146
}
4247
}
4348

@@ -192,4 +197,17 @@ extension IngestTrackInfo {
192197
trackInfo.hasConsent
193198
}
194199
}
200+
201+
var cc: Int {
202+
get {
203+
switch hasConsent {
204+
case true:
205+
return 1
206+
case false:
207+
return 0
208+
default:
209+
return 3
210+
}
211+
}
212+
}
195213
}

MarfeelSDK-iOS.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pod::Spec.new do |spec|
1616
#
1717

1818
spec.name = "MarfeelSDK-iOS"
19-
spec.version = "2.15.0"
19+
spec.version = "2.16.0"
2020
spec.summary = "iOS version of MarfeelSDK."
2121

2222

Playground/Playground/BlogPost.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ struct BlogPost: Identifiable {
1717
var featured = false
1818
var url: String
1919
var videoId: String
20+
var rs: String? = nil
2021
}
2122

2223
var articleList: [BlogPost] = []

Playground/Playground/BlogPostStore.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ class BlogPostsStore: ObservableObject {
2525
""",
2626
featured: true,
2727
url: "http://dev.marfeel.co/2022/11/25/article-with-video-html5/",
28-
videoId: "UbjLtXKEE-I"
28+
videoId: "UbjLtXKEE-I",
29+
rs: "recirculation source"
2930
),
3031
BlogPost(
3132
title: "Post 2 Title",

Playground/Playground/BlogPostView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ struct BlogPostView: View {
6464
.navigationBarTitleDisplayMode(.inline)
6565
}
6666
.onAppear(perform: {
67-
CompassTracker.shared.trackNewPage(url: URL(string: blogPost.url)!)
67+
CompassTracker.shared.trackNewPage(url: URL(string: blogPost.url)!, rs: blogPost.rs)
6868
CompassTracker.shared.setPageVar(name: "pepe", value: blogPost.id.description)
6969
CompassTracker.shared.setPageVar(name: "pepe2", value: blogPost.id.description)
7070
CompassTracker.shared.setUserVar(name: "pepe-user", value: blogPost.id.description)

0 commit comments

Comments
 (0)