Bagaimana cara mengoptimumkan kadar opt-in Ketelusan Penjejakan Apl (ATT)? Meningkatkan pengalaman kebenaran ATT melibatkan penyediaan konteks pra-kebenaran yang jelas, menulis NSUserTrackingUsageDescription yang tepat, dan memilih titik yang relevan dalam perjalanan pengguna untuk memaparkan permintaan kebenaran sistem. Kesan terhadap kadar kebenaran harus diukur secara empirik.
Pengenal pasti untuk Pengiklan (IDFA) ialah pengecam peranti boleh tetapkan semula yang disediakan oleh Apple yang digunakan untuk atribusi dan pengukuran pengiklanan pada iOS. Di bawah rangka kerja Ketelusan Penjejakan Apl (ATT), aplikasi boleh mengakses IDFA hanya selepas menerima kebenaran eksplisit daripada pengguna melalui gesaan kebenaran
ATTrackingManager.
| Terma | Definisi |
|---|---|
| IDFA | Pengecam pengiklanan peringkat platform Apple yang dikawal oleh Ketelusan Penjejakan Apl. |
| Ketelusan Penjejakan Apl | Rangka kerja Apple yang memerlukan kebenaran pengguna sebelum menjejaki pengguna merentas aplikasi dan laman web. |
| ATTrackingManager | API AppTrackingTransparency asli yang digunakan untuk meminta kebenaran penjejakan. |
| Primer Pra-Kebenaran | Skrin dalam apl tersuai yang dipaparkan sebelum gesaan sistem untuk menerangkan sebab kebenaran diminta. |
Ekonomi Akses IDFA dan Pengoptimuman Persetujuan ATT
Peranan Akses IDFA Yang Dibenarkan dalam Pengukuran iOS Moden
Akses IDFA yang dibenarkan boleh menyokong atribusi pengiklanan peringkat pengguna dan aliran kerja pengukuran apabila penggunaan data penjejakan aplikasi mematuhi ATT serta keperluan rakan kongsi pengiklanan dan pengukuran. Apabila kebenaran penjejakan tidak tersedia, pasukan yang masih memerlukan pengukuran pengiklanan boleh menggunakan pendekatan pengantaraan platform yang dibenarkan secara bebas seperti AdAttributionKit atau integrasi SKAdNetwork sedia ada.
Apabila dibenarkan, IDFA menyediakan kunci gabungan deterministik untuk integrasi rangkaian iklan yang disokong, membolehkan pendamaian penukaran peringkat kempen tanpa pemodelan statistik. Apabila kebenaran ditolak, aplikasi mengalihkan pengukuran kepada rangka kerja asli platform.
Masalah dengan Gesaan Pelancaran Sejuk Segera
Meminta pengguna untuk kebenaran penjejakan serta-merta semasa pelancaran sejuk dibenarkan dari segi teknikal oleh Apple, tetapi ia mungkin memberikan kurang konteks untuk keputusan kebenaran yang maklum kerana pengguna belum lagi mengalami fungsi aplikasi:
- Ketiadaan Kepercayaan Produk: Pengguna kali pertama belum lagi membina keyakinan terhadap fungsi aplikasi, nilai jenama, atau amalan keselamatan data.
- Konteks Tidak Jelas: Dialog sistem asli muncul tanpa penjelasan terlebih dahulu, menyebabkan pengguna yang berhati-hati memilih lalai kepada “Minta Apl Jangan Jejaki”.
- Keletihan Kebenaran: Menumpuk berbilang dialog kebenaran sistem (seperti Pemberitahuan Push, ATT, dan Lokasi) semasa pelancaran awal apl mewujudkan geseran dan meningkatkan kadar pengabaian onboarding. Dokumentasi API Apple menyatakan bahawa jika amaran kebenaran sedia ada sudah belum selesai, permintaan kebenaran berikutnya tidak akan muncul.

