AdMob
- In AdMob open Apps → Ad units, edit the rewarded ad unit and enable Server-side verification. Set the callback URL to:
https://api.kasskeep.com/v1/ads/admob/<app_id>/ssv- Map the ad unit in Kasskeep. You can paste the full
ca-app-pub-xxx/yyyid; Kasskeep stores the part after the slash, which is what SSV sends.
npx @kasskeep/cli ads unit-set --id app_xxx --name revive --admob ios:ca-app-pub-123/456 --admob android:ca-app-pub-123/789- On the client, set
ServerSideVerificationOptionswithuserIdequal to the Kasskeepapp_user_id, andcustomDataas needed.
AdMob needs no secret. You may store the AdMob app id as a note: ads credentials --id app_xxx --admob-app-id ca-app-pub-...~....
Verification
Section titled “Verification”- The signed content is the raw query string up to
&signature=, unchanged and undecoded. signatureis a base64url DER ECDSA (P-256, SHA-256) signature. The key is chosen bykey_idfrom Google’s published verifier keys, cached for at most 24 hours and refetched when an unknownkey_idappears.- Invalid signatures return
400 invalid_signature; an unknown key id returns400 unknown_key_id. - A callback without
user_id, such as the console’s Verify URL test, returns200 {"outcome": "ignored", "reason": "no_user_id"}.
| AdMob parameter | Event field |
|---|---|
user_id |
app_user_id |
ad_unit |
network_ad_unit_id, mapped to ad_unit |
reward_item |
reward_type |
reward_amount |
reward_amount |
transaction_id |
network_transaction_id |
custom_data |
custom_data |
timestamp |
occurred_at |