IDFA: nó là gì, cách hoạt động và yêu cầu quyền trong iOS

Tác giả: IT Sectr Đã đăng: 2026-05-22 Thời gian đọc: 8 phút

IDFA (Identifier for Advertisers) là mã định danh thiết bị duy nhất trong iOS được thiết kế cho mục đích quảng cáo và ghi nhận lượt cài đặt. Với sự ra đời của App Tracking Transparency (ATT) trong iOS 14.5, việc lấy IDFA yêu cầu sự đồng ý rõ ràng của người dùng thông qua hộp thoại hệ thống. Theo Tài liệu App Tracking Transparency của Apple, 2025, nếu không có quyền ATT, ứng dụng sẽ nhận được mã định danh rỗng. App Tracking Transparency đã thay đổi căn bản hệ sinh thái quảng cáo di động, làm giảm khả năng truy cập IDFA tới 80% sau khi triển khai.

Những điểm chính

  • IDFA — mã định danh quảng cáo iOS để theo dõi người dùng và ghi nhận lượt cài đặt ứng dụng.
  • App Tracking Transparency — framework của Apple yêu cầu sự đồng ý rõ ràng của người dùng trước khi lấy IDFA.
  • ATTrackingManager — lớp chính của iOS để yêu cầu quyền theo dõi thông qua requestTrackingAuthorization.
  • SKAdNetwork — cơ chế ghi nhận thay thế của Apple không yêu cầu IDFA hay sự đồng ý của người dùng.
  • Privacy Manifest — tệp bắt buộc iOS 18+ khai báo lý do sử dụng mã định danh quảng cáo.

IDFA là gì?

IDFA (Identifier for Advertisers) là mã định danh chữ-số duy nhất được gán cho mỗi thiết bị Apple cho mục đích quảng cáo. Không giống như IDFV (Identifier for Vendor), IDFA chung cho tất cả ứng dụng trên thiết bị và người dùng có thể đặt lại bất kỳ lúc nào qua Cài đặt — Quyền riêng tư — Quảng cáo — Đặt lại mã định danh.

Mục đích chính của IDFA là ghi nhận lượt cài đặt và theo dõi hiệu quả của các chiến dịch quảng cáo trên thiết bị Apple. Các mạng quảng cáo sử dụng IDFA để liên kết nhấp chuột vào quảng cáo với lượt cài đặt ứng dụng, xây dựng hồ sơ người dùng và hiển thị quảng cáo được cá nhân hóa. Kể từ khi triển khai ATT, tỷ lệ người dùng cấp quyền truy cập IDFA trung bình là 20-35% theo các nền tảng phân tích khác nhau.

Theo Flurry Analytics (2025), sau iOS 18, tỷ lệ chấp nhận ATT đạt 92% thiết bị đang hoạt động, nhưng tỷ lệ người dùng đồng ý theo dõi giảm xuống còn 22%. Điều này đã dẫn đến sự thay đổi cơ bản trong ngành quảng cáo di động, buộc các mạng quảng cáo phải tìm kiếm phương pháp ghi nhận thay thế.

Một đặc điểm chính của IDFA là nó không chứa dữ liệu cá nhân của người dùng và không liên kết với Apple ID. Tuy nhiên, Apple phân loại nó là mã định danh thuộc quy định của App Tracking Transparency.

Cách hoạt động của IDFA và App Tracking Transparency

App Tracking Transparency (ATT) là framework của Apple được giới thiệu trong iOS 14.5 yêu cầu sự đồng ý rõ ràng của người dùng trước khi đọc IDFA. Nếu không có sự đồng ý, phương thức asIdentifierManager trả về mã định danh rỗng (00000000-0000-0000-0000-000000000000) và ứng dụng không thể theo dõi người dùng.

Framework App Tracking Transparency