Menilai Prestasi Opt-In Secara Empirik
Kadar persetujuan yang boleh dicapai berbeza mengikut kategori apl, kepercayaan audiens, masa gesaan, and kejelasan salinan. Pasukan harus menilai varian pengoptimuman menggunakan ujian A/B terkawal daripada bergantung pada penanda aras industri tetap.
Lihat Juga: IDFA ──> Model Atribusi Mudah Alih
Mekanik Teknikal Rangka Kerja AppTrackingTransparency
Empat Status Kebenaran
Akses kepada IDFA dikawal secara ketat oleh enum ATTrackingManager.AuthorizationStatus:
notDetermined(0): Pengguna belum lagi diberikan dialog kebenaran.restricted(1): Peranti disekat oleh kawalan ibu bapa, profil konfigurasi pendidikan, atau MDM korporat; kebenaran penjejakan tidak boleh diberikan dan butang tetapan dilumpuhkan.denied(2): Apl tidak mempunyai kebenaran untuk mengakses data berkaitan apl untuk penjejakan selepas pengguna menolak permintaan tersebut.authorized(3): Pengguna membenarkan penjejakan. Pada peranti iOS dan iPadOS yang disokong, ini biasanya membenarkan akses kepada pengecam pengiklanan bukan sifar.

Peraturan Gesaan Sistem Sekali Sahaja
Sistem pengendalian iOS menguatkuasakan peraturan persembahan tunggal untuk ATTrackingManager.requestTrackingAuthorization. Sebaik sahaja pengguna berinteraksi dengan modal asli sama ada dengan memilih “Benarkan” atau “Minta Apl Jangan Jejaki”, sistem mengingati status yang ditentukan dan tidak memaparkan gesaan itu lagi semasa pemasangan apl tersebut.
Walaupun gesaan sistem tidak akan muncul kali kedua, pengguna boleh melaraskan kebenaran penjejakan mereka secara manual pada bila-bila masa dalam Tetapan iOS.
Bagaimana iOS Menguatkuasakan Pengsifaran Pengecam Apabila Kebenaran Penjejakan Ditolak
Pada iOS 14.5 dan lebih baharu, pengecam pengiklanan biasanya mengembalikan semua sifar (00000000-0000-0000-0000-000000000000) apabila kebenaran penjejakan tidak diberikan. Pembangun harus mengesahkan kedua-dua status kebenaran ATT dan nilai pengecam yang dikembalikan atas permintaan daripada mengandaikan rentetan yang dicache kekal sah merentas pelancaran aplikasi.
Seni Bina UX Penukaran Tinggi: Strategi Primer Pra-Kebenaran
Anatomi Primer Konteks Berkesan: Kekangan HIG Apple
Menurut Garis Panduan Antara Muka Pengguna Apple mengenai Privasi, aplikasi boleh membentangkan skrin pra-amaran tersuai sebelum gesaan kebenaran sistem jika konteks tambahan diperlukan. Walau bagaimanapun, Apple mengenakan peraturan reka bentuk yang ketat pada primer pra-kebenaran ini:
- Butang Tindakan Tunggal: Skrin pra-kebenaran mesti menyediakan hanya satu butang (seperti “Teruskan” atau “Seterusnya”) yang menuju terus ke gesaan sistem. Ia tidak boleh menawarkan butang “Batal”, “Tutup”, atau “Tidak Sekarang” yang memintas atau melambatkan amaran sistem.
- Tiada Peniruan UI: Skrin primer tidak boleh meniru secara visual kotak amaran sistem iOS asli atau memaparkan butang palsu berlabel “Benarkan”.
- Tiada Paksaan Visual: Antara muka tidak boleh menggunakan grafik, anak panah, atau penggayaan kontras tinggi yang direka untuk memanipulasi atau mendorong pengguna ke arah memilih “Benarkan” pada gesaan sistem berikutnya.
Mematuhi Garis Panduan Semakan App Store 5.1.2
Di bawah Garis Panduan Semakan App Store Apple Seksyen 5.1.2, Apple menguatkuasakan sempadan yang jelas mengenai permintaan kebenaran:
- Larangan Penjejakan Berkaitan Insentif: Apl dilarang sama sekali menawarkan insentif kewangan, mata wang maya, kandungan premium, atau diskaun sebagai pertukaran untuk memberikan persetujuan ATT. Berbuat demikian melanggar Garis Panduan 5.1.2 dan boleh mengakibatkan penolakan apl.
- Tiada Sekatan Fungsi Teras: Aplikasi tidak boleh menyekat ciri teras, menghalang penciptaan akaun, atau menurunkan prestasi apl jika pengguna menolak kebenaran penjejakan.
- Keinginan Utama Pilihan Pengguna: Pilihan penjejakan sebenar pengguna mesti sentiasa dibuat pada gesaan sistem Apple asli.

