BlogWeb ARHow Browser-Based Campaigns Drive Engagement With Web AR Face Tracking
How Browser-Based Campaigns Drive Engagement With Web AR Face Tracking
Browser-based campaigns put augmented reality face effects on a web page, so a shopper scans a QR code and sees the effect on their own face in seconds, with no app to install. Banuba Face AR SDK is a real-time, on-device face tracking and AR effects SDK that runs at 60 FPS on mid-range mobile hardware with a -90° to +90° head-angle tracking range. Banuba's web build of that SDK moves the experience into Chrome, Safari, and Firefox instead of a native app, and it is what a Bucharest agency used to put hair color try-on on a Romanian brand's packaging.
Stay tunedKeep up with product updates, market news and new blog releases
[navigation]
Key takeaways
Banuba Face AR SDK's web build runs in any browser with WebGL 2.0, so one campaign URL covers iOS and Android with no app store step.
The heaviest Banuba web asset, BanubaSDK.wasm, is 12 Mb uncompressed and 3.5 Mb gzipped or 2.5 Mb with Brotli, which sets how fast the page becomes interactive.
Banuba's background separation holds a stable 30 FPS on high-end Android and on iOS, so virtual backgrounds stay usable on the phones people scan QR codes with.
Why do browser-based campaigns lose people before the effect loads?
A campaign that asks for an app install loses most of its audience at the store page. The browser removes that step but moves the cost: the page now has to download a computer vision runtime, get camera permission, and start tracking a face before the visitor gives up.
That is what Web AR face tracking is built for: tracking runs in WebAssembly on the visitor's own device, the effect renders through WebGL, and no frame makes a round trip to a server.
Banuba's face tracking example
How does Web AR face tracking solve it?
Browser reach without a build per platform. Banuba Web SDK supports any browser with WebGL 2.0 or higher, on mobile and desktop Chrome, Firefox, and Safari. One campaign page, one URL in the QR code, the same effect on an iPhone and a mid-range Android handset.
Predictable page weight. BanubaSDK.wasm is 12 Mb original, 3.5 Mb gzipped, and 2.5 Mb with Brotli; the SIMD variant is 13, 3.8, and 2.7 Mb. The SDK is tree-shakable, so importing only the modules a campaign uses keeps the JavaScript bundle down too, and the faster SIMD binary loads automatically where supported.
Effects that hold their frame rate. Banuba's background separation runs at a stable 30 FPS on high-end Android and on iOS, and web-side effects such as lip coloring measure 30 FPS in Chrome and 26 FPS in Safari. Lab figures rather than a guarantee for every device, but published.
Processing stays on the device: frames are never uploaded, which is the question Banuba gets most often from teams evaluating a browser experience.
What does the integration look like?
The web build ships as the @banuba/webar npm package. A campaign page creates a Player, attaches a Webcam, loads an Effect, and renders into a Dom target. Bundler config is the step teams miss: the SDK expects BanubaSDK.data and BanubaSDK.wasm at the app root unless locateFile says otherwise.
What did a browser campaign look like in production?
Loncolor, a Romanian hair dye and hair care producer, wanted customers to see a shade on themselves before buying. Scorpion Technology, a Bucharest software company, built the experience on Banuba Face AR SDK rather than its own computer vision code, to ship faster.
The flow is as plain as a browser campaign gets: a customer scans a QR code on the dye package, a page opens in their browser, and once their face is in frame, it shows the chosen color on their hair. That puts try-on into every store carrying the product, with no in-store hardware and no app. The virtual try-on for a Romanian hair color brand write-up covers why the agency picked Banuba: recoloring that affects hair only and holds up across lighting conditions, per-feature licensing, and documentation good enough to integrate against directly. It rolled out in 2025, and usage has grown since; Banuba publishes no conversion figure for this deployment.
Start with a working page, not a spec
The fastest way to size a browser campaign is to run a quickstart against your own creative and time how long the page takes to reach a tracked face on a mid-range phone. Start a free trial of Banuba's Web AR SDK and measure it.
FAQ
Yes. Banuba's web build runs in mobile Safari wherever the browser supports WebGL 2.0: the visitor opens a URL, and the effect starts in the page. The Banuba Face AR SDK documentation lists browser requirements and setup steps.
On the web, the heavy asset is BanubaSDK.wasm: 12 Mb uncompressed, 3.5 Mb gzipped, 2.5 Mb with Brotli, plus the modules the effect needs. The mobile SDK is separate, and Banuba puts it at around 15 Mb depending on the feature set enabled, per the Face AR SDK size FAQ.
No. Banuba Face AR SDK processes frames locally in both the mobile and the browser builds, so nothing is uploaded for tracking.
Banuba maintains framework starters on GitHub, including a vanilla JavaScript quickstart alongside React, Angular, and Vue. Each is a minimal working page, not a doc snippet.
Banuba offers a free trial and two licensing models: a flat annual fee, with unlimited usage and a cost fixed regardless of how far a campaign scales, and an active-user-based model that starts significantly lower but grows with the audience. The Face AR SDK pricing guide covers both.