ATT được triển khai thông qua lớp ATTrackingManager với một phương thức công khai duy nhất requestTrackingAuthorization(completionHandler:). Khi phương thức này được gọi, hệ thống hiển thị hộp thoại gốc với văn bản do nhà phát triển đặt thông qua khóa NSUserTrackingUsageDescription trong Info.plist. Người dùng có thể chọn một trong ba tùy chọn: “Cho phép theo dõi”, “Yêu cầu ứng dụng không theo dõi” hoặc “Từ chối”.

Trạng thái ủy quyền được theo dõi qua ATTrackingManager.trackingAuthorizationStatus, có thể nhận bốn giá trị: notDetermined, restricted, denied hoặc authorized. Trước khi yêu cầu ATT, nên kiểm tra trạng thái hiện tại và không gọi hộp thoại nếu trạng thái đã được xác định — bắt đầu từ iOS 17, gọi lại requestTrackingAuthorization với trạng thái denied sẽ không hiển thị hộp thoại và trả về lỗi.

Khi nào nên yêu cầu quyền

Thời điểm yêu cầu ATT ảnh hưởng nghiêm trọng đến tỷ lệ đồng ý. Nghiên cứu từ Singular (2025) cho thấy yêu cầu ATT trên màn hình giới thiệu (khi khởi chạy lần đầu) đạt tỷ lệ chuyển đổi 35-45%, trong khi yêu cầu sau khi hoàn thành một hành động (ví dụ: sau khi đăng ký) làm tăng tỷ lệ chuyển đổi lên 55-65%. Nên hiển thị màn hình cấp quyền trước với thiết kế tùy chỉnh giải thích giá trị của việc theo dõi cho người dùng trước hộp thoại ATT hệ thống.

Quan trọng: ứng dụng chỉ có thể gọi requestTrackingAuthorization một lần trước khi nhận được phản hồi. Sau khi người dùng chọn “Từ chối” hoặc “Yêu cầu ứng dụng không theo dõi”, hộp thoại sẽ không xuất hiện lại trên thiết bị. Nhà phát triển phải triển khai cơ chế dự phòng để làm việc không cần IDFA nhằm đảm bảo ứng dụng tiếp tục hoạt động chính xác trong điều kiện theo dõi bị hạn chế.

Yêu cầu iOS 18+ đối với theo dõi

Với việc phát hành iOS 18, Apple đã thắt chặt yêu cầu đối với các ứng dụng sử dụng mã định danh quảng cáo. Tất cả ứng dụng yêu cầu IDFA hoặc truyền dữ liệu thiết bị cho mục đích quảng cáo phải tuân thủ các quy tắc mới của App Store. Việc không tuân thủ dẫn đến từ chối bản dựng trong quá trình xem xét App Store Connect.

Privacy Manifest và theo dõi

Bắt đầu từ iOS 18, mỗi ứng dụng phải bao gồm Privacy Manifest (tệp privacy.xcprivacy) khai báo tất cả API được sử dụng cho theo dõi. Đối với IDFA, các khóa NSPrivacyTracking và NSPrivacyTrackingDomains được sử dụng để chỉ định các miền mạng quảng cáo mà mã định danh được truyền đến. Nếu không có tệp kê khai chính xác, ứng dụng sẽ bị từ chối trong quá trình kiểm duyệt App Store Connect.

Apple cũng đưa ra yêu cầu chỉ rõ lý do sử dụng mã định danh quảng cáo trong mô tả ứng dụng. Nếu ứng dụng sử dụng IDFA để ghi nhận lượt cài đặt, nó phải sử dụng SKAdNetwork làm phương pháp chính và chỉ sử dụng IDFA như tín hiệu bổ sung để cải thiện độ chính xác ghi nhận.

Các thay thế cho IDFA

Với các hạn chế ngày càng tăng đối với IDFA, ngành công nghiệp đã phát triển một số phương pháp thay thế. SKAdNetwork (StoreKit Ad Network) là cơ chế ghi nhận chính thức của Apple hoạt động không cần IDFA và không yêu cầu sự đồng ý của người dùng. SKAdNetwork sử dụng các yêu cầu postback đã ký giữa mạng quảng cáo và App Store, đảm bảo quyền riêng tư của người dùng.

