Personalized ads (AdMob, Audience Network)
Uses the advertising identifier and cross-app data. Tracking; needs the ATT prompt and the label.
App Store rejection
A 5.1.2 rejection says the app uses or shares data in a way the user never agreed to, most often tracking across apps and websites without the App Tracking Transparency prompt. In a web-wrapped app the culprits are ad SDKs and marketing pixels, and the fix is to make the prompt, the labels and the scripts agree.
From $109 one-time per platform, or let our team do it all from $698.
Data collected by an app may only be used for the purposes the user was told about, and sharing it with third parties needs disclosure and, where it counts as tracking, explicit permission through the App Tracking Transparency framework. Tracking means linking user or device data from your app with data from other companies' apps and websites for advertising or measurement, or sharing it with data brokers. Apps may not work around a denial with fingerprinting or other identifiers.
Reviewers find tracking in two ways: the binary contains an ad or attribution SDK (AdMob is in every WebViewGold build, active or not), and the App Privacy section says "Device ID, used for tracking" while no ATT prompt ever appeared, or the reverse. Marketing pixels loaded by the web app (Meta Pixel, TikTok, Google Ads tags) count as well, because they run inside your app.
Uses the advertising identifier and cross-app data. Tracking; needs the ATT prompt and the label.
Meta Pixel, TikTok and Google Ads conversion tags link your users to the ad networks' profiles. Tracking; load them only after consent, or not in the app at all.
Plausible, PostHog on your own domain, or GA4 with ads features switched off: usage data, generally not tracking. Declare it as Usage Data.
OneSignal tokens and RevenueCat receipts are data collection for your own features, not tracking. Label them, no ATT needed.
Most vibe-coded apps do not need to. Without ads and without marketing pixels inside the app, answer "no tracking" in App Privacy, keep the tracking usage description (required by the WebViewGold project; removing it crashes the app) with a neutral text, and move on.
Enable ads in Config.swift (showBannerAd, showFullScreenAd, enableRewardedAds, the AdMob IDs and GADApplicationIdentifier in Info.plist). The tracking prompt is presented natively; decide with ATTDeniedShowAds whether ads stop entirely when the user declines. Details in the AdMob docs and the ATT guide for web apps with ads.
Call user-disable-tracking:// and read the trackingDisabled variable WebViewGold injects (User Tracking Decision API). When it is true, do not load pixels or send the user ID to ad platforms. On iOS, combine calls with multiapicall:// if the page triggers several APIs.
App Store Connect asks whether the app uses the advertising identifier. The WebViewGold docs explain the recommended answer when AdMob is embedded, including the case where you do not show ads at all.
With ads: Device ID and Advertising Data, used for tracking. Without: no tracking, and only the usage and contact data your web app really collects. Update the privacy policy with the ad partners you use.

Great work! Never coded anything but managed to work with this. Easy and fast! Also with great help from the creators!
// Ask WebViewGold for the ATT decision, then decide what to load
function initTracking() {
window.location.href = "user-disable-tracking://";
setTimeout(function () {
if (typeof trackingDisabled !== "undefined" && trackingDisabled === true) {
return; // denied: no Meta Pixel, no ads personalization, no cross-app IDs
}
loadMarketingScripts(); // only when tracking is allowed
}, 500);
}
// Several API calls on one page? multiapicall://user-disable-tracking,getappversion| Component | ATT prompt needed? | Privacy label |
|---|---|---|
| AdMob personalized ads | Yes | Device ID, Advertising Data: tracking |
| Meta Pixel, TikTok, Google Ads tag | Yes | Identifiers, Usage Data: tracking |
| GA4 without ads features | No | Usage Data |
| Plausible, PostHog (own domain) | No | Usage Data |
| OneSignal, Pushwoosh, Firebase push | No | Identifiers (push token) |
Because the AdMob SDK is part of the WebViewGold build, and because your web app might load pixels. Declare no tracking if you have none, keep the usage description key, and the review passes.
Yes. Scripts running in the WebView are part of the app. Either gate them on the trackingDisabled variable and a consent screen, or do not load them when the app user agent is detected.
The prompt is presented natively by the app. WebViewGold handles it on the iOS side; your web app reads the result through the User Tracking Decision API.
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.