Skip to content

Glossary

The terms the platform guides use, in alphabetical order. How scoring works puts the scoring terms together.

Action

One gesture the SDK recognizes in the raw input: a tap, a drag, a scroll, a run of key presses. The score is computed from actions, not from individual touch or key events, and only from the most recent 64.

Ad session

DEA's record of one ad, not to be confused with the session. It is opened by the proof your app sends when the ad appears on screen; DEA answers with its id, and the click and the end of that ad are filed under the same id. On the Web the SDK manages it for you (ads.session_opened()); on Flutter, Android and iOS your app sends the three proofs itself. See each platform's Ads page.

Attestation

Registering the device key with DEA, through attest(). On Android and iOS the registration carries a token from Google Play Integrity or Apple App Attest when the device can produce one; browsers have no such token. A registration expires, after about an hour, and is registered again: automatically on Android, iOS and Flutter, on the next attest() call on the Web. Its result is a verdict.

Classification

What getClassification() returns: the result (human, bot, undetermined or insufficient), together with the score, the number of scored actions, the thresholds and the model version. It is read on the device and makes no request.

Device key

A signing key the SDK creates on the device the first time it needs one, and that never leaves it: in the Android Keystore, in the iOS Keychain or Secure Enclave, or as a non-extractable key in the browser. Attestation registers its public half with DEA, and proofs are signed with it.

Model

The file the scoring engine uses to turn actions into a score. It also carries the thresholds and the number of actions a score needs. Each package embeds one, and the SDK can replace it with a newer one DEA publishes. modelVersion names the one in use.

Proof

A short message the SDK signs with the device key and sends to DEA, or hands to your app: your appId, the current score, the number of scored actions, the model version, the session id, the event it is for and the tier. DEA checks the signature against the registered key. A proof is valid for 90 seconds.

Scored actions

The actions field of a classification: how many actions the score is computed from. It grows as the user interacts, up to 64.

Scoring engine

The part of the SDK that turns captured input into actions and actions into a score, on the device. Error messages and logs call it the core. When it cannot load, the SDK keeps running without a score: see each platform's Troubleshooting page.

Session

The span the score describes: it starts at init and ends when you reset it or dispose of the SDK, and on phones and tablets also when the app returns after more than five minutes in the background. Not to be confused with an ad session.

Sufficient

Whether a score has enough actions behind it to mean something. The models built into the SDK ask for 8 actions on phones and tablets, and 20 on desktop browsers, coming from at least two kinds of input (pointer, scroll, keyboard) with at least three actions each. A model DEA publishes later can ask for a different number. Until the score is sufficient, the classification is insufficient with no score on Flutter, Android, iOS and React Native (undetermined on the Web), and no proof is signed.

Threshold

A score the model sets as a bar. Below the bot threshold is bot; at or above the human threshold is human; in between is undetermined. A model with no human threshold has one bar: at or above the bot threshold is human. See How scoring works.

Tier

The trust level a proof claims for the key that signed it: B for a key on a phone or tablet whose registration carried a token from Google Play Integrity or Apple App Attest, C for a key on a phone or tablet without one, and W for a browser key.

Verdict

The result of attestation: passed, failed or unsupported. It is not the classification: these guides call the human / bot / undetermined / insufficient answer the classification.