From mobile web to app — without losing the click
Many journeys start on a phone browser. AppVero’s web SDK shows a smart banner, decorates your app links with the ad click that brought the visitor, and stitches web and app users together.

Web-to-app: what’s included
A small web SDK
About 7.6 KB gzipped. Script tag, npm module or Google Tag Manager template.
Smart banner
Designed in the dashboard, with localised copy and a QR card for desktop visitors.
Smart script
Decorates your app links with gclid, gbraid, wbraid, fbclid, ttclid, twclid, ScCid, li_fat_id, msclkid and UTMs.
Web ↔ app stitching
The same customer user ID on web and in the app links the two journeys together.
Bot suppression
Crawlers, link previewers and automated browsers are not stored, sent or shown a banner.
Google Tag Manager
A custom template that loads the SDK from sdk.appvero.ai with the same options.
A banner your visitors can read
Pick the link, platforms, position and dismissal period, write the copy once in English and add translations — Malay and Thai today, more languages on the way. The live preview shows Android, iOS and the desktop QR card before you publish — and changes go live without redeploying your site.
- Top or bottom, Android and/or iOS
- Hidden for N days after a visitor closes it
- Desktop visitors get a QR card to scan

Paste once into your
The stub queues calls until the SDK loads, so you can call AppVero(…) straight away. Nothing is stored or sent before init.
<script>
!(function (w, d, n, u) {
w[n] = w[n] || function () { (w[n].q = w[n].q || []).push(arguments); };
var s = d.createElement("script"); s.async = 1; s.src = u; d.head.appendChild(s);
})(window, document, "AppVero", "https://sdk.appvero.ai/web/v1/appvero.min.js");
AppVero("init", { appId: "app_7f3k9q2m" });
</script>const url = AppVero.smartLink("https://northwind.appvero.link/app", {
// carried from the landing page into the install:
// gclid, gbraid, wbraid, fbclid, ttclid, twclid, ScCid, li_fat_id, msclkid, utm_*
});
// https://northwind.appvero.link/app?media_source=…&campaign=…&fbclid=…&web_id=…What the web SDK stores
First-party storage only, documented key by key.
| Key | Where | Lifetime | Content |
|---|---|---|---|
av_wid | First-party cookie (+ localStorage copy) | 2 years, re-set on every visit | Visitor ID (web_id) |
av_sid | sessionStorage | 30 min idle | Session ID and last activity time |
av_attr | localStorage | 90 days | Captured click IDs and UTM |
av_cuid | localStorage | Until cleared | Customer user ID |
av_bd_<appId> | localStorage | Banner dismissal period | Banner dismissed |
Browsers cap these lifetimes — for example Safari limits script-set storage without user interaction.
Does the web SDK slow my site down?
It is about 7.6 KB gzipped, loads asynchronously, and sends events in batches with navigator.sendBeacon.
Which web origins can send events?
Only the origins you list in the app’s web settings. Requests from other origins are refused.
More of the platform
- AttributionInstalls and revenue credited to the right touchpoint.
- Deep linkingShort links, QR and deferred deep links that survive in-app browsers.
- iOS privacySKAdNetwork 4, AdAttributionKit and ATT, measured honestly.
- Fraud protectionSigned SDK traffic and public reason codes. Included.
- Raw data & APIsHourly Parquet to your warehouse, webhooks and APIs.
See your own data in AppVero
Bring a campaign, a link or an app build. We’ll walk through attribution, deep links and raw data with your team, on data that looks like yours.