Add trackCustomPaywallImpression API#863
Merged
Merged
Conversation
rickvdl
reviewed
Mar 17, 2026
rickvdl
left a comment
Member
There was a problem hiding this comment.
Nice work! One question about the impression API that takes the paywallId directly
f0edb25 to
ff216c3
Compare
tonidero
commented
Mar 17, 2026
tonidero
left a comment
Contributor
Author
There was a problem hiding this comment.
Can't approve myself, but I think this makes sense! 🚢
Wire the trackCustomPaywallImpression API from the hybrid-common bridge through to the Unity SDK, enabling Unity developers to track impressions for custom (non-RevenueCat) paywalls. Also add a testing button to the Subtester app's Paywall screen. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pass paywallId and offeringId as separate arguments through the bridge layer instead of a single string. If offeringId is not provided, the SDK will use the current offering identifier from the cache.
Accept the params object in IPurchasesWrapper instead of individual strings. The split into separate arguments now happens only at the native bridge boundary (DllImport/CallPurchases).
ff216c3 to
bf9af91
Compare
rickvdl
approved these changes
Mar 17, 2026
rickvdl
pushed a commit
that referenced
this pull request
Mar 17, 2026
**This is an automatic release.** ## RevenueCat SDK ### ✨ New Features * Add trackCustomPaywallImpression API (#863) via Toni Rico (@tonidero) ### 📦 Dependency Updates * Updates purchases-hybrid-common to 17.51.1 (#866) via RevenueCat Git Bot (@RCGitBot) * [Android 9.26.1](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.1) * [Android 9.26.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.0) * [Android 9.25.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.25.0) * [Android 9.24.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.24.0) * [iOS 5.65.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.65.0) * [iOS 5.64.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.64.0) * [iOS 5.63.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.63.0) * [iOS 5.62.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.62.0) * [AUTOMATIC BUMP] Updates purchases-hybrid-common to 17.51.0 (#864) via RevenueCat Git Bot (@RCGitBot) * [Android 9.26.1](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.1) * [Android 9.26.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.0) * [Android 9.25.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.25.0) * [Android 9.24.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.24.0) * [iOS 5.65.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.65.0) * [iOS 5.64.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.64.0) * [iOS 5.63.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.63.0) * [iOS 5.62.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.62.0) * [AUTOMATIC BUMP] Updates purchases-hybrid-common to 17.50.0 (#862) via RevenueCat Git Bot (@RCGitBot) * [Android 9.26.1](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.1) * [Android 9.26.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.0) * [Android 9.25.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.25.0) * [Android 9.24.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.24.0) * [iOS 5.65.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.65.0) * [iOS 5.64.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.64.0) * [iOS 5.63.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.63.0) * [iOS 5.62.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.62.0) * [AUTOMATIC BUMP] Updates purchases-hybrid-common to 17.49.0 (#860) via RevenueCat Git Bot (@RCGitBot) * [Android 9.26.1](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.1) * [Android 9.26.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.0) * [Android 9.25.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.25.0) * [Android 9.24.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.24.0) * [iOS 5.65.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.65.0) * [iOS 5.64.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.64.0) * [iOS 5.63.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.63.0) * [iOS 5.62.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.62.0) * [AUTOMATIC BUMP] Updates purchases-hybrid-common to 17.48.0 (#859) via RevenueCat Git Bot (@RCGitBot) * [Android 9.26.1](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.1) * [Android 9.26.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.0) * [Android 9.25.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.25.0) * [Android 9.24.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.24.0) * [iOS 5.65.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.65.0) * [iOS 5.64.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.64.0) * [iOS 5.63.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.63.0) * [iOS 5.62.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.62.0) * [AUTOMATIC BUMP] Updates purchases-hybrid-common to 17.47.0 (#858) via RevenueCat Git Bot (@RCGitBot) * [Android 9.26.1](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.1) * [Android 9.26.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.26.0) * [Android 9.25.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.25.0) * [Android 9.24.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.24.0) * [iOS 5.65.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.65.0) * [iOS 5.64.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.64.0) * [iOS 5.63.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.63.0) * [iOS 5.62.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.62.0) ## RevenueCatUI SDK ### ✨ New Features * Add custom variables support for paywalls (#812) via Facundo Menzella (@facumenzella) ### 🔄 Other Changes * Bump fastlane-plugin-revenuecat_internal from `e146447` to `3e8c384` (#861) via dependabot[bot] (@dependabot[bot]) * Add .claude/ to .gitignore (#857) via Facundo Menzella (@facumenzella)
rickvdl
added a commit
to RevenueCat/purchases-hybrid-common
that referenced
this pull request
Mar 18, 2026
…PI (#1565) ## Summary - Read `offeringId` from the data dictionary in `trackCustomPaywallImpression` on both iOS and Android bridge layers - Pass it through to the native `CustomPaywallImpressionParams`, allowing hybrid SDKs to override the default offering identifier ## Related PRs - purchases-ios: RevenueCat/purchases-ios#6427 - purchases-android: RevenueCat/purchases-android#3199 - react-native-purchases: RevenueCat/react-native-purchases#1660 - purchases-unity: RevenueCat/purchases-unity#863
rickvdl
added a commit
to RevenueCat/react-native-purchases
that referenced
this pull request
Mar 18, 2026
## Summary - Add optional `offeringId` parameter to `TrackCustomPaywallImpressionOptions` - If not provided, the SDK uses the current offering identifier from the cache - Update purchase tester demo screen with text fields for both paywall ID and offering ID ## Related PRs - purchases-hybrid-common: RevenueCat/purchases-hybrid-common#1565 - purchases-unity: RevenueCat/purchases-unity#863
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
trackCustomPaywallImpressionAPI to the Unity SDK, wiring through the existing hybrid-common bridge on both iOS and AndroidCustomPaywallImpressionParamsclass with an optionalPaywallIdCustomPaywallImpressionParamsthrough the wrapper interface, splitting into separate arguments only at the native bridge boundaryChanges
CustomPaywallImpressionParams.cs— params class with optionalPaywallIdIPurchasesWrapper— addedTrackCustomPaywallImpression(CustomPaywallImpressionParams)Purchases.cs— two overloads (with params, parameterless)PurchasesWrapperiOS.cs+PurchasesUnityHelper.m— DllImport and ObjC bridge calling[RCCommonFunctionality trackCustomPaywallImpression:]PurchasesWrapperAndroid.cs+PurchasesWrapper.java— CallPurchases and static method callingCommonKt.trackCustomPaywallImpression()PurchasesWrapperNoop.cs— empty stubPurchasesAPITests.cs— compile-time verification of both overloadsPaywallScreen.cs— "Custom Paywall Events" section with paywall ID field and buttonRelated PRs