SIGN IN SIGN UP

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