Skip to content
Documentation

Documentation

Keys & credentials

Every key the product issues, what each one can do, and where it is allowed to live.

Why there are several

Each key can do exactly one kind of thing, so that the one which inevitably leaks -- the one inside the app binary -- buys an attacker nothing new. Knowing which is which is most of what makes a setup go smoothly.

KeyWhat it can doWhere it livesWhere to find it
Public keyName the app or site an event belongs to. Nothing else.Page source, the app binary, a tracking link. Anywhere.App details tab
App secretSign mobile beacons so a forged install is refused.Inside the build, from a build-time variable. Never in a source file or a document.Protection → Beacon signing
API keyPost revenue through the Conversions API.Your server only. Never in an app, never in a browser.Revenue tab
Stripe signing secretProve a webhook came from Stripe.Our side only; you paste it once.Revenue tab
RevenueCat authorization headerProve a webhook came from your RevenueCat project.Our side and RevenueCat's. You choose the value.Revenue tab
Play service accountLet us read the amount and buyer of a Play purchase.Our side only. Account-level: one covers every Android app you ship.Revenue tab → Play service account
Apple In-App Purchase keyLet the app confirm a purchase the moment it happens (optional).Our side only. Account-level: one covers every iOS app on your team.Revenue tab → In-App Purchase key

The app secret, specifically

It is the one that ships on handsets, so it is worth being precise about.

  • What a leak costs. Forged beacons: fake installs and opens for this app. Not revenue -- that needs the API key or a store notification, neither of which the app holds.
  • What rotating costs. Every build already installed starts sending invalid signatures until users update. Cheap during a beta, expensive once a production build carries it. Rotate deliberately.
  • Unsigned is accepted. By default, a beacon with no signature is taken as an old build and accepted; only an *invalid* signature is refused. Reject unsigned beacons is a switch on the Protection tab, and the panel will not let you flip it until the observed signed share is 100%.
  • Empty is not absent. Passing "" signs with an empty key and every beacon is rejected. Read the secret so that missing means null; every SDK page shows how.

Store connections

The Play service account and the Apple In-App Purchase key are connections on your account, not settings on one app. A Play service account belongs to a Cloud project and an Apple key to a developer team, so either covers every app you ship. Add one once, then select it on each app's Revenue tab.

Their secrets are never shown back. Once saved you see the identifier (the service-account email, the Key ID) and which apps use it, nothing more. Deleting one that an app still uses is refused until you detach it.