Peringkat 1: Onboarding Pengguna / Realisasi Nilai Teras
│
▼
Peringkat 2: Skrin Primer Pra-Kebenaran Kontekstual
(Tindakan Tunggal "Teruskan" ── Menjelaskan Tujuan)
│
▼
Peringkat 3: Modal Sistem ATTrackingManager iOS Asli
(Pengguna Memilih "Benarkan" atau "Minta Apl Jangan Jejaki")
│
┌────────────┴────────────┐
▼ ▼
[.authorized] [.denied]
ATT Dibenarkan P Fallback Anggun
(IDFA biasanya kepada API Platform
tersedia) (AdAttributionKit / SKAN)
Mengoptimumkan Rentetan NSUserTrackingUsageDescription
Mengkonfigurasi Info.plist untuk Ketelusan Tujuan
Kunci NSUserTrackingUsageDescription dalam Info.plist menentukan rentetan penerangan yang dipaparkan terus dalam amaran sistem ATT Apple asli. Menurut dokumentasi Apple, rentetan ini mesti ringkas, khusus, dan menerangkan dengan tepat cara data penjejakan digunakan.
Menguji Varian Rentetan Tujuan Jelas Tanpa Mengubah Pendedahan Asas
Apabila menguji variasi rentetan, setiap varian yang diuji mesti menerangkan dengan tepat dan lengkap amalan penjejakan sebenar aplikasi:
- Fokus Pemperibadian: Menjelaskan cara data digunakan untuk menyesuaikan cadangan kandungan and cadangan produk.
- Fokus Kaitan Iklan: Menjelaskan cara data digunakan untuk menyampaikan promosi yang relevan dan mengelakkan iklan berulang.
- Fokus Pengukuran Kempen: Menjelaskan cara data digunakan untuk mengukur prestasi perkongsian pengiklanan.
Konfigurasi di bawah menggambarkan contoh NSUserTrackingUsageDescription. Gunakannya hanya jika perkataan tersebut menerangkan dengan tepat amalan penjejakan sebenar apl:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSUserTrackingUsageDescription</key>
<string>Data anda akan digunakan untuk menyampaikan cadangan produk yang diperibadikan, tawaran promosi yang relevan, dan mengukur prestasi kempen pengiklanan.</string>
</dict>
</plist>
Kejuruteraan Pencetus Masa Gesaan Optimum dalam Kitaran Hayat Pengguna
Pertimbangan Masa merentas Perjalanan Pengguna
Walaupun meminta kebenaran ATT pada pelancaran pertama dibenarkan dari segi teknikal, membentangkan gesaan selepas pengguna mengalami utiliti produk awal boleh memberikan konteks yang lebih relevan untuk permintaan kebenaran:
- Pencetus Pasca-Onboarding: Membentangkan gesaan selepas pengguna selesai menyediakan akaun dan mengkonfigurasi keutamaan awal.
- Pencetus Milestones Kontekstual: Membentangkan gesaan selepas melengkapkan tindakan pengguna teras (cth., melengkapkan tutorial onboarding dalam permainan, menyimpan item kegemaran dalam apl beli-belah, atau menanda halaman artikel dalam apl kandungan).
Pelaksanaan Kejuruteraan ATTrackingManager dalam Swift
Mengendalikan Keadaan Aktif Aplikasi dan Keselamatan Benang
Menurut dokumentasi API Apple, ATTrackingManager.requestTrackingAuthorization memaparkan dialog modal hanya apabila keadaan aplikasi adalah .active. Jika gesaan kebenaran lain aktif atau belum selesai, amaran sistem tidak akan muncul, dan permintaan serentak tidak beratur oleh sistem pengendalian.

