diff --git a/content/docs/android/changelog.mdx b/content/docs/android/changelog.mdx
index 8f8d294..013b5b7 100644
--- a/content/docs/android/changelog.mdx
+++ b/content/docs/android/changelog.mdx
@@ -3,6 +3,27 @@ title: "Changelog"
description: "Release notes for the Superwall Android SDK"
---
+## 2.7.10
+
+## Potentially impactful changes
+- Billing errors on register are now wrapped in `SubscriptionStatusTimeout` errors
+- This is used to clarify that the status is timing out due to billing errors. If you are depending on the `NoPaywallView` to distinguish between these, ensure you are checking for the proper status.
+
+## Enhancements
+- Adds onboarding analytics
+- Adds prioritized preloading support
+- Improved error handling
+
+## Fixes
+- Prevents paywalls from dismissing on return from deep link
+- Fixes deadlock in `SerialTaskManager`
+- Fix issues with bottom sheet on certain Samsung devices
+
+## 2.7.9
+
+## Fixes
+- Fix review dialog closing paywall
+
## 2.7.8
### Fixes
diff --git a/content/docs/android/index.mdx b/content/docs/android/index.mdx
index f5b9aa7..a09392e 100644
--- a/content/docs/android/index.mdx
+++ b/content/docs/android/index.mdx
@@ -42,4 +42,4 @@ If you have feedback on any of our docs, please leave a rating and message at th
If you have any issues with the SDK, please [open an issue on GitHub](https://github.com/superwall/superwall-android/issues).
-
+
diff --git a/content/docs/android/quickstart/install.mdx b/content/docs/android/quickstart/install.mdx
index 77d0549..742071e 100644
--- a/content/docs/android/quickstart/install.mdx
+++ b/content/docs/android/quickstart/install.mdx
@@ -20,16 +20,16 @@ can find the [latest release here](https://github.com/superwall/Superwall-Androi
```gradle build.gradle
-implementation "com.superwall.sdk:superwall-android:2.7.8"
+implementation "com.superwall.sdk:superwall-android:2.7.10"
```
```kotlin build.gradle.kts
-implementation("com.superwall.sdk:superwall-android:2.7.8")
+implementation("com.superwall.sdk:superwall-android:2.7.10")
```
```toml libs.version.toml
[libraries]
-superwall-android = { group = "com.superwall.sdk", name = "superwall-android", version = "2.7.8" }
+superwall-android = { group = "com.superwall.sdk", name = "superwall-android", version = "2.7.10" }
// And in your build.gradle.kts
dependencies {
diff --git a/content/docs/android/sdk-reference/SuperwallEvent.mdx b/content/docs/android/sdk-reference/SuperwallEvent.mdx
index 9a69171..a1d09ab 100644
--- a/content/docs/android/sdk-reference/SuperwallEvent.mdx
+++ b/content/docs/android/sdk-reference/SuperwallEvent.mdx
@@ -38,6 +38,10 @@ sealed class SuperwallEvent {
) : SuperwallEvent()
data class PaywallOpen(val paywallInfo: PaywallInfo) : SuperwallEvent()
+ data class PaywallPageView(
+ val paywallInfo: PaywallInfo,
+ val data: PageViewData
+ ) : SuperwallEvent()
data class PaywallClose(val paywallInfo: PaywallInfo) : SuperwallEvent()
data class PaywallDecline(val paywallInfo: PaywallInfo) : SuperwallEvent()
@@ -138,6 +142,7 @@ sealed class SuperwallEvent {
Each event contains associated values with relevant information for that event type. Common parameters include:
- `paywallInfo: PaywallInfo` - Information about the paywall
+- `data: PageViewData` - Metadata for multi-page paywall navigation, including the page name, position in the flow, navigation type, and previous-page timing when available
- `product: StoreProduct` - The product involved in transactions
- `url: String` - Deep link URLs
- `attributes: Map` - Device or user attributes
@@ -154,6 +159,10 @@ These events are received via [`SuperwallDelegate.handleSuperwallEvent(eventInfo
- `PaywallWebviewLoadTimeout` is deprecated. This event was causing confusion due to its naming and has been removed from internal tracking. It will no longer fire.
+## New events in 2.7.10
+
+- `PaywallPageView` fires when a user navigates within a multi-page paywall. Use `event.data.pageName`, `event.data.flowPosition`, and `event.data.navigationType` to understand how they moved through the flow, and inspect the optional previous-page fields when you need timing context.
+
## New events in 2.6.6+
- `CustomerInfoDidChange` fires whenever the SDK merges device, web, and external purchase controller data into a new [`CustomerInfo`](/android/quickstart/tracking-subscription-state#reading-detailed-purchase-history-2-6-6) snapshot. The event includes the previous and next objects so you can diff entitlements or transactions.
@@ -183,6 +192,14 @@ override fun handleSuperwallEvent(eventInfo: SuperwallEventInfo) {
is SuperwallEvent.PermissionDenied -> {
showPermissionHelpSheet(event.permissionName)
}
+ is SuperwallEvent.PaywallPageView -> {
+ analytics.track("paywall_page_view", mapOf(
+ "paywall_id" to event.paywallInfo.id,
+ "page_name" to event.data.pageName,
+ "flow_position" to event.data.flowPosition,
+ "navigation_type" to event.data.navigationType
+ ))
+ }
is SuperwallEvent.PaywallPreloadComplete -> {
Logger.i("Superwall", "Preloaded ${event.paywallCount} paywalls")
}
diff --git a/content/docs/android/sdk-reference/index.mdx b/content/docs/android/sdk-reference/index.mdx
index 2796455..fb8964a 100644
--- a/content/docs/android/sdk-reference/index.mdx
+++ b/content/docs/android/sdk-reference/index.mdx
@@ -15,4 +15,4 @@ If you have feedback on any of our docs, please leave a rating and message at th
If you have any issues with the SDK, please [open an issue on GitHub](https://github.com/superwall/superwall-android/issues).
-
+