Security you can read, not just trust
How AppVero protects your data and your users’ — where it lives, how it’s encrypted, who can reach it, and how to report a problem. Documented in plain language so your team can assess it directly.
Security controls
Where data lives
- AppVero runs on AWS.
- Each workspace’s data — events, clicks, installs, configuration — is stored in a single AWS region.
- Data only leaves that region through the exports, webhooks and postbacks you configure.
- Raw-data exports are written straight from the database to the storage you choose.
Encryption
- TLS for every connection: dashboard, APIs, SDK traffic and link domains.
- Custom link domains get certificates automatically once their CNAME verifies.
- Stored credentials — SDK and webhook secrets, export keys, Meta decryption keys and Play licence keys — are encrypted at rest.
- Secrets are shown once when created; write-only credentials are never returned by the API.
Access control
- API keys with least-privilege scopes:
admin,read(GET only) ands2s(S2S events only). - Keys and SDK secrets are shown once, can be rotated, and can be revoked.
- Dashboard sessions use HttpOnly, SameSite cookies; state-changing requests require a custom header.
- API keys with least-privilege scopes:
Signed traffic
- Every mobile SDK request is signed with HMAC-SHA256 and a versioned SDK secret.
- Tagged mode records a signature status on every row; enforced mode rejects bad requests.
- Webhooks carry an HMAC-SHA256 signature with a timestamp.
Safe outbound requests
- Postbacks, webhooks, email-proxy and export requests refuse private, loopback and link-local addresses after DNS resolution.
- Postbacks don’t follow redirects; query values are redacted in delivery logs.
- Exports without your own credentials can only write to an AppVero-hosted bucket under your app’s prefix.
Data minimisation
- SDKs send nothing before
start(); opt-out wipes the queue. - The iOS SDK reads the IDFA only with ATT consent and never shows the prompt itself.
- Paid-media iOS installs without consent are measured in aggregate, not fingerprinted.
- SDKs send nothing before
Spoofed SDK traffic is visible — or rejected
Each app has versioned SDK secrets. The server accepts timestamps within ±600 seconds, records the signature status on every row in tagged mode, and returns 401 with a reason code in enforced mode.
string_to_sign = "v1" + "\n" +
HTTP_METHOD (uppercase) + "\n" +
PATH (no query string, e.g. /v1/sdk/install) + "\n" +
X-AV-Timestamp + "\n" +
lowercase_hex(SHA-256(uncompressed body bytes))
signature = base64url_no_padding(HMAC-SHA256(key = SDK secret, string_to_sign))
header X-AV-Signature: v1:<sdk secret id>:<signature>Every decision, explained
The public, stable taxonomy behind every rejected install, flagged install and excluded click.
| Code | Applies to | Outcome |
|---|---|---|
sig_missing | SDK request | Flagged (tagged mode) / rejected 401 (enforced) |
sig_invalid | SDK request | Flagged / rejected |
sig_stale_ts | SDK request | Flagged / rejected |
id_malformed | Install | Flagged |
id_zero | Install | Flagged |
ip_anonymous | Install, click | Rejected (install) / click excluded from matching |
click_injection | Install | Rejected |
ctit_too_short | Install | Flagged |
bot_ua | Click | Click excluded from matching |
click_expired | Install | Not credited (falls through to next candidate) |
click_app_mismatch | Install | Not credited |
receipt_invalid | Purchase event | Revenue excluded from validated revenue |
receipt_duplicate | Purchase event | Revenue excluded |
install_replay | Install | Rejected |
Where we are today
AppVero does not hold SOC 2 or ISO 27001 certification today. An independent SOC 2 audit is on our roadmap; until then, this page describes our controls so your security team can assess them directly — and we’re happy to answer questionnaires.
Our privacy policy explains how we handle personal data under the GDPR and other applicable data-protection laws. Customers remain responsible for notices and consent in their own apps and websites.
Found a vulnerability? Tell us.
Email [email protected]. We welcome reports from security researchers and will work with you to understand and fix the issue.
[email protected]Please include
- The affected host, endpoint or SDK and version
- Steps to reproduce, and the impact you observed
- How we can reach you for follow-up questions
Please don’t
- Access, change or delete data that isn’t yours
- Degrade the service (no denial-of-service or load testing)
- Disclose the issue publicly before we’ve had a reasonable chance to fix it
Our commitment
- We’ll acknowledge your report and keep you updated
- We won’t pursue good-faith research that follows these guidelines
- We’ll credit you, if you’d like, once the issue is fixed
Machine-readable contact: /.well-known/security.txt