Pelaksanaan di bawah mengasingkan pengurusan status kebenaran daripada paparan pra-kebenaran tersuai ilustrasi:
import UIKit
import AppTrackingTransparency
import AdSupport
final class ATTManager {
static let shared = ATTManager()
private init() {}
/// Menilai status kebenaran semasa
var currentStatus: ATTrackingManager.AuthorizationStatus {
return ATTrackingManager.trackingAuthorizationStatus
}
/// Menentukan sama ada kebenaran penjejakan boleh dibentangkan
var canRequestAuthorization: Bool {
return currentStatus == .notDetermined
}
/// Meminta kebenaran penjejakan dengan pengesahan keadaan aktif aplikasi
/// - Parameter completion: Penutupan yang mengembalikan status kebenaran yang diselesaikan
func requestAuthorization(completion: @escaping (ATTrackingManager.AuthorizationStatus) -> Void) {
guard canRequestAuthorization else {
completion(currentStatus)
return
}
// Sahkan aplikasi aktif sebelum memanggil requestTrackingAuthorization
guard UIApplication.shared.applicationState == .active else {
print("Permintaan ATT dilangkau: aplikasi tidak aktif. Hubungi semula setelah aktif jika status kekal notDetermined.")
completion(currentStatus)
return
}
DispatchQueue.main.async {
ATTrackingManager.requestTrackingAuthorization { status in
DispatchQueue.main.async {
switch status {
case .authorized:
// Baca pengecam pengiklanan semasa atas permintaan; jangan kekalkan IDFA yang dicache.
let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString
print("ATT Dibenarkan - IDFA tersedia: \(idfa)")
case .denied:
print("ATT Ditolak - Pengecam pengiklanan mengembalikan sifar")
case .restricted:
print("ATT Dihadkan oleh profil sistem")
case .notDetermined:
print("ATT Keadaan belum diselesaikan")
@unknown default:
print(
"Keadaan tidak diketahui ATT ditemui")
}
completion(status)
}
}
}
}
}
/// UIViewController tersuai ilustrasi untuk primer pra-kebenaran yang selaras dengan HIG
final class ATTPrimerViewController: UIViewController {
private let continueButton = UIButton(type: .system)
private let titleLabel = UILabel()
private let descriptionLabel = UILabel()
var onContinueTapped: (() -> Void)?
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
private func setupUI() {
view.backgroundColor = .systemBackground
// Cegah leret interaktif untuk menutup apabila dibentangkan secara modal untuk memastikan navigasi laluan tunggal
isModalInPresentation = true
titleLabel.text = "Bantu Kami Memperibadikan Pengalaman Anda"
titleLabel.font = .boldSystemFont(ofSize: 20)
titleLabel.textAlignment = .center
titleLabel.numberOfLines = 0
descriptionLabel.text = "Kami menggunakan data untuk menyesuaikan cadangan produk dan menyampaikan tawaran promosi yang relevan. Pada skrin seterusnya, anda akan melihat gesaan kebenaran standard Apple untuk mengesahkan pilihan anda."
descriptionLabel.font = .systemFont(ofSize: 15)
descriptionLabel.textAlignment = .center
descriptionLabel.textColor = .secondaryLabel
descriptionLabel.numberOfLines = 0
// Panduan HIG Apple memerlukan satu tindakan Teruskan atau Seterusnya
continueButton.setTitle("Teruskan", for: .normal)
continueButton.titleLabel?.font = .boldSystemFont(ofSize: 17)
continueButton.addTarget(self, action: #selector(handleContinue), for: .touchUpInside)
let stack = UIStackView(arrangedSubviews: [titleLabel, descriptionLabel, continueButton])
stack.axis = .vertical
stack.spacing = 20
stack.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(stack)
NSLayoutConstraint.activate([
stack.centerXAnchor.constraint(equalTo: view.centerXAnchor),
stack.centerYAnchor.constraint(equalTo: view.centerYAnchor),
stack.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 32),
stack.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -32)
])
}
@objc private func handleContinue() {
// Mekanik pembentangan dan pemecatan adalah ilustrasi dan harus disesuaikan dengan seni bina navigasi apl.
dismiss(animated: true) { [weak self] in
self?.onContinueTapped?()
}
}
}
Pemulihan Pasca-Penolakan: Membimbing Pengguna ke Tetapan Sistem Tanpa Melanggar Dasar
Bilakah Perlu Memperkenalkan Aliran Kerja Tetapan Sekunder
Apabila pengguna memilih “Minta Apl Jangan Jejaki”, status kebenaran diselesaikan kepada .denied. Panggilan seterusnya kepada requestTrackingAuthorization mengembalikan .denied tanpa memaparkan dialog. Walau bagaimanapun, jika pengguna kemudiannya memulakan ciri yang mendapat faedah jelas daripada penjejakan (seperti meminta tetapan pengiklanan yang diperibadikan dalam profil akaun mereka), apl boleh menyediakan laluan yang tidak memaksa ke Tetapan iOS.
Menggunakan UIApplication.openSettingsURLString
Untuk membimbing pengguna ke anak tetingkap tetapan apl, gunakan UIApplication.openSettingsURLString:
if let settingsURL = URL(string: UIApplication.openSettingsURLString),
UIApplication.shared.canOpenURL(settingsURL) {
UIApplication.shared.open(settingsURL, options: [:], completionHandler: nil)
}
Perhatikan bahawa API ini membuka halaman tetapan khusus aplikasi; ia tidak menyediakan pautan mendalam (deep link) terus ke skrin global Tetapan > Privasi & Keselamatan > Penjejakan.
Sempadan Dasar App Store
- Tiada Bebel Berterusan: Jangan paparkan sepanduk berulang yang mendesak pengguna untuk mendayakan penjejakan dalam tetapan.
- Tiada Sekatan Ciri: Jangan sekali-kali melumpuhkan fungsi teras kerana penjejakan kekal dilumpuhkan dalam tetapan.
Matriks Keputusan Perbandingan: Strategi Pra-Kebenaran berbanding Gesaan Pelancaran Sejuk
| Dimensi | Gesaan Pelancaran Sejuk Lalai | Modal Kebenaran Disekat Keras | Primer Pra-Kebenaran Selaras HIG |
|---|---|---|---|
| Konteks Pengguna Sebelum Gesaan | Rendah (Tiada penglibatan produk) | Berbeza (Menyekat akses) | Kontekstual (Dibentangkan selepas interaksi yang relevan) |
| Panduan UI/Kebenaran Apple | Dibenarkan apabila permintaan dan penggunaan data mematuhi | Tidak dibenarkan apabila akses atau pampasan bergantung pada penjejakan | Dibenarkan apabila kekangan pra-amaran HIG dan peraturan penjejakan dipatuhi |
| Kekangan UI Pra-Amaran Apple | Tatasusunan Tidak Berkenaan (N/A) | Tatasusunan Tidak Berkenaan (N/A) | Tindakan Teruskan/Seterusnya tunggal; tiada amaran palsu |
| Masa Gangguan Kebenaran | Serta-merta semasa pelancaran | Menyekat | Milestone kontekstual |
| Kadar Opt-In Yang Pemerhatian | Mesti diukur secara empirik | Tidak dibenarkan | Mesti diukur secara empirik |
Soalan Lazim (FAQ)
Bolehkah apl menawarkan mata wang dalam apl atau diskaun sebagai pertukaran untuk memberikan kebenaran ATT?
Bolehkah apl memaparkan gesaan ATT kedua jika pengguna mula-mula memilih "Minta Apl Jangan Jejaki"?
Adakah primer pra-kebenaran melanggar garis panduan App Store Apple?
Ringkasan dan Rangka Kerja Keputusan
Meningkatkan pengalaman kebenaran ATT memerlukan pendedahan tujuan yang jelas dan masa yang sedar konteks. Apabila penjelasan tambahan diperlukan, primer pra-kebenaran yang selaras dengan HIG boleh menyediakan konteks sebelum gesaan sistem, sambil menyelaraskan pengalaman kebenaran dengan garis panduan penjejakan dan antara muka yang diterbitkan oleh Apple.
Jika konteks atribusi atau onboarding masih diperlukan selepas penolakan ATT, aplikasi boleh menggunakan mekanisme yang dibenarkan secara bebas seperti AdAttributionKit, integrasi SKAdNetwork sedia ada, or penghalaan kontekstual pihak pertama tulen yang kekal dalam peraturan penjejakan Apple.
Untuk penghalaan kontekstual khusus produk dan tingkah laku atribusi, semak dokumentasi OpoInstall dan nilai pelaksanaan terhadap keperluan penjejakan Apple yang berkenaan.
Bahan Berkaitan
-
Konsep: Ketelusan Penjejakan Apl, Pengoptimuman IDFA, Primer Pra-Kebenaran, Corong Persetujuan
-
Teknologi: Rangka Kerja StoreKit, Rangka Kerja AppTrackingTransparency, SDK Mudah Alih OpoInstall
-
Piawaian: Garis Panduan Antara Muka Pengguna Apple mengenai Privasi, Garis Panduan Semakan App Store Seksyen 5.1.2
-
API:
ATTrackingManager.requestTrackingAuthorization,UIApplication.openSettingsURLString,ASIdentifierManager
Dokumentasi Rasmi
Share this article



