Webview analytics
Webview analytics, built for how webviews really work.
Webviews break assumptions most web tools make: odd origins, inner scrollers, no address bar. Maximizii was built with them in mind, from the first version.
In short
Maximizii measures taps, scrolling and traffic inside webviews on iOS, Android and React Native, and in Capacitor and Ionic apps. It accepts pages bundled in the app, handles pages that scroll inside a container, and needs no cookies. Webview traffic is marked so you can tell it from browsers.
Why webviews need their own handling
Bundled pages
Pages shipped inside an app load from addresses like capacitor:// or file://. Turn on “App webviews” for a site and Maximizii accepts them. By default they’re refused, so nobody else can send events as your site.
Inner scrollers
App-style layouts often scroll a container, not the document. Maximizii follows the element that’s really scrolling, so depth stays correct.
No cookies to lose
Maximizii doesn’t use cookies. Each tab keeps a random id in session storage, and if storage is blocked it falls back to memory.
Told apart
Webview visits are detected and marked, including React Native and Flutter’s in-app webview. You can also force the flag with data-platform="webview".
On Android
Run the script when each page finishes loading. The dashboard fills in your site id, and has the same for iOS and React Native.
webView.settings.javaScriptEnabled = true
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView, url: String) {
view.evaluateJavascript("var s=document.createElement('script');s.async=true;s.src='https://d3hkloc4hxgq2b.cloudfront.net/t.js';s.dataset.site='mz_yoursiteid';s.dataset.platform='webview';document.head.appendChild(s);", null)
}
}
Consent in an app
Consent works the same as on the web. A webview can’t always tell where someone is from the clock alone, so if your app has its own consent screen, run maximizii.consent(true) in the webview once they’ve agreed. Read more about how consent works.
Questions
What is webview analytics?
Measuring how people use web pages shown inside a native app. A webview is a browser with no address bar, built into the app, so normal web measurement mostly applies, with a few differences to handle.
Does it work with Capacitor and Ionic?
Yes. Add the normal snippet to your app’s index.html, and turn on “App webviews” in the site’s settings, so pages from capacitor:// are accepted.
Does it work with Flutter?
If your Flutter app shows web pages in a webview and can run a script in them, yes, and in-app webviews are detected. It can’t see Flutter’s own widgets. There’s no ready-made Flutter snippet in the dashboard yet.
Can it see the native parts of my app?
No. Only what’s inside the webview. For native screens, use a tool with a native SDK.
Keep reading
- Mobile app heatmapsTap and scroll maps for the web screens in your app. What it covers, and what it can’t.
- Cookieless heatmapsNo cookies, no stored IPs, no form values, and an honest word on consent.
- Scroll mapsHow far down people get, how many reach each depth, and where the fold falls.
- Dead clicksClicks where nothing happens: why they matter, and how they’re measured.
- UXCam alternativeUXCam is for native apps. Maximizii is only an alternative if your app is web inside.
- Website heatmapsClick, scroll and attention maps over a picture of your real page, from one line of code.
Find out where they click.