Các thay thế khác bao gồm: ghi nhận xác suất dựa trên địa chỉ IP, phiên bản HĐH và các tín hiệu thiết bị khác; API tổng hợp riêng tư như Private Click Measurement (PCM) từ WebKit; và các giải pháp độc quyền của nền tảng quảng cáo sử dụng học máy để dự đoán chuyển đổi. Đối với thị trường Trung Quốc, CAID (Cellular Advertising ID) dựa trên dữ liệu mạng của nhà mạng di động cũng được sử dụng.

Ví dụ mã để yêu cầu IDFA

Triển khai yêu cầu IDFA đòi hỏi tích hợp App Tracking Transparency và xử lý chính xác tất cả trạng thái ủy quyền có thể. Dưới đây là ví dụ hoàn chỉnh cho Swift với màn hình cấp quyền trước.

Yêu cầu ATT trong Swift

Ví dụ minh họa quy trình làm việc đầy đủ với IDFA: kiểm tra trạng thái, hiển thị màn hình cấp quyền trước, gọi hộp thoại ATT hệ thống và lấy mã định danh sau khi được ủy quyền.

swift
import AppTrackingTransparency
import AdSupport

func requestIDFAAccess() {
    let status = ATTrackingManager.trackingAuthorizationStatus

    switch status {
    case .notDetermined:
        // Hiển thị màn hình cấp quyền trước với giải thích
        showPrePermissionScreen { accepted in
            guard accepted else { return }
            ATTrackingManager.requestTrackingAuthorization { newStatus in
                handleATTStatus(newStatus)
            }
        }
    case .authorized:
        // Người dùng đã đồng ý — đang lấy IDFA
        let idfa = ASIdentifierManager.shared().advertisingIdentifier
        print("IDFA: \(idfa.uuidString)")
    case .denied, .restricted:
        // Chuyển hướng người dùng đến cài đặt
        redirectToSettings()
    @unknown default:
        break
    }
}

private func handleATTStatus(status: ATTrackingManager.AuthorizationStatus) {
    if status == .authorized {
        let idfa = ASIdentifierManager.shared().advertisingIdentifier
        // Truyền IDFA đến mạng quảng cáo
        sendIDFAToAdNetwork(idfa.uuidString)
    }
}

Chiến lược làm việc không cần IDFA

Vì phần lớn người dùng từ chối yêu cầu ATT, các nhà phát triển cần một bộ chiến lược để làm việc hiệu quả mà không có mã định danh. Cách tiếp cận chính là kết hợp SKAdNetwork và các phương pháp ghi nhận xác suất.

SKAdNetwork và ghi nhận

SKAdNetwork (SKAN) là framework của Apple để ghi nhận lượt cài đặt không yêu cầu IDFA và không hiển thị hộp thoại đồng ý. Mạng quảng cáo đăng ký ID SKAdNetwork của mình trong Info.plist của ứng dụng và sau khi cài đặt, App Store gửi một postback đã ký với thông tin chiến dịch. SKAN 4.0, được giới thiệu trong iOS 17, hỗ trợ nhiều chuyển đổi, mã định danh nguồn và giá trị chuyển đổi dạng thô.

Giới hạn của SKAN: độ trễ postback từ 24 đến 48 giờ, không có mã định danh người dùng và giá trị chuyển đổi giới hạn (tối đa 64). Mặc dù vậy, SKAN đã trở thành tiêu chuẩn thực tế cho ghi nhận iOS sau khi triển khai ATT và tất cả các mạng quảng cáo lớn phải hỗ trợ nó để hoạt động trên thiết bị Apple.

Mã định danh dự đoán

Các mạng quảng cáo như MetaGoogle đã phát triển giải pháp riêng dựa trên học máy để dự đoán chuyển đổi mà không cần mã định danh người dùng. Meta Aggregated Events Measurement (AEM) sử dụng dữ liệu tổng hợp để ghi nhận, trong khi Google Attribution mô hình hóa chuyển đổi dựa trên dữ liệu lịch sử.

