Do it yourself
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main pagePrivacy and ads
If your app shows AdMob or Meta ads, or sends data to an ad network that matches users across apps, iOS requires the App Tracking Transparency prompt before any tracking happens. WebViewGold shows the prompt, keeps the Info.plist key Apple demands, and tells your web app what the user decided. Here is the whole picture, including the Google Play side.
From $109 one-time per platform, or let our team do it all from $698.
Apple defines tracking as linking data about a user or device collected in your app with data collected by other companies' apps and websites, for targeted advertising or measurement, or sharing it with data brokers. Personalized AdMob ads, Meta Audience Network, install attribution through the Meta or TikTok SDKs, attribution platforms and sharing hashed emails with ad networks are tracking. Your own analytics, Supabase or Firebase data used for your own features, fraud prevention and contextual (non-personalized) ads are not.
Guideline 5.1.2 ties it together: tracking requires the system ATT prompt, the app must respect a "no", you may not gate features behind consent, and the App Privacy answers must match. The native ad SDKs in WebViewGold are built around this: AdMob reads the advertising identifier only when the user allowed it and otherwise serves non-personalized ads.
| Your setup | ATT prompt | Notes |
|---|---|---|
| AdMob banner, interstitial or rewarded ads via WebViewGold | Yes | The Google Mobile Ads SDK uses the IDFA for personalized ads; show the prompt and declare advertising data |
| Meta Audience Network ads via WebViewGold | Yes | Meta requires the prompt for personalized ads on iOS |
| Facebook or Instagram ads to promote the app, with the Meta SDK for install attribution | Yes | Attribution across apps is tracking by definition |
Web ad scripts (AdSense) inside the WebView, useAdsenseAds | Gray area; conservative answer is yes | The ad script uses cookies for interest-based ads across sites; declare advertising data either way |
| No ads, no attribution SDK, first-party analytics only | No | Keep the Info.plist tracking key anyway (WebViewGold needs it) and answer "no tracking" in App Privacy |
One permission text, one prompt, one JavaScript variable.
Info.plist contains "Privacy - Tracking Usage Description" (NSUserTrackingUsageDescription). Replace the placeholder with a sentence a user understands, for example "We use this to show you relevant ads, which keep the app free." Do not delete the key: the WebViewGold publish docs note it is required and that removing it crashes the app.
WebViewGold requests the tracking decision on the first run, so the user sees Apple's standard dialog with your purpose string. You may show your own short explanation screen before it, as long as it does not imitate the system dialog or reward tapping Allow.
Navigate to user-disable-tracking://; WebViewGold sets window.trackingDisabled to true when tracking was denied and false when it was allowed. On iOS you can combine it with other calls through multiapicall://user-disable-tracking,getappversion. Docs: User Tracking Decision API.
Load non-personalized ads or no ad scripts, skip pixels and attribution calls. For native AdMob ads, ATTDeniedShowAds in Config.swift decides: false stops showing ads entirely when tracking is denied, true keeps non-personalized ads. Keep askForAdConsent enabled so Google's consent form handles EU and UK users (ASK_FOR_AD_CONSENT on Android).
There is no system tracking prompt on Android. Instead you declare the advertising ID in the Data safety form, respect the user's "Delete advertising ID" setting (the SDK does), and rely on the same Google consent form for regional consent.

WebViewGold has allowed us the shortest and most efficient time-to-market ever possible from among all the other app platforms we have ever tried during the past 5 years. I don’t know why I hadn’t discovered you sooner, but I am really, really glad I did. Currently nearing 6000 app downloads on both iOS App Store & Google Play Store without any problem!
Call it once per session before loading any ad or pixel script. The variable is set by the app shortly after the navigation.
const isIOSApp = /WebViewGoldApp/.test(navigator.userAgent) && /iPhone|iPad/.test(navigator.userAgent);
function withTrackingDecision(callback) {
if (!isIOSApp) { callback(false); return; } // web and Android: use your cookie consent instead
window.location.href = "user-disable-tracking://"; // WebViewGold sets window.trackingDisabled
setTimeout(() => callback(window.trackingDisabled === true), 500);
}
withTrackingDecision((denied) => {
if (denied) {
loadContextualAdsOnly(); // no personalized ads, no pixels, no attribution calls
} else {
loadAdsAndPixels();
}
});Most vibe-coded apps do not. Then the checklist is short: leave showBannerAd and showFullScreenAd off in Config.swift (and the matching options in Config.java), keep the tracking usage key with a neutral sentence, answer the IDFA question as the publish docs describe, declare no tracking in App Privacy and no advertising in the Data safety form. If you later add ads, that is a store update plus new privacy answers, and the prompt starts appearing for existing users on first launch of the new version.
Not by itself. Analytics for your own product is not tracking in Apple's definition. It becomes tracking when the data is linked with ad networks for targeting or attribution, for example Google Ads conversion linking.
Yes. A short screen in your web app that explains the benefit is allowed. It must not look like the system dialog, must not offer a reward for allowing, and must not block the app if the user declines.
No. AdMob serves non-personalized ads, usually at lower rates. ATTDeniedShowAds lets you choose between non-personalized ads and no ads at all.
There is no system prompt. Android relies on the advertising ID declaration in Data safety, the user's advertising ID settings and consent forms in regions that require them.
No. ATT is an iOS app concept. Your website follows cookie and consent laws instead.
Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main page$349 per license, one-time add-on
No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.
How the Cloud Builder works Try the free demo$698 per platform $798
Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.
Full Service details Powered byWinter Sale prices valid until December 31, 2026.
App Store & Google Play approval guarantee – or your money back within 14 days
Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.
Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.