MON - FRI : 09:00 AM-18:00 PM

Xin quyền theo dõi trên iOS năm 2026: làm đúng quy định ATT của Apple

Tháng 10 21, 2026
Tin Le

Bài này không hướng dẫn viết code gọi hộp thoại ATT, phần đó Apple đã có tài liệu chính chủ. Tôi chỉ nói màn hình xin quyền nào được phép, màn hình nào bị Apple từ chối khi duyệt app, và cách viết lời giải thích để người dùng đồng ý mà không vi phạm.

Quý 1/2026, trung bình 38% người dùng iOS đồng ý cho theo dõi khi thấy hộp thoại, tăng từ 35% cùng kỳ 2025 (Adjust, 02/2026). Nghĩa là cứ 100 người thấy hộp thoại thì khoảng 62 người bấm từ chối. Nhiều hướng dẫn viết năm 2021, kể cả bài cũ trên blog này, khuyên những cách nay Apple cấm: chèn ảnh hộp thoại, treo thưởng, nhắc đi nhắc lại. Bài này thay cho các hướng dẫn đó.

ATT (App Tracking Transparency) là khung của Apple bắt buộc app xin phép người dùng trước khi theo dõi họ qua app và website của công ty khác. Từ iOS 14.5 (26/4/2021), người dùng không đồng ý thì mã quảng cáo IDFA của thiết bị trả về toàn số 0 và app không được theo dõi họ bằng bất kỳ cách nào khác.

ATT iOS: khi nào app phải hỏi quyền theo dõi

Theo dõi (tracking), theo định nghĩa của Apple, là liên kết dữ liệu thu từ app của bạn với dữ liệu từ app, website của công ty khác để nhắm quảng cáo hoặc đo lường quảng cáo. Chia sẻ dữ liệu người dùng cho công ty môi giới dữ liệu (data broker) cũng tính là theo dõi (Apple, User Privacy and Data Use).

Trong thực tế, bạn phải hỏi ATT khi app có một trong các việc sau:

  • Gửi danh sách email, IDFA hoặc ID khác cho mạng quảng cáo để retarget hoặc tìm người dùng tương tự.
  • Gắn SDK của bên thứ ba có kết hợp dữ liệu app của bạn với dữ liệu app khác để nhắm hoặc đo quảng cáo. Kể cả khi bạn không dùng SDK cho việc đó, bạn vẫn chịu trách nhiệm cho mọi đoạn code nằm trong app.
  • Dùng công cụ deep linking hoặc deferred deep linking của bên thứ ba có truyền định danh người dùng giữa app của các công ty khác nhau.
  • Theo dõi trong webview của app. Apple coi webview như tính năng gốc của app, trừ khi người dùng đang lướt web tự do.

Không cần hỏi ATT khi bạn dùng IDFV (mã định danh theo nhà phát triển) để phân tích giữa các app của chính công ty mình, hoặc chia sẻ dữ liệu chỉ để chống gian lận và bảo mật.

Hai việc tuyệt đối không làm khi người dùng chưa đồng ý: dùng email hoặc số điện thoại đã băm (hash) để thay IDFA, và lấy dấu vân tay thiết bị (fingerprinting) từ cấu hình máy, vị trí, kết nối mạng. App dùng SDK làm việc này có thể bị từ chối trên App Store.

Phép tính nhỏ: chiến dịch mang về 10,000 lượt cài với tỷ lệ đồng ý 38% thì chỉ 3,800 người có IDFA để đo theo từng thiết bị. 6,200 lượt còn lại đo qua AdAttributionKit hoặc SKAdNetwork, dữ liệu tổng hợp và trễ hơn. Tăng tỷ lệ đồng ý lên vài điểm phần trăm là có thêm vài trăm người đo được chính xác, ảnh hưởng thẳng tới các KPI app marketing bạn báo cáo hằng tuần.

Màn hình giải thích trước hộp thoại

Apple cho phép hiện một màn hình của riêng app trước hộp thoại hệ thống, miễn là bạn trung thực về cách dùng dữ liệu (App Review Guidelines 5.1.1(iv)). Màn hình này thường gọi là pre-prompt hay soft opt-in.

Nó giống người bán hàng hỏi khách có muốn nhận tin khuyến mãi không. Hỏi một lần, nói rõ để làm gì thì khách quyết định thoải mái. Đứng chắn cửa không cho khách đi cho tới khi gật đầu thì khách bực. Ở đây thì Apple từ chối app.

