feat(ads): ad reward tracking support (#1804)
### Description Exposes the optional `trackingMetadata` so hybrid sdks can use ad reward tracking too. **Do** **not** **merge** until the feature is released both on android and ios. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Touches experimental reward-verification and ad-attribution paths; behavior is backward compatible but incorrect metadata is only logged, not surfaced to callers. > > **Overview** > Adds optional **ad reward tracking** to hybrid `pollRewardVerification` on Android and iOS so React Native and other hybrid SDKs can pass the same metadata as the native APIs. > > `pollRewardVerification` now accepts an optional `trackingMetadata` map (`mediatorName`, `adFormat`, `adUnitId`, `impressionId`, plus optional `networkName` and `placement`). Hybrid common validates required keys, builds `RewardedAdTrackingMetadata`, and forwards it to `Purchases.sharedInstance.pollRewardVerification`. Invalid or incomplete metadata is logged and polling still runs with `nil` metadata. > > On iOS, a separate ObjC selector `pollRewardVerificationWithClientTransactionId:trackingMetadata:completion:` is added while the existing completion-only entry point remains for compatibility. Android uses `@JvmOverloads` for the same optional parameter. API tests cover both call shapes. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit e571fe0df31585c1cb6032596c2041441d2f4bd5. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
P
Peter Porfy committed
8bcacdc60c317b3e6bff9fd04ea18f041306ca1f
Parent: 2dff0c3
Committed by GitHub <noreply@github.com>
on 8/19/2026, 3:05:31 PM