Đối với nhà phát triển, điều quan trọng là triển khai đồng thời nhiều phương pháp ghi nhận: SKAdNetwork làm phương pháp chính, ghi nhận phía máy chủ qua mạng quảng cáo và các công cụ phân tích độc quyền với mô hình hóa chuyển đổi. Kết hợp các phương pháp cho phép khôi phục tới 70-80% độ chính xác ghi nhận so với thời đại IDFA. Nên thử nghiệm các kết hợp phương pháp khác nhau trong giai đoạn thử nghiệm beta để chọn bộ tối ưu cho ứng dụng và đối tượng mục tiêu cụ thể.

Câu hỏi thường gặp

IDFA là gì một cách đơn giản?

IDFA là mã duy nhất của thiết bị iPhone hoặc iPad mà các mạng quảng cáo sử dụng để hiển thị quảng cáo được cá nhân hóa và đo lường hiệu quả chiến dịch. Từ iOS 14.5, ứng dụng phải yêu cầu quyền của bạn trước khi truy cập IDFA thông qua hộp thoại hệ thống App Tracking Transparency.

Sự khác biệt giữa IDFA và IDFV là gì?

IDFV (Identifier for Vendor) là mã định danh duy nhất cho tất cả ứng dụng của cùng một nhà phát triển trên thiết bị. Không giống như IDFA, IDFV không yêu cầu sự đồng ý ATT và luôn có sẵn. IDFA chung cho tất cả ứng dụng, trong khi IDFV chỉ dành riêng cho ứng dụng của một nhà cung cấp (theo bundle ID).

Làm thế nào để lấy IDFA mà không cần sự đồng ý của người dùng?

Không thể lấy IDFA mà không có sự đồng ý của người dùng. Từ iOS 14.5, ASIdentifierManager.advertisingIdentifier trả về mã định danh rỗng (00000000-0000-0000-0000-000000000000) nếu người dùng chưa đồng ý qua ATT. Cách hợp pháp duy nhất là gọi ATTrackingManager.requestTrackingAuthorization và nhận trạng thái authorized.

NSUserTrackingUsageDescription là gì?

NSUserTrackingUsageDescription là khóa trong Info.plist của ứng dụng chứa văn bản hiển thị trong hộp thoại ATT hệ thống. Văn bản nên giải thích cho người dùng tại sao ứng dụng cần theo dõi. Ví dụ: “IDFA của bạn được sử dụng để hiển thị quảng cáo được cá nhân hóa và đo lường hiệu quả chiến dịch.”

IDFA có hoạt động trên Android không?

Không, IDFA là mã định danh độc quyền của hệ sinh thái Apple. Android sử dụng GAID (Google Advertising ID) hoặc AAID (Android Advertising ID). Cả hai đều thực hiện chức năng tương tự nhưng được điều chỉnh bởi các quy tắc khác nhau — trên Android, người dùng có thể đặt lại mã định danh hoặc tắt cá nhân hóa quảng cáo trong cài đặt Google.

Tóm tắt

  • IDFA — mã định danh quảng cáo thiết bị Apple được sử dụng cho ghi nhận và quảng cáo được cá nhân hóa.
  • App Tracking Transparency — framework iOS 14.5+ yêu cầu sự đồng ý rõ ràng của người dùng trước khi lấy IDFA.
  • ATTrackingManager — lớp chính để yêu cầu quyền theo dõi trong iOS.
  • SKAdNetwork — cơ chế ghi nhận thay thế của Apple không yêu cầu sự đồng ý của người dùng hay IDFA.
  • Privacy Manifest — tệp bắt buộc iOS 18+ khai báo lý do sử dụng mã định danh quảng cáo.
  • Màn hình cấp quyền trước — hộp thoại tùy chỉnh với giải thích trước ATT hệ thống, tăng chuyển đổi lên 55-65%.
  • Ghi nhận đa phương pháp — kết hợp SKAdNetwork, phương pháp xác suất và học máy để khôi phục độ chính xác đo lường chiến dịch.

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm