App Tracking Transparency (ATT) एक iOS तंत्र है जिसके लिए एप्लिकेशन और वेबसाइटों पर ट्रैकिंग से पहले विज्ञापन पहचानकर्ता IDFA तक पहुँचने के लिए उपयोगकर्ता की स्पष्ट सहमति आवश्यक है। iOS 14.5 में शुरू किया गया ATT, सभी डेवलपर्स को ट्रैकिंग अनुमति का अनुरोध करने वाला सिस्टम संवाद दिखाने के लिए बाध्य करता है। Apple डेवलपर दस्तावेज़ीकरण के अनुसार, प्रत्येक एप्लिकेशन जो लक्षित विज्ञापन या एट्रिब्यूशन के लिए IDFA का उपयोग करता है, उसे ATT फ्रेमवर्क को एकीकृत करना होगा और पहुँच अनुमति प्राप्त करनी होगी।
मुख्य बातें
App Tracking Transparency उपयोगकर्ताओं की गोपनीयता की रक्षा के लिए Apple का एक फ्रेमवर्क है, जिसे iOS 14.5 में पेश किया गया। इसके लिए एप्लिकेशन को ट्रैकिंग के लिए उपयोग करने से पहले डिवाइस के विज्ञापन पहचानकर्ता (IDFA) तक पहुँचने के लिए स्पष्ट अनुमति प्राप्त करनी होती है।
ATT से पहले, डेवलपर्स बिना पूछे IDFA पढ़ सकते थे, जिससे विज्ञापन नेटवर्क उपयोगकर्ताओं की प्रोफ़ाइल बना सकते थे और एप्लिकेशन और वेबसाइटों के बीच उनकी गतिविधि को ट्रैक कर सकते थे। Apple ने इसे गोपनीयता का उल्लंघन माना और अनिवार्य सहमति संवाद शुरू किया।
यह फ्रेमवर्क iOS 14.0 से उपलब्ध है, लेकिन अप्रैल 2021 में iOS 14.5 के रिलीज़ के साथ IDFA का उपयोग करने वाले सभी एप्लिकेशन के लिए अनिवार्य हो गया। Flurry Analytics के अनुसार, ATT लागू होने के बाद, अमेरिका में 25% से कम उपयोगकर्ताओं ने ट्रैकिंग की सहमति दी, जिसने मोबाइल विज्ञापन बाजार को मौलिक रूप से बदल दिया।
ATT एक विशेष सिस्टम संवाद के माध्यम से अनुमति की जाँच करता है जिसे एप्लिकेशन संशोधित या बायपास नहीं कर सकता। उपयोगकर्ता डेवलपर द्वारा प्रदान किए गए टेक्स्ट के साथ एक मानक पॉपअप देखता है और “अनुमति दें” या “एप्लिकेशन से ट्रैक न करने का अनुरोध करें” चुनता है।
Apple ATT को अपनी समग्र गोपनीयता रणनीति के हिस्से के रूप में रखता है, जिसमें App Store में गोपनीयता पोषण लेबल और गोपनीयता घोषणापत्र भी शामिल हैं। तीनों तंत्र एक साथ काम करते हैं: लेबल दिखाते हैं कि एप्लिकेशन कौन सा डेटा एकत्र करता है, घोषणापत्र API के उपयोग के कारणों की घोषणा करता है, और ATT उपयोगकर्ता को ट्रैकिंग पर नियंत्रण देता है।
ट्रैकिंग से इनकार करने से एप्लिकेशन का काम नहीं रुकता — उपयोगकर्ता सभी सुविधाओं का उपयोग जारी रख सकते हैं, लेकिन विज्ञापन नेटवर्क को वैयक्तिकरण और एट्रिब्यूशन के लिए IDFA नहीं मिलेगा। IDFA के Apple के विकल्पों में SKAdNetwork और प्रोबेबिलिस्टिक एट्रिब्यूशन शामिल हैं।
Branch Metrics के अनुसार, ATT शुरू होने के बाद, वैश्विक स्तर पर IDFA प्राप्त करने वाले एप्लिकेशन का हिस्सा 70% से गिरकर 20% हो गया। इससे इंस्टॉल एट्रिब्यूशन और विज्ञापन मुद्रीकरण के दृष्टिकोणों पर पुनर्विचार हुआ।
iOS 15 में, Apple ने ATT आवश्यकताओं को कड़ा नहीं किया लेकिन एप गोपनीयता रिपोर्ट जोड़ी — एक रिपोर्ट जो उपयोगकर्ता को दिखाती है कि एप्लिकेशन कितनी बार सेंसर और डेटा तक पहुँचते हैं। iOS 16 ने नियंत्रण का विस्तार किया: उपयोगकर्ता किसी भी समय सेटिंग्स → गोपनीयता → ट्रैकिंग के माध्यम से अपनी ट्रैकिंग सेटिंग बदल सकता है।
महत्वपूर्ण: यदि उपयोगकर्ता ATT संवाद में “एप्लिकेशन से ट्रैक न करने का अनुरोध करें” चुनता है, तो एप्लिकेशन को IDFA मान नहीं मिलता — इसके बजाय, यह शून्य की एक स्ट्रिंग लौटाता है: 00000000-0000-0000-0000-000000000000। अन्य माध्यमों या कामचलाऊ तरीकों से IDFA पढ़ने का प्रयास App Store में एप्लिकेशन की अस्वीकृति की ओर ले जाता है।
iOS 17 से शुरू करते हुए, Apple ने जाँच को मजबूत किया: यदि कोई एप्लिकेशन ATT सिस्टम संवाद दिखाए बिना IDFA का अनुरोध करता है, तो उसे OS स्तर पर इनकार मिलता है, न कि केवल एक खाली पहचानकर्ता। यह उपयोगकर्ता की जानकारी के बिना पृष्ठभूमि IDFA संग्रह की संभावना को समाप्त करता है।
ATT अनुरोध प्रक्रिया में तीन चरण होते हैं: स्थिति की जाँच करना, सिस्टम संवाद प्रदर्शित करना और प्रतिक्रिया संसाधित करना। डेवलपर किसी भी चरण को छोड़ नहीं सकता — OS प्रत्येक चरण को नियंत्रित करता है।
संवाद को कॉल करने से पहले, एप्लिकेशन को ATTrackingManager के माध्यम से वर्तमान स्थिति की जाँच करनी चाहिए। संभावित स्थितियाँ हैं: notDetermined (अभी तक अनुरोध नहीं किया गया), restricted (डिवाइस नीतियों द्वारा प्रतिबंधित), denied (उपयोगकर्ता ने अस्वीकार किया), authorized (अनुमति दी गई)।
यदि स्थिति पहले से निर्धारित है (authorized या denied), तो संवाद को फिर से कॉल नहीं किया जा सकता — उपयोगकर्ता ने स्थायी निर्णय लिया है। निर्णय बदलने का एकमात्र तरीका iOS सिस्टम सेटिंग्स के माध्यम से है।
स्थिति की जाँच ATTrackingManager.trackingAuthorizationStatus गुण का उपयोग करके की जाती है। कॉल मुख्य थ्रेड पर होना चाहिए क्योंकि सिस्टम संवाद एक UI घटक है।
import AppTrackingTransparency
import AdSupport
func checkTrackingStatus() {
let status = ATTrackingManager.trackingAuthorizationStatus
switch status {
case .notDetermined:
requestTrackingPermission()
case .authorized:
readIDFA()
case .denied, .restricted:
useAlternativeTracking()
@unknown default:
break
}
}
संवाद दिखाने के लिए, requestTrackingAuthorization विधि को एक क्लोजर के साथ कॉल किया जाता है जो उपयोगकर्ता की पसंद का परिणाम प्राप्त करता है। महत्वपूर्ण: संवाद केवल एक बार दिखाई देता है। यदि डेवलपर इसे फिर से कॉल करने का प्रयास करता है, तो सिस्टम अनुरोध को अनदेखा करता है।
संवाद पाठ में दो भाग होते हैं: एक सिस्टम हेडर (जिसे बदला नहीं जा सकता) और एक कस्टम संदेश जो डेवलपर Info.plist में NSUserTrackingUsageDescription कुंजी के माध्यम से निर्दिष्ट करता है।
संवाद एक प्राकृतिक संदर्भ में दिखाई देना चाहिए — एप्लिकेशन लॉन्च करते ही नहीं, बल्कि ट्रैकिंग से संबंधित कार्यक्षमता का उपयोग करने के पहले प्रयास पर। Apple सुझाव देता है कि संवाद तब दिखाया जाए जब उपयोगकर्ता सुविधा के मूल्य को समझ गया हो।
func requestTrackingPermission() {
ATTrackingManager.requestTrackingAuthorization { status in
DispatchQueue.main.async {
switch status {
case .authorized:
let idfa = ASIdentifierManager.shared().advertisingIdentifier
print("IDFA: \(idfa)")
case .denied:
print("उपयोगकर्ता ने ट्रैकिंग अस्वीकार की")
default:
break
}
}
}
}
IDFA (Identifier for Advertisers) iOS उपकरणों के लिए एक अद्वितीय विज्ञापन पहचानकर्ता है, जिसका उपयोग लक्षित विज्ञापन और इंस्टॉल एट्रिब्यूशन के लिए किया जाता है। ATT से पहले, डेवलपर इसे बिना प्रतिबंधों के ASIdentifierManager के माध्यम से प्राप्त करते थे। ATT के बाद, IDFA तक पहुँच तब तक अवरुद्ध है जब तक उपयोगकर्ता स्पष्ट सहमति नहीं देता।
IDFA प्रत्येक iOS डिवाइस के लिए अद्वितीय UUID स्ट्रिंग है। विज्ञापन नेटवर्क IDFA का उपयोग करते हैं: एप्लिकेशन इंस्टॉल ट्रैक करने (एट्रिब्यूशन), उपयोगकर्ता की रुचियों के आधार पर प्रासंगिक विज्ञापन दिखाने, विज्ञापन अभियानों की प्रभावशीलता मापने और रीटार्गेटिंग — उन उपयोगकर्ताओं को वापस लाने के लिए जिन्होंने वांछित कार्य पूरा नहीं किया।
उपयोगकर्ता द्वारा ट्रैकिंग से इनकार करने पर, ASIdentifierManager मान 00000000-0000-0000-0000-000000000000 लौटाता है। एप्लिकेशन अभी भी तकनीकी उद्देश्यों (जैसे एंटी-फ्रॉड) के लिए IDFA पढ़ सकता है, लेकिन इसे विज्ञापन नेटवर्क को नहीं भेज सकता।
Singular (2024) के अनुसार, वैश्विक ATT सहमति दर 25–35% है, यूरोप (GDPR) में उच्च दर (40–50%) और अमेरिका में कम (15–25%)। इसने विज्ञापन प्लेटफार्मों को वैकल्पिक एट्रिब्यूशन विधियाँ विकसित करने के लिए प्रेरित किया।
SKAdNetwork IDFA को उजागर किए बिना इंस्टॉल एट्रिब्यूशन के लिए Apple का फ्रेमवर्क है। यह OS स्तर पर काम करता है: विज्ञापन नेटवर्क एक हस्ताक्षरित पोस्टबैक भेजता है, जिसे Apple सत्यापित करता है और डेवलपर को अग्रेषित करता है। एट्रिब्यूशन किसी विशिष्ट उपयोगकर्ता की पहचान किए बिना होता है — केवल अभियान स्तर पर।
प्रोबेबिलिस्टिक एट्रिब्यूशन इंस्टॉल को विज्ञापन इंप्रेशन से संभाव्य रूप से मिलान करने के लिए कई डिवाइस सिग्नल — मॉडल, iOS संस्करण, समय क्षेत्र, स्क्रीन चमक — का उपयोग करता है। हालाँकि, Apple अपने दिशानिर्देशों में इस विधि को प्रतिबंधित करता है, और इसका उपयोग एप्लिकेशन अस्वीकृति का कारण बन सकता है।
Google, Adjust और AppsFlyer ने अपने स्वयं के हाइब्रिड समाधान विकसित किए हैं जो SKAdNetwork को स्वामित्व एकत्रित डेटा के साथ जोड़ते हैं। उदाहरण के लिए, Google Ads रूपांतरण ट्रैकिंग IDFA के बिना एट्रिब्यूशन के लिए SKAdNetwork पोस्टबैक और अपने स्वयं के मशीन लर्निंग मॉडल का उपयोग करता है।
ATT को एकीकृत करने के लिए, आपको Info.plist में NSUserTrackingUsageDescription कुंजी जोड़नी होगी और AppTrackingTransparency फ्रेमवर्क को आयात करना होगा। नीचे Swift और Objective-C के लिए चरण दिए गए हैं।
पहला कदम Info.plist में NSUserTrackingUsageDescription कुंजी जोड़ना है जिसमें पाठ यह समझाता है कि एप्लिकेशन को ट्रैकिंग की आवश्यकता क्यों है। यह पाठ सिस्टम संवाद में दिखाई देगा। उदाहरण: “आपका IDFA वैयक्तिकृत विज्ञापन दिखाने और अभियान प्रभावशीलता ट्रैक करने के लिए उपयोग किया जाता है।”
इस कुंजी के बिना, requestTrackingAuthorization कॉल करने से एप्लिकेशन क्रैश हो जाएगा — Apple संवाद दिखाने से पहले स्पष्ट रूप से NSUserTrackingUsageDescription की जाँच करता है। पाठ संक्षिप्त, विशिष्ट और वास्तविक डेटा उपयोग को दर्शाने वाला होना चाहिए।
महत्वपूर्ण: कुंजी Xcode Info टैब के माध्यम से या Info.plist के XML स्रोत को संपादित करके मैन्युअल रूप से जोड़ी जाती है। इसे जोड़ने के बाद, प्रोजेक्ट को पुनर्निर्माण करें और सत्यापित करें कि कुंजी अंतिम बाइनरी में दिखाई देती है।
<!-- Info.plist -->
<key>NSUserTrackingUsageDescription</key>
<string>This identifier is used to deliver
personalized ads and measure campaign performance.</string>
एक वास्तविक प्रोजेक्ट में, विज्ञापन मॉड्यूल या ट्रैकर के पहले लॉन्च से पहले ATT अनुरोध को कॉल करना सबसे अच्छा है। एक अलग स्क्रीन (पूर्व-अनुमति प्रॉम्प्ट) पर सहमति के मूल्य को पहले समझाने की सिफारिश की जाती है — इससे सहमति दर 20–30% बढ़ जाती है।
पूर्व-अनुमति प्रॉम्प्ट एक कस्टम UI है जो ट्रैकिंग सक्षम करने के लाभ को दर्शाता है (“हमें आपको प्रासंगिक विज्ञापन दिखाने में मदद करें”)। “जारी रखें” पर टैप करने के बाद ही सिस्टम ATT संवाद प्रकट होता है। Adjust (2024) ने पूर्व-अनुमति स्क्रीन का उपयोग करने पर सहमति में 40% वृद्धि दर्ज की।
final class TrackingManager {
static let shared = TrackingManager()
func requestTrackingIfNeeded() {
guard ATTrackingManager.trackingAuthorizationStatus
== .notDetermined
else { return }
ATTrackingManager.requestTrackingAuthorization { _ in
NotificationCenter.default.post(
Notification(Name("trackingStatusChanged"))
)
}
}
}
डेवलपर्स ATT को एकीकृत करते समय अक्सर विशिष्ट गलतियाँ करते हैं, जो कम सहमति रूपांतरण या App Store समीक्षकों द्वारा एप्लिकेशन अस्वीकृति का कारण बनती हैं। आइए पाँच सबसे सामान्य समस्याओं की जाँच करें।
सबसे आम गलती एप्लिकेशन लोड होने के तुरंत बाद पहली स्क्रीन पर ATT सिस्टम संवाद दिखाना है। उपयोगकर्ता अभी तक एप्लिकेशन के मूल्य को नहीं समझता है और “अस्वीकार करें” दबाने की संभावना है। IronSource (2023) ने तीसरे सत्र के बाद अनुरोध करने की तुलना में पहली स्क्रीन पर अनुरोध करने पर सहमति में 32% की गिरावट दिखाई।
सिफारिश: उपयोगकर्ता द्वारा कोई मूल्यवान कार्य करने (सामग्री देखना, ऑनबोर्डिंग शुरू करना) या 3–5 एप्लिकेशन सत्रों के बाद ट्रैकिंग का अनुरोध करें। इससे विश्वास और अनुमानित मूल्य बढ़ता है।
बिना पूर्व स्पष्टीकरण के ATT सिस्टम संवाद दिखाना एक गलती है जो रूपांतरण को 15–20% तक गिरा देती है। उपयोगकर्ता एक अप्रत्याशित अनुरोध देखता है और सहज रूप से अस्वीकार करता है। लाभ समझाने वाली पूर्व-अनुमति स्क्रीन सहमति को 35–45% तक बढ़ा देती है।
पूर्व-अनुमति पाठ विशिष्ट होना चाहिए: “हमें प्रासंगिक विज्ञापन दिखाने की अनुमति दें — इससे हमें मुफ्त बने रहने में मदद मिलती है।” अस्पष्ट वाक्यांशों से बचें — वे विश्वास कम करते हैं। GameAnalytics ने 2023 में दिखाया कि लाभ समझाने वाली पूर्व-अनुमति स्क्रीन खाली स्क्रीन की तुलना में 28% अधिक सहमति देती है।
यदि उपयोगकर्ता ने पहले ही ट्रैकिंग से इनकार कर दिया है या स्थिति restricted है (अभिभावकीय नियंत्रण, कॉर्पोरेट नीतियाँ), तो एप्लिकेशन को ATT संवाद को फिर से कॉल नहीं करना चाहिए। बार-बार कॉल काम नहीं करता और इसे गोपनीयता उल्लंघन के रूप में माना जाता है। इसके बजाय, SKAdNetwork और प्रासंगिक विज्ञापन पर स्विच करें।
restricted स्थिति में, एप्लिकेशन यह निर्धारित नहीं कर सकता कि सेटिंग्स में “ट्रैकिंग अनुरोधों की अनुमति दें” विकल्प सक्षम है या नहीं। इस मामले में, हमेशा SKAdNetwork को एकमात्र एट्रिब्यूशन विधि के रूप में उपयोग करें और पूर्व-अनुमति स्क्रीन न दिखाएँ।
पूर्व ATT अनुमति के बिना ASIdentifierManager.shared().advertisingIdentifier के माध्यम से IDFA पढ़ने पर शून्य की स्ट्रिंग लौटती है। कुछ डेवलपर्स निजी API के माध्यम से IDFA तक पहुँचने के पुराने तरीकों का उपयोग करने का प्रयास करते हैं — यह एप्लिकेशन समीक्षा के दौरान अस्वीकृति की गारंटी है।
Apple कामचलाऊ तरीकों का पता लगाने के लिए स्थिर कोड विश्लेषण और मशीन लर्निंग का उपयोग करता है। भले ही एप्लिकेशन समीक्षा पास कर ले, बाद के अपडेट या स्वचालित जाँच उल्लंघन को प्रकट कर सकती हैं और डेवलपर खाता प्रतिबंध का कारण बन सकती हैं।
NSUserTrackingUsageDescription कुंजी में बहुत लंबा, अस्पष्ट या भ्रामक पाठ समीक्षकों द्वारा अस्वीकृति का कारण है। Apple जाँचता है कि विवरण वास्तविक डेटा उपयोग से मेल खाता हो। यदि एप्लिकेशन में कोई विज्ञापन नहीं है लेकिन “विज्ञापन उद्देश्यों के लिए” बताता है, तो समीक्षक बिल्ड को अस्वीकार कर देगा।
अनुशंसित प्रारूप: IDFA उपयोग के उद्देश्य का 2–3 वाक्यों में विशिष्ट विवरण। विज्ञापन रहित एप्लिकेशन के लिए उदाहरण: “पहचानकर्ता का उपयोग विश्लेषण और धोखाधड़ी रोकथाम के लिए किया जाता है। डेटा तीसरे पक्ष के साथ साझा नहीं किया जाता है और प्रोफाइलिंग के लिए उपयोग नहीं किया जाता है।”
अक्सर पूछे जाने वाले प्रश्न
यदि कोई एप्लिकेशन ATT के बिना IDFA या ट्रैकिंग का उपयोग करता है, तो Apple इसे समीक्षा के दौरान अस्वीकार करेगा। भले ही कोई ट्रैकिंग न हो, पारदर्शिता के लिए ATT जोड़ने की सिफारिश की जाती है — अन्यथा, प्रत्येक अपडेट के साथ अस्वीकृति का जोखिम बढ़ता है।
हाँ, एप्लिकेशन पूरी तरह से काम करता है, लेकिन विज्ञापन नेटवर्क को वैयक्तिकरण और एट्रिब्यूशन के लिए IDFA नहीं मिलेगा। वैयक्तिकृत विज्ञापनों को छोड़कर सभी एप्लिकेशन सुविधाएँ उपलब्ध रहती हैं।
हाँ, उपयोगकर्ता किसी भी समय सेटिंग्स → गोपनीयता → ट्रैकिंग के माध्यम से अपना निर्णय बदल सकता है। एप्लिकेशन प्रोग्रामेटिक रूप से स्थिति रीसेट नहीं कर सकता — केवल सिस्टम सेटिंग्स के माध्यम से।
लाभ समझाने वाली पूर्व-अनुमति स्क्रीन का उपयोग करें, और पहले लॉन्च पर नहीं बल्कि उपयोगकर्ता द्वारा मूल्यवान कार्य करने के बाद ट्रैकिंग का अनुरोध करें। Meta (2024) ने विलंबित अनुरोधों के साथ सहमति में 35% वृद्धि दिखाई।
“बच्चों” श्रेणी के एप्लिकेशन Apple के नियमों के अनुसार ट्रैकिंग के लिए IDFA और ATT का उपयोग नहीं कर सकते। उन्हें विश्लेषण या विज्ञापन के लिए तीसरे पक्ष के साथ डेटा साझा करने से भी प्रतिबंधित किया गया है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें