feat(ads): add reward-verification event data types (#3890)
<!-- Thank you for contributing to Purchases! Before pressing the "Create Pull Request" button, please provide the following: --> ### Description This is a technical groundwork for ad reward tracking. It adds 4 new data classes for future reward events, but changes or adds no new functionality. `RewardEarnedUnverified` - when a rewarded ad completed but not yet verified by backend `RewardVerified` - when the backend verified it `RewardFailedToVerify` - when the backend failed to verify it `RewardGranted` - when the backend granted a reward (`n` times) <!-- Describe your changes in detail --> <!-- Please describe in detail how you tested your changes --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Additive type definitions behind internal/preview APIs with no behavior or public surface changes in this diff. > > **Overview** > Adds **groundwork for rewarded-ad verification analytics** by extending the internal `AdEvent` model with four new backend event types (`rc_ads_ad_reward_sdk_*`) and matching `AdEvent` variants for the verification lifecycle: SDK reward earned (unverified), verified, per-grant (`VerifiedReward`), and failed verification. > > Introduces **`AdRewardFailureReason`** with stable wire strings (timeout, network, cancelled, unknown, backend error) and four **`@InternalRevenueCatAPI` `*Data` classes** aligned with existing ad tracking payloads (`AdLoadedData`, etc.) so future `AdTracker` APIs can emit these events. **No tracking, serialization, or runtime behavior is wired in this PR.** > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 26ec7ec3364846b03c0e8374351c857f3283307a. 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
f53d2ce42763b422c5b3d00e93f17894056d5a9d
Parent: 40455fd
Committed by GitHub <noreply@github.com>
on 8/17/2026, 8:55:03 AM