Skip to content

Commit 2aaa49f

Browse files
committed
Merge branch 'develop' of https://github.com/superwall/Superwall-iOS into develop
2 parents 189e2ec + e775d93 commit 2aaa49f

File tree

8 files changed

+70
-4
lines changed

8 files changed

+70
-4
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
The changelog for `SuperwallKit`. Also see the [releases](https://github.com/superwall/Superwall-iOS/releases) on GitHub.
44

5+
## 4.11.3
6+
7+
### Enhancements
8+
9+
- Adds `paywallPreload_start` and `paywallPreload_complete` events.
10+
511
## 4.11.2
612

713
### Fixes

Examples/Advanced/Advanced.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Sources/SuperwallKit/Analytics/Internal Tracking/Trackable Events/TrackableSuperwallEvent.swift

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,4 +1077,30 @@ enum InternalSuperwallEvent {
10771077
]
10781078
}
10791079
}
1080+
1081+
enum PaywallPreloadState: String {
1082+
case start
1083+
case complete
1084+
}
1085+
1086+
struct PaywallPreload: TrackableSuperwallEvent {
1087+
let state: PaywallPreloadState
1088+
let paywallCount: Int
1089+
var superwallEvent: SuperwallEvent {
1090+
switch state {
1091+
case .start:
1092+
return .paywallPreloadStart(paywallCount: paywallCount)
1093+
case .complete:
1094+
return .paywallPreloadComplete(paywallCount: paywallCount)
1095+
}
1096+
}
1097+
var audienceFilterParams: [String: Any] = [:]
1098+
1099+
func getSuperwallParameters() async -> [String: Any] {
1100+
return [
1101+
"state": state.rawValue,
1102+
"paywall_count": paywallCount
1103+
]
1104+
}
1105+
}
10801106
}

Sources/SuperwallKit/Analytics/Superwall Placement/SuperwallEvent.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,12 @@ public enum SuperwallEvent {
245245
/// When a review is requested from the user.
246246
case reviewRequested(count: Int)
247247

248+
/// When paywall preloading starts.
249+
case paywallPreloadStart(paywallCount: Int)
250+
251+
/// When paywall preloading completes.
252+
case paywallPreloadComplete(paywallCount: Int)
253+
248254
var canImplicitlyTriggerPaywall: Bool {
249255
switch self {
250256
case .appInstall,
@@ -420,6 +426,10 @@ extension SuperwallEvent {
420426
return .init(objcEvent: .integrationAttributes)
421427
case .reviewRequested:
422428
return .init(objcEvent: .reviewRequested)
429+
case .paywallPreloadStart:
430+
return .init(objcEvent: .paywallPreloadStart)
431+
case .paywallPreloadComplete:
432+
return .init(objcEvent: .paywallPreloadComplete)
423433
}
424434
}
425435
}

Sources/SuperwallKit/Analytics/Superwall Placement/SuperwallEventObjc.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,12 @@ public enum SuperwallEventObjc: Int, CaseIterable {
223223
/// When a review is requested from the user.
224224
case reviewRequested
225225

226+
/// When paywall preloading starts.
227+
case paywallPreloadStart
228+
229+
/// When paywall preloading completes.
230+
case paywallPreloadComplete
231+
226232
public init(event: SuperwallEvent) {
227233
self = event.backingData.objcEvent
228234
}
@@ -363,6 +369,10 @@ public enum SuperwallEventObjc: Int, CaseIterable {
363369
return "integration_attributes"
364370
case .reviewRequested:
365371
return "review_requested"
372+
case .paywallPreloadStart:
373+
return "paywallPreload_start"
374+
case .paywallPreloadComplete:
375+
return "paywallPreload_complete"
366376
}
367377
}
368378
}

Sources/SuperwallKit/Config/ConfigManager.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,7 @@ class ConfigManager {
552552
if let presentedPaywallId = await self.paywallManager.presentedViewController?.paywall.identifier {
553553
paywallIds.remove(presentedPaywallId)
554554
}
555+
555556
await self.preloadPaywalls(withIdentifiers: paywallIds)
556557
}
557558
}
@@ -575,6 +576,13 @@ class ConfigManager {
575576

576577
/// Preloads paywalls referenced by triggers.
577578
private func preloadPaywalls(withIdentifiers paywallIdentifiers: Set<String>) async {
579+
let paywallCount = paywallIdentifiers.count
580+
let preloadStart = InternalSuperwallEvent.PaywallPreload(
581+
state: .start,
582+
paywallCount: paywallCount
583+
)
584+
await Superwall.shared.track(preloadStart)
585+
578586
await withTaskGroup(of: Void.self) { group in
579587
for identifier in paywallIdentifiers {
580588
group.addTask { [weak self] in
@@ -604,5 +612,11 @@ class ConfigManager {
604612
}
605613
}
606614
}
615+
616+
let preloadComplete = InternalSuperwallEvent.PaywallPreload(
617+
state: .complete,
618+
paywallCount: paywallCount
619+
)
620+
await Superwall.shared.track(preloadComplete)
607621
}
608622
}

Sources/SuperwallKit/Misc/Constants.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ let sdkVersion = """
1818
*/
1919

2020
let sdkVersion = """
21-
4.11.2
21+
4.11.3
2222
"""

SuperwallKit.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22

33
s.name = "SuperwallKit"
4-
s.version = "4.11.2"
4+
s.version = "4.11.3"
55
s.summary = "Superwall: In-App Paywalls Made Easy"
66
s.description = "Paywall infrastructure for mobile apps :) we make things like editing your paywall and running price tests as easy as clicking a few buttons. superwall.com"
77

0 commit comments

Comments
 (0)