SIGN IN SIGN UP

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