Computer >> Máy Tính >  >> Điện thoại thông minh >> iPhone

Cách lấy mã nhận dạng cho nhà quảng cáo (IDFA) trong iOS14

Nếu tiêu đề của bài viết này có ý nghĩa với bạn, thì có lẽ bạn đã biết về trận động đất do iOS14 gây ra.

Với việc phát hành iOS14, đã có những thay đổi lớn trong cách các ứng dụng có thể thu thập thông tin về người dùng. Một trong số đó đề cập đến Mã định danh dành cho nhà quảng cáo (hoặc IDFA) và cách các ứng dụng có thể truy cập mã đó.

Nhưng đối với những người chưa biết, trước tiên hãy giải thích IDFA là gì và tại sao nó lại quan trọng.

IDFA là gì?

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

Các công ty có thể làm điều này với cái được gọi là IDFA (Mã định danh cho nhà quảng cáo). Đây là một chuỗi UUID cho phép các nhà quảng cáo đối sánh người dùng với hành vi của họ.

Đây là ví dụ về chuỗi UUID:123e4567-e89b-12d3-a456–426614174000.

Vậy, những thay đổi mà chúng ta đã nói trước đó là gì?

Nói tóm lại, bây giờ các ứng dụng sẽ được yêu cầu hiển thị hộp thoại cho người dùng, hỏi họ có muốn cho phép ứng dụng theo dõi họ hay không.

Cách lấy mã nhận dạng cho nhà quảng cáo (IDFA) trong iOS14
Hộp thoại ủy quyền theo dõi

Trông khá đáng ngại, phải không?

Điều này trái ngược với cách mọi thứ hoạt động trước iOS14, nơi bạn chỉ phải kiểm tra xem thiết bị đã bật hoặc tắt tính năng theo dõi quảng cáo hạn chế hay chưa.

Phiên bản hệ điều hành mới nhất của Apple (iOS14) đã có sẵn (kể từ ngày 16 tháng 9). Các nhà phát triển sử dụng IDFA phải thực hiện các thay đổi trong ứng dụng của họ để tương thích với iOS14.

Vào ngày 3 tháng 9, Apple đã thực hiện một bản cập nhật và đẩy thời hạn hoàn thành các bản cập nhật này lên đầu năm sau:

“Để các nhà phát triển có thời gian thực hiện những thay đổi cần thiết, các ứng dụng sẽ phải xin phép theo dõi người dùng bắt đầu từ đầu năm tới”

Giờ chúng ta đã có thời gian để lấy lại bình tĩnh và hít thở trở lại, hãy bắt đầu chuẩn bị cho những gì sẽ trở thành bình thường mới vào năm 2021.

Trong bài viết này, chúng tôi sẽ trình bày một số thông tin cơ bản về IDFA và xem cách chúng tôi có thể nhận được giá trị của nó từ iOS14 trở đi.

IDFA được các nhà quảng cáo sử dụng như thế nào?

Hãy thực hiện một tình huống (trước COIVD-19) trong đó bạn đang duyệt web trên iPhone của mình và đang tìm kiếm một khách sạn cho kỳ nghỉ tiếp theo của mình.

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

Từ đó, sẽ không lâu nữa bạn sẽ được hiển thị rất nhiều quảng cáo về phòng khách sạn.

Công nghệ đơn giản nhưng sâu sắc này đã đi vào cuộc sống của chúng ta vào năm 2012 với iOS6. Kể từ đó, rất nhiều điều đã thay đổi và iOS14 đang làm khuynh đảo ngành công nghiệp một lần nữa.

Lưu ý: Để sử dụng các API mới này, bạn phải nâng cấp / tải xuống XCode 12 .

Theo dõi Quảng cáo và Lấy IDFA

Trước iOS14, việc nhận IDFA khá đơn giản.

Bạn phải kiểm tra xem Theo dõi quảng cáo đã được bật hay chưa, bằng cách thực hiện điều này:

[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]

Và nếu nó bị vô hiệu hóa, điều đó có nghĩa là bạn có thể lấy IDFA thông qua lớp ASIdentifierManager, như sau:

[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

Đủ đơn giản, phải không?

☝️ Bắt đầu với iOS10, nếu người dùng tắt tính năng theo dõi quảng cáo, phương pháp trên sẽ trả về chuỗi UUID chứa đầy các số không.

Một trong những thay đổi trong iOS14 là việc ngừng sử dụng phương pháp kiểm tra xem theo dõi nhà quảng cáo có được bật hay không. Vậy làm cách nào để các ứng dụng có thể nhận được IDFA mong muốn từ iOS14 trở đi?

Họ sẽ phải sử dụng một API mới để hiển thị hộp thoại cho người dùng. Một vài lời khôn ngoan về hộp thoại này:

  • Nó chỉ có thể được hiển thị cho người dùng một lần
  • Điều duy nhất có thể thay đổi trong giao diện người dùng của hộp thoại là hai dòng phía trên tùy chọn Cho phép theo dõi ( “Bạn có muốn được theo dõi không?” )

Điều này có nghĩa là các nhà phát triển sẽ cần phải suy nghĩ rất lâu về cách thức và thời điểm họ sẽ trình bày thông điệp cho người dùng.

Trạng thái Ủy quyền

Với iOS14, một khuôn khổ mới đã được tạo ra có tên là Tính minh bạch theo dõi ứng dụng. Khung này chứa một lớp được gọi là ATTrackingManager, lớp này cung cấp API để:

  1. Trình bày hộp thoại cho người dùng yêu cầu quyền theo dõi họ
  2. Truy vấn trạng thái ủy quyền (bất kể hiển thị hay không hiển thị hộp thoại)

Trước tiên, chúng ta sẽ tìm hiểu cách nhận trạng thái ủy quyền. Để làm như vậy, bạn cần gọi trackingAuthorizationStatus phương pháp.

ATTrackingManagerAuthorizationStatus status = [ATTrackingManager trackingAuthorizationStatus];

Nó sẽ trả về một NSUInteger với một trong các giá trị sau:

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

Ba kết quả đầu tiên khá dễ hiểu, vì vậy chúng tôi sẽ tập trung một phút vào kết quả cuối cùng.

Bạn có thể nhận được trạng thái ủy quyền bị hạn chế khi màn hình bật / tắt theo dõi quảng cáo bị khóa và tùy chọn này được đặt thành bật.

Apple đã thừa nhận điều này trong các thiết bị được xác định là dành cho trẻ em (ví dụ).

Yêu cầu quyền theo dõi

Trước khi xem xét mã cần thiết để trình bày hộp thoại, trước tiên bạn phải bao gồm NSUserTrackingUsageDescription bên trong tệp info.plist của bạn.

Những gì bạn thêm làm giá trị cho khóa này sẽ xuất hiện như hai dòng được đề cập trước đó, trong hộp thoại.

Cách lấy mã nhận dạng cho nhà quảng cáo (IDFA) trong iOS14
NSUserTrackingUsageDescription trong tệp info.plist

Để trình bày hộp thoại, chúng ta cần 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 ảnh đầu tiên của bài viết này (nơi bạn nhìn thấy hộp thoại), bạn có thể thấy rằng các dòng chúng tôi đã viết trong tệp info.plist hiển thị dưới dạng hai dòng trong hộp thoại.

Kết thúc

Tóm lại, điều quan trọng cần nhớ là những thay đổi này, tuy khó khăn nhưng không xảy ra ngay lập tức.

Bạn cũng nên đảm bảo làm theo tất cả các bước được nêu chi tiết trong bài viết này để không gặp phải sự cố / lỗi trong ứng dụng của mình.