App Tracking Transparency (ATT) ایک iOS میکانزم ہے جو ایپس اور ویب سائٹس پر ٹریکنگ سے پہلے اشتہاری شناخت کنندہ IDFA تک رسائی کے لیے صارف کی واضح رضامندی کا تقاضا کرتا ہے۔ iOS 14.5 میں متعارف کرایا گیا، ATT نے تمام ڈویلپرز کو ٹریکنگ کی اجازت کی درخواست کرنے والا سسٹم ڈائیلاگ دکھانے کا پابند کیا۔ Apple Developer Documentation کے مطابق، ہر ایپ جو IDFA کو ٹارگٹڈ اشتہارات یا انتساب کے لیے استعمال کرتی ہے، اسے ATT فریم ورک کو ضم کرنا اور رسائی کی اجازت حاصل کرنی چاہیے۔
اہم نکات
App Tracking Transparency iOS 14.5 میں متعارف کرایا گیا Apple کا صارف کی رازداری کے تحفظ کا فریم ورک ہے۔ یہ ایپس سے مطالبہ کرتا ہے کہ وہ ٹریکنگ کے لیے ڈیوائس کے اشتہاری شناخت کنندہ (IDFA) تک رسائی سے پہلے واضح اجازت حاصل کریں۔
ATT کے ظہور سے پہلے، ڈویلپر بغیر درخواست کے IDFA پڑھ سکتے تھے، جس سے اشتہاری نیٹ ورکس کو صارفین کے پروفائلز بنانے اور ایپس اور ویب سائٹس کے درمیان ان کی سرگرمیوں کو ٹریک کرنے کی اجازت ملتی تھی۔ Apple نے اس طریقے کو رازداری کی خلاف ورزی قرار دیا اور لازمی رضامندی کا ڈائیلاگ متعارف کرایا۔
یہ فریم ورک iOS 14.0 سے دستیاب ہے، لیکن IDFA استعمال کرنے والی تمام ایپس کے لیے اپریل 2021 میں iOS 14.5 کی ریلیز کے ساتھ لازمی ہو گیا۔ Flurry Analytics کے اعداد و شمار کے مطابق، ATT کے نفاذ کے بعد 25% سے بھی کم امریکی صارفین نے ٹریکنگ پر رضامندی ظاہر کی، جس نے موبائل اشتہاری مارکیٹ کو یکسر تبدیل کر دیا۔
ATT ایک خاص سسٹم ڈائیلاگ کے ذریعے اجازت کی موجودگی کی جانچ کرتا ہے جسے ایپ تبدیل یا نظرانداز نہیں کر سکتی۔ صارف ڈویلپر کے فراہم کردہ متن کے ساتھ ایک معیاری پاپ اپ دیکھتا ہے اور «اجازت دیں» یا «ایپ کو ٹریک نہ کرنے کو کہیں» کا انتخاب کرتا ہے۔
Apple ATT کو اپنی مجموعی رازداری کی حکمت عملی کے حصے کے طور پر پیش کرتا ہے، جس میں App Store میں Privacy Nutrition Label اور Privacy Manifest بھی شامل ہیں۔ تینوں میکانزم مل کر کام کرتے ہیں: لیبل ظاہر کرتے ہیں کہ ایپ کون سا ڈیٹا اکٹھا کرتی ہے، Manifest API استعمال کرنے کی وجوہات بتاتا ہے، اور ATT صارف کو ٹریکنگ پر کنٹرول دیتا ہے۔
ٹریکنگ سے انکار ایپ کے کام کو روکتا نہیں ہے۔ صارف تمام فیچرز استعمال کر سکتا ہے، لیکن اشتہاری نیٹ ورکس کو ذاتی بنانے اور انتساب کے لیے IDFA نہیں ملے گا۔ Apple کے SKAdNetwork اور Probabilistic Attribution IDFA کے متبادل بن گئے ہیں۔
Branch Metrics کے مطابق، ATT کے نفاذ کے بعد IDFA حاصل کرنے والی ایپس کا تناسب عالمی سطح پر 70% سے کم ہو کر 20% رہ گیا۔ اس کی وجہ سے انسٹالیشن کے انتساب اور اشتہارات کے ذریعے منیٹائزیشن کے طریقوں کا ازسرنو جائزہ لیا گیا۔
iOS 15 میں Apple نے ATT کی ضروریات کو مزید سخت نہیں کیا، لیکن App Privacy Report کا اضافہ کیا — ایک رپورٹ جو صارف کو دکھاتی ہے کہ ایپس سینسرز اور ڈیٹا تک کتنی بار رسائی حاصل کرتی ہیں۔ 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 اسے تصدیق کرتا ہے اور ڈویلپر کو منتقل کرتا ہے۔ انتساب انفرادی صارف کی شناخت کے بغیر صرف مہم کی سطح پر ہوتا ہے۔
Probabilistic Attribution ڈیوائس ماڈل، iOS ورژن، ٹائم زون، اسکرین کی چمک جیسے متعدد ڈیوائس سگنلز کا استعمال کرتے ہوئے انسٹالیشنز کو اشتہاری نمائشوں سے امکانی طور پر ملاتا ہے۔ تاہم Apple اپنے قوانین میں اس طریقے کو ممنوع قرار دیتا ہے اور اس کے استعمال سے ایپ مسترد ہو سکتی ہے۔
Google، Adjust اور AppsFlyer نے اپنے ہائبرڈ حل تیار کیے ہیں جو SKAdNetwork کو اپنے مجموعی ڈیٹا کے ساتھ ملاتے ہیں۔ مثال کے طور پر، Google Ads Conversion Tracking 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 کی درخواست کو اشتہاری ماڈیول یا ٹریکر کے پہلے لانچ سے پہلے کال کرنا بہتر ہے۔ پہلے سے اجازت والی اسکرین (pre-permission prompt) پر صارف کو رضامندی کی اہمیت سمجھانے کی سفارش کی جاتی ہے — اس سے رضامندی کی شرح 20-30% بڑھ جاتی ہے۔
Pre-permission پرامپٹ ایک حسب ضرورت UI ہے جو ٹریکنگ کو فعال کرنے کے فائدے کو ظاہر کرتا ہے («براہ کرم ہمیں متعلقہ اشتہارات دکھانے میں مدد کریں»)۔ «جاری رکھیں» بٹن دبانے کے بعد ہی سسٹم ATT ڈائیلاگ کال ہوتا ہے۔ Adjust (2024) نے pre-permission اسکرین کے استعمال سے رضامندی میں 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 کے Moderators کے ذریعے ایپ کی مستردی کا سبب بنتی ہیں۔ آئیے پانچ سب سے عام مسائل کا جائزہ لیتے ہیں۔
سب سے عام غلطی ایپ لوڈ ہونے کے بعد پہلی اسکرین پر ATT سسٹم ڈائیلاگ دکھانا ہے۔ صارف ابھی ایپ کی اہمیت کو نہیں سمجھا اور زیادہ امکان ہے کہ «انکار» پر کلک کرے۔ IronSource (2023) نے پہلی اسکرین پر درخواست کرنے پر رضامندی میں 32% کمی ظاہر کی، اس کے مقابلے میں جو تیسرے سیشن کے بعد کی گئی درخواست تھی۔
توصیف: صارف کے ہدف کا عمل مکمل کرنے کے بعد (مواد دیکھنا، آن بورڈنگ شروع کرنا) یا ایپ استعمال کے 3-5 سیشنز کے بعد ٹریکنگ کی درخواست کریں۔ اس سے اعتماد اور اہمیت کا احساس بڑھتا ہے۔
پہلے سے وضاحت کے بغیر ATT سسٹم ڈائیلاگ دکھانا ایک غلطی ہے جو رضامندی کی شرح کو 15-20% تک کم کر دیتی ہے۔ صارف ایک غیر متوقع درخواست دیکھتا ہے اور فطری طور پر انکار کر دیتا ہے۔ فائدے کی وضاحت کے ساتھ Pre-permission اسکرین رضامندی کو 35-45% تک بڑھا دیتی ہے۔
Pre-permission کا متن مخصوص ہونا چاہیے: «براہ کرم متعلقہ اشتہارات دکھانے کی اجازت دیں — اس سے ہمیں مفت رہنے میں مدد ملتی ہے۔» عام جملوں سے پرہیز کریں — یہ اعتماد کم کرتے ہیں۔ GameAnalytics نے 2023 میں دکھایا کہ فائدے کی وضاحت کے ساتھ pre-permission خالی اسکرین کے مقابلے میں 28% زیادہ رضامندی دیتا ہے۔
اگر صارف نے پہلے ہی ٹریکنگ سے انکار کر دیا ہے یا حیثیت restricted (والدین کا کنٹرول، کارپوریٹ پالیسیاں) ہے تو ایپ کو ATT ڈائیلاگ دوبارہ نہیں کال کرنا چاہیے۔ دوبارہ کال کام نہیں کرتی اور رازداری کی خلاف ورزی سمجھی جاتی ہے۔ اس کے بجائے SKAdNetwork اور سیاق و سباق کے اشتہارات پر سوئچ کریں۔
restricted حیثیت میں، ایپ اس بات کا تعین نہیں کر سکتی کہ ترتیبات میں «ٹریکنگ کی درخواستوں کی اجازت دیں» کا آپشن فعال ہے یا نہیں۔ اس صورت میں ہمیشہ SKAdNetwork کے ذریعے متبادل انتساب استعمال کریں اور pre-permission اسکرین نہ دکھائیں۔
پہلے سے ATT اجازت کے بغیر ASIdentifierManager.shared().advertisingIdentifier کے ذریعے IDFA پڑھنے سے صفر کا سٹرنگ واپس آتا ہے۔ کچھ ڈویلپر پرائیویٹ APIs کے ذریعے IDFA تک رسائی کے پرانے طریقے استعمال کرنے کی کوشش کرتے ہیں — یہ یقینی طور پر جائزہ میں ایپ کی مستردی کا باعث بنتا ہے۔
Apple بائی پاس کے طریقوں کو تلاش کرنے کے لیے جامد کوڈ تجزیہ کار اور مشین لرننگ کا استعمال کرتا ہے۔ یہاں تک کہ اگر ایپ جائزہ پاس کر لیتی ہے، بعد کی اپ ڈیٹس یا خودکار چیک خلاف ورزی کا پتہ لگا سکتے ہیں اور ڈویلپر اکاؤنٹ پر پابندی لگا سکتے ہیں۔
NSUserTrackingUsageDescription کلید میں بہت لمبا، مبہم یا گمراہ کن متن — Moderators کے ذریعے ایپ کی مستردی کا سبب ہے۔ Apple چیک کرتا ہے کہ تفصیل ڈیٹا کے حقیقی استعمال سے مطابقت رکھتی ہے۔ اگر ایپ میں اشتہارات نہیں ہیں لیکن «اشتہاری مقاصد کے لیے» لکھا ہے تو Moderator بلڈ کو مسترد کر دے گا۔
تجویز کردہ فارمیٹ: IDFA استعمال کے مقصد کی 2-3 جملوں میں مخصوص وضاحت۔ بغیر اشتہارات کے ایپ کی مثال: «شناخت کنندہ تجزیات اور فراڈ کی روک تھام کے لیے استعمال ہوتا ہے۔ ڈیٹا تیسرے فریق کو منتقل نہیں کیا جاتا اور پروفائلنگ کے لیے استعمال نہیں ہوتا۔»
اکثر پوچھے گئے سوالات
اگر ایپ ATT کے بغیر IDFA یا ٹریکنگ استعمال کرتی ہے تو Apple اسے جائزہ کے عمل میں مسترد کر دے گا۔ ٹریکنگ کی عدم موجودگی میں بھی شفافیت کے لیے ATT شامل کرنے کی سفارش کی جاتی ہے، ورنہ اگلی اپ ڈیٹ پر مستردی کا خطرہ بڑھ جاتا ہے۔
جی ہاں، ایپ مکمل طور پر کام کرتی ہے، لیکن اشتہاری نیٹ ورکس کو ذاتی بنانے اور انتساب کے لیے IDFA نہیں ملے گا۔ ذاتی نوعیت کے اشتہارات کے علاوہ ایپ کے تمام فیچرز قابل استعمال رہتے ہیں۔
جی ہاں، صارف ترتیبات → رازداری → ٹریکنگ کے ذریعے کسی بھی وقت اپنا فیصلہ تبدیل کر سکتا ہے۔ ایپ پروگرامی طور پر حیثیت کو ری سیٹ نہیں کر سکتی — صرف سسٹم کی ترتیبات کے ذریعے۔
فائدے کی وضاحت کے ساتھ pre-permission اسکرین استعمال کریں، پہلے لانچ پر نہیں بلکہ ہدف کا عمل مکمل کرنے کے بعد ٹریکنگ کی درخواست کریں۔ Meta (2024) نے تاخیر سے کی گئی درخواست پر رضامندی میں 35% اضافہ ظاہر کیا۔
«بچوں کے لیے» زمرے کی ایپس Apple کے قوانین کے مطابق ٹریکنگ کے لیے IDFA اور ATT استعمال نہیں کر سکتیں۔ انہیں تجزیات یا اشتہارات کے لیے تیسرے فریق کو ڈیٹا منتقل کرنے سے بھی منع کیا گیا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں