Computer >> Hướng Dẫn Máy Tính >  >> Điện Thoại Thông Minh >> iPhone

Truy Cập IDFA Trên iOS 14: Hướng Dẫn Hoàn Chỉnh Cho Nhà Quảng Cáo

Nếu tiêu đề bài này có ý nghĩa với bạn, bạn có thể biết đến "động đất" do iOS 14 gây ra.

Với việc phát hành iOS 14, có những thay đổi lớn trong cách app thu thập thông tin user. Một trong số đó liên quan đến Identifier For Advertisers (hay IDFA) và cách app truy cập nó.

Nhưng cho những ai không biết, hãy giải thích trước IDFA là gì và tại sao quan trọng.

IDFA Là Gì?

Mỗi chủ sở hữu thiết bị iOS có thể quyết định có muốn bị theo dõi bởi công ty quảng cáo hay không. Điều này cho phép các công ty cung cấp nội dung phù hợp với họ (dựa trên thói quen duyệt web).

Các công ty làm được điều này với IDFA (Identifier For Advertisers). Đây là chuỗi UUID cho phép nhà quảng cáo match user với hành vi của họ.

Ví dụ chuỗi UUID: 123e4567-e89b-12d3-a456–426614174000.

Vậy Những Thay Đổi Trước Đó Là Gì?

Tóm lại, app giờ sẽ bắt buộc phải hiển thị dialog hỏi user có cho phép app theo dõi họ hay không.

Truy Cập IDFA Trên iOS 14: Hướng Dẫn Hoàn Chỉnh Cho Nhà Quảng Cáo

Dialog Tracking Authorization

Trông khá đáng sợ, phải không?

Đây là sự đối lập với cách hoạt động trước iOS 14, nơi bạn chỉ cần check xem device có bật limited advertising tracking hay không.

Phiên bản mới nhất của OS Apple (iOS 14) đã có sẵn (từ 16/9). Developer dùng IDFA phải thay đổi app để tương thích iOS 14.

Ngày 3/9, Apple cập nhật và đẩy deadline hoàn thành cập nhật này sang đầu năm sau:

"Để cho developer thời gian làm thay đổi cần thiết, app sẽ bắt buộc phải xin phép theo dõi user từ đầu năm tới"

Bây giờ có thời gian để lấy lại bình tĩnh và thở, hãy chuẩn bị cho "bình thường mới" năm 2021.

Trong bài này, chúng ta sẽ trình bày background về IDFA và xem cách lấy giá trị nó từ iOS 14 trở đi.

IDFA Được Nhà Quảng Cáo Dùng Như Thế Nào?

Hãy lấy kịch bản (trước COVID-19) bạn lướt web trên iPhone tìm khách sạn cho kỳ nghỉ sắp tới.

Mỗi quảng cáo bạn thấy sẽ gửi pixel kèm IDFA của bạn. Nhà quảng cáo thấy bạn xem nhiều quảng cáo khách sạn bằng cách match IDFA và kết luận bạn muốn đặt phòng.

Từ đó, không lâu bạn sẽ thấy nhiều quảng cáo phòng khách sạn.

Công nghệ đơn giản mà sâu sắc này xuất hiện từ 2012 với iOS 6. Kể từ đó nhiều thứ thay đổi, và iOS 14 lại lật ngửa ngành công nghiệp.

✋ Lưu ý: Để dùng API mới này bạn phải upgrade/tải Xcode 12.

Advertising Tracking Và Lấy IDFA

Trước iOS 14, lấy IDFA khá đơn giản.

Bạn phải check Advertising Tracking enabled hay không, bằng cách:

[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]

Nếu disabled, bạn có thể lấy IDFA qua class ASIdentifierManager, như sau:

[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

Đơn giản phải không?

☝️ Từ iOS 10, nếu user tắt advertising tracking, method trên trả về chuỗi UUID toàn số 0.

Một thay đổi trong iOS 14 là deprecation method check advertiser tracking enabled hay không. Vậy app lấy IDFA đắc lực từ iOS 14 như thế nào?

Chúng phải dùng API mới hiển thị dialog hỏi user. Vài lời khuyên về dialog này:

  • Chỉ có thể hiển thị cho user một lần
  • Chỉ có thể thay đổi hai dòng trên option Allow Tracking ("Bạn có muốn bị theo dõi?")

Điều này nghĩa là developer cần suy nghĩ kỹ cách và khi nào hiển thị thông điệp cho user.

Authorization Status (Trạng Thái Ủy Quyền)

Với iOS 14, framework mới App Tracking Transparency được tạo. Framework chứa class ATTrackingManager, cung cấp API để:

  1. Hiển thị dialog xin phép theo dõi user
  2. Query authorization status (bất kể có hiển thị dialog hay không)

Trước tiên học cách lấy authorization status. Gọi method trackingAuthorizationStatus .

ATTrackingManagerAuthorizationStatus status = [ATTrackingManager trackingAuthorizationStatus];

Sẽ trả về NSUInteger với một trong các giá trị:

  • ATTrackingManagerAuthorizationStatusNotDetermined = 0
  • ATTrackingManagerAuthorizationStatusRestricted = 1
  • ATTrackingManagerAuthorizationStatusAuthorized = 3
  • ATTrackingManagerAuthorizationStatusDenied = 2

Ba kết quả đầu tự giải thích, tập trung vào cái cuối.

Bạn có thể nhận authorization status restricted khi màn hình bật/tắt advertising tracking bị khóa và option này set enabled.

Apple xác nhận điều này trong thiết bị được xác định thuộc trẻ em (ví dụ).

Xin Phép Theo Dõi

Trước khi xem code hiển thị dialog, trước tiên phải include key NSUserTrackingUsageDescription vào file info.plist.

Giá trị bạn thêm cho key này sẽ hiển thị làm hai dòng nói trên, trong dialog.

Truy Cập IDFA Trên iOS 14: Hướng Dẫn Hoàn Chỉnh Cho Nhà Quảng Cáo

NSUserTrackingUsageDescription trong file info.plist

Để hiển thị dialog, gọi requestTrackingAuthorizationWithCompletionHandler:

[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { if (status == ATTrackingManagerAuthorizationStatusDenied) { //Logic when authorization status is denied } else if (status == ATTrackingManagerAuthorizationStatusAuthorized) { //Logic when authorization status is authorized } else if (status == ATTrackingManagerAuthorizationStatusNotDetermined) { //Logic when authorization status is unknown } else if (status == ATTrackingManagerAuthorizationStatusRestricted) { //Logic when authorization status is restricted } }]; 

Trong hình đầu bài (nơi thấy dialog) bạn thấy dòng viết trong info.plist hiển thị làm hai dòng trong dialog.

Kết Luận

Tóm lại, quan trọng nhớ rằng những thay đổi này, dù đáng sợ, không xảy ra ngay lập tức.

Bạn cũng nên chắc chắn làm theo tất cả bước chi tiết trong bài để tránh crash/lỗi trong app.