Quy định cho màn hình này nằm trong Human Interface Guidelines, mục Privacy:

  • Chỉ một nút. Bấm là mở hộp thoại hệ thống. Đặt tên “Tiếp tục” hoặc “Tiếp”, không dùng “Cho phép” vì người dùng chưa cho phép gì ở màn hình này.
  • Không có lối thoát. Không nút “Để sau”, “Đóng”, “Hủy”, không dấu X. Người dùng đã vào màn hình này thì phải thấy hộp thoại hệ thống.
  • Không mô phỏng hộp thoại. Không chèn ảnh chụp hộp thoại của Apple, không vẽ màn hình trông giống một lời xin quyền.
  • Không chỉ trỏ. Không mũi tên, vòng tròn hay chú thích hướng mắt người dùng tới nút đồng ý của hộp thoại.
  • Không treo thưởng. Không tặng xu, voucher, lượt chơi để đổi lấy sự đồng ý. Không khóa tính năng hay nội dung cho tới khi người dùng đồng ý (App Review Guidelines 5.1.2(i)).

Màn hình xin đồng ý theo luật địa phương, ví dụ bảng đồng ý cookie theo GDPR ở châu Âu, được phép hiện trước hoặc sau hộp thoại ATT. Nếu có, hãy nói rõ lựa chọn ở đó không thay lựa chọn ATT người dùng đã đưa ra.

Không nên làm trên màn hình giải thích

Ví dụ sai Vì sao bị từ chối
Hai nút “Cho phép” và “Để sau” Có nút không mở hộp thoại, nút “Cho phép” trùng nghĩa với nút của hệ thống
Ảnh chụp hộp thoại ATT kèm mũi tên chỉ vào nút đồng ý Hiện ảnh hộp thoại và chú thích hướng người dùng
“Cho phép theo dõi để nhận 50 xu” Treo thưởng cho việc đồng ý
Màn hình rung, đổi màu, hiện lại mỗi lần người dùng từ chối Thao túng và ép người dùng đồng ý
Chặn vào app cho tới khi đồng ý Khóa tính năng sau sự đồng ý

Viết lời giải thích trong hộp thoại

Lời giải thích (purpose string) là câu bạn viết, hệ thống hiện ngay dưới tên app trong hộp thoại ATT. Câu này khai trong khóa NSUserTrackingUsageDescription. Đây là khóa bắt buộc: thiếu khóa mà app gọi ATT thì app bị crash.

Apple yêu cầu câu ngắn, đủ ý, cụ thể, dùng câu chủ động, có dấu chấm cuối câu. Hệ thống đã hiện tên app nên không cần nhắc lại tên app.

Công thức tôi thường dùng:

[Dữ liệu dùng để làm gì] + [người dùng nhận được gì]

Ví dụ cho một app đặt đồ ăn: “Dữ liệu này giúp hiển thị quảng cáo món ăn và ưu đãi gần với sở thích của bạn hơn.”

Không nên:

  • “Cho phép để có trải nghiệm tốt hơn.” Câu bị động, lý do mơ hồ. Apple dùng đúng kiểu câu này làm ví dụ sai.
  • “Bật theo dõi.” Câu mệnh lệnh, không có lý do.
  • “Đồng ý để nhận voucher 20k.” Treo thưởng, vi phạm quy định ở phần trên.

Hỏi vào lúc nào

Apple khuyên không xin quyền ngay khi mở app, trừ khi app cần dữ liệu đó mới chạy được. Nhưng nếu muốn theo dõi ngay từ lần mở đầu, bạn phải hiện hộp thoại hệ thống trước khi thu bất kỳ dữ liệu theo dõi nào. Nghĩa là SDK cần IDFA chỉ được khởi tạo sau khi có kết quả ATT.

Hai lưu ý kỹ thuật từ tài liệu Apple. Hộp thoại chỉ hiện khi app đang ở trạng thái hoạt động (active), gọi lúc app chưa hiện giao diện thì không có gì hiện ra. Nếu hệ thống đóng hộp thoại mà người dùng chưa chọn, trạng thái vẫn là chưa quyết định (notDetermined) và app cần hỏi lại.

Ví dụ tôi làm luồng ATT cho một app đặt đồ ăn đang chạy quảng cáo cài đặt:

  1. Kiểm kê SDK. Liệt kê mọi SDK trong app: MMP, Meta SDK, Google, SDK quảng cáo. Đánh dấu SDK nào đọc IDFA hoặc gửi dữ liệu cho bên thứ ba để đo quảng cáo. Các SDK này phải chờ kết quả ATT.
  2. Chọn thời điểm. Không hỏi ở màn hình đầu tiên. Người dùng đi qua 2 màn hình chào, chọn khu vực giao hàng, rồi mới thấy màn hình giải thích. Lúc đó họ đã hiểu app làm gì. Phần lớn SDK của MMP có tùy chọn chờ kết quả ATT vài giây trước khi gửi sự kiện cài đặt; hỏi đội kỹ thuật của MMP để đặt thời gian chờ khớp với luồng này.
  3. Dựng màn hình giải thích. Tiêu đề “Quảng cáo phù hợp hơn với bạn”. Hai câu: app dùng dữ liệu để hiện ưu đãi gần sở thích và đo quảng cáo nào đưa người dùng đến app; mọi tính năng vẫn dùng bình thường dù bạn chọn thế nào. Một nút “Tiếp tục”.
  4. Viết lời giải thích theo công thức ở phần trên.
  5. Xử lý khi người dùng từ chối. App chạy bình thường, không hiện lại màn hình giải thích. Trong phần cài đặt của app có mục “Quyền riêng tư” với lối tắt mở Cài đặt của iPhone. Apple cho phép lối tắt này khi người dùng đã tắt theo dõi riêng cho app của bạn.
  6. Đo kết quả. Tỷ lệ đồng ý (opt-in rate) = số người đồng ý / số người thấy hộp thoại. 2,000 người thấy hộp thoại, 760 người đồng ý thì tỷ lệ là 38%, đúng mức trung bình Adjust ghi nhận. Thấp hơn nhiều thì thử đổi thời điểm hỏi hoặc lời giải thích, mỗi lần đổi một thứ.

Như vậy luồng này không có nút thoát, không thưởng, không ảnh hộp thoại, và người từ chối vẫn dùng đủ tính năng.

Người dùng ở châu Âu: hỏi lại sau 1 năm

Với người dùng ở Liên minh châu Âu (EU), app được hỏi lại bằng hộp thoại ATT sau một năm kể từ lựa chọn trước, dù lần trước người dùng đồng ý hay từ chối. Không được hỏi lại nếu người dùng đã tắt mục “Allow Apps to Request to Track” trong Cài đặt (ở EU đổi tên thành “Allow Apps to Request to Link Your Activity Across Companies”).

Từ iOS 27.2, Apple có thêm phiên bản hộp thoại ATT thay thế cho EU, đổi cách trình bày và câu chữ, có thể thêm nút chữ “Additional Information” để giải thích thêm. Ở Đức, Pháp, Ý, Ba Lan và Romania, app phát hành tại đó chỉ được dùng phiên bản thay thế này. Lời giải thích có thể viết dạng markdown trong khóa NSUserTrackingMarkdownUsageDescription.

Ngoài EU, hộp thoại thực tế chỉ hiện một lần cho mỗi app. Người dùng muốn đổi thì vào Cài đặt > Quyền riêng tư & Bảo mật > Theo dõi. Do đó lần hỏi duy nhất này cần đúng thời điểm và đúng lời.

Checklist ATT iOS trước khi nộp app

  • Có khóa NSUserTrackingUsageDescription, câu chủ động, nói rõ dữ liệu dùng để làm gì.
  • Màn hình giải thích (nếu có) chỉ một nút “Tiếp tục”, không dấu X, không “Để sau”.
  • Không ảnh hộp thoại, không mũi tên, không thưởng, không khóa tính năng.
  • Người từ chối vẫn dùng được mọi tính năng.
  • SDK cần IDFA khởi tạo sau khi có kết quả ATT; đã kiểm kê cả SDK đăng nhập, deep linking.
  • Không dùng email băm, số điện thoại băm hay fingerprinting thay IDFA khi chưa có đồng ý.
  • Webview trong app áp dụng cùng quy định với tính năng gốc.
  • Màn hình đồng ý theo luật địa phương (nếu có) không làm người dùng hiểu nhầm là thay lựa chọn ATT.
  • Có lối tắt mở Cài đặt trong mục quyền riêng tư của app.
  • Phát hành ở EU: có logic hỏi lại sau 365 ngày và đã thử hộp thoại thay thế trên iOS 27.2.

Checklist này nên chạy cùng danh sách kiểm tra khi ra mắt app trên App Store. App bị từ chối vì màn hình ATT thì lịch ra mắt và lịch chạy quảng cáo đều lùi theo.

Với 62% người dùng từ chối, bạn vẫn cần cách đánh giá quảng cáo không dựa vào IDFA. Kiểm thử tăng tiến (incrementality testing) trả lời câu hỏi quảng cáo có thật sự mang thêm người dùng hay không, kể cả khi dữ liệu từng thiết bị bị thiếu. Trên Meta, cách hệ thống phân phối quảng cáo khi tín hiệu ít đi được nói trong bài quảng cáo Meta 2026.

Adtek rà luồng xin quyền ATT iOS, kiểm kê SDK và thiết lập đo lường với MMP cho app trước khi chạy quảng cáo cài đặt. Nếu app của bạn đang dùng màn hình xin quyền theo hướng dẫn cũ, hãy trao đổi với đội ngũ Adtek trước lần nộp bản cập nhật tiếp theo.

Nguồn tham khảo

Để lại bình luận

Hiện tại chưa có đánh giá nào

Tin mới nhất