Как найти apple idfa

Русские Блоги

iOS получить UUID устройства и IDFA

1.1 :UDID

Введение. Полное название UDID: Unique Device Identifier , Как следует из названия, это уникальный идентификационный код устройства Apple IOS, который состоит из 40 символов букв и цифр. Он часто используется во многих приложениях, которым необходимо ограничить одно устройство одной учетной записью. UDID устройства можно получить в iOS5, а в iOS7 он полностью отключен. Если приложение, используемое до iOS7, запускается на iOS7, оно не вернет UDID устройства, а вернет строку символов, FFFFFFFF Начать, следовать identifierForVendor Шестнадцатеричное значение.

Получать: [[UIDevice currentDevice] uniqueIdentifier]

1.2 IDFV

Введение: Новое в системе iOS 6.0 для замены uniqueIdentifier Интерфейс. Он используется поставщиком для идентификации пользователей. Каждое устройство имеет одно и то же значение в одном и том же приложении Vender. Под продавцом подразумевается провайдер приложения, но если быть точным, то через BundleID Первые две части обратного DNS совпадают. Если они совпадают, это означает, что тот же Продавец. Например, для com.somecompany.appone , com.somecompany.apptwo Для этих двух BundleID они принадлежат одному и тому же поставщику и имеют одинаковое значение idfv. В отличие от idfa, значение idfv определенно доступно, поэтому оно очень подходит в качестве основного идентификатора для внутреннего анализа поведения пользователей для идентификации пользователей и замены OpenUDID. Если пользователь удаляет все приложения, принадлежащие этому Продавцу, значение idfv будет сброшено, то есть переустановите Приложение этого Продавца. Значение idfv отличается от предыдущего.

Получать: [[[UIDevice currentDevice] identifierForVendor] UUIDString]

1.3 IDFA

Введение: рекламный идентификатор, подходящий для внешних приложений: таких как рекламное продвижение, отслеживание пользователей в приложениях, таких как объемный обмен и т. Д. Но если пользователь полностью сбрасывает систему ( (Настройка -> Общие -> Восстановить -> Восстановить местоположение и конфиденциальность ), Этот рекламный идентификатор будет восстановлен. Кроме того, если пользователь явно восстанавливает рекламу (Настройки -> Общие -> Об этом компьютере -> Объявления -> Восстановить рекламный идентификатор), то рекламный идентификатор также будет восстановлен. Примечание. Если программа работает в фоновом режиме, и пользователь «восстанавливает рекламный идентификатор» в это время, а затем возвращается в программу, получение рекламного идентификатора в это время не приведет к немедленному получению восстановленного идентификатора. Для получения восстановленного рекламного идентификатора программа должна быть остановлена, а затем перезапущена. Все приложения на одном устройстве получат одинаковую ценность, которая специально разработана Apple для поставщиков рекламы для отслеживания пользователей.
Пользователь может сбросить значение этого идентификатора в разделе «Настройки» -> «Конфиденциальность» -> «Отслеживание рекламы» или ограничить использование этого идентификатора.

Получать: [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString] ;

1.4 MAC-адрес

Введение: MAC-адреса используются для определения уникальности устройств в сети. Устройства, подключенные к сети, имеют MAC-адреса. Они определенно разные и уникальные. На iPhone может быть несколько MAC-адресов, включая WIFI, SIM-карту и т. Д., Но на iTouch и iPad есть WIFI, поэтому вам нужно только получить MAC-адрес WIFI, который является адресом en0. MAC-адрес аналогичен идентификационному номеру на нашей идентификационной карте, который уникален во всем мире. Но после iOS7, если запрашивается Mac-адрес, будет возвращено фиксированное значение.

Примечание. Поскольку idfa невозможно получить, его нельзя использовать в качестве основного идентификатора для бизнес-анализа для идентификации пользователей. Например, включение ограниченного отслеживания рекламы
Устарело: iOS7.0 +

1.5 KeyChain

Введение: вся система iOS имеет один KeyChain , Каждая программа может перейти на KeyChain Записывайте данные в KeyChain Данные в формате. И даже если наша программа будет удалена, система обновлена, а затем установлена ​​обратно, вы все равно можете получить тот же UDID, что и раньше (за исключением восстановления системы и перепрошивки). Таким образом, мы можем сохранить строку UUID в KeyChain, а затем напрямую загрузить ее из KeyChain Получите строку UUID. (В этом примере KeychainItemWrapper Инструменты)

1.6 AppleAccount

Вступление:Хотя Apple отключила метод получения uuid в iOS6, пока вы его изучаете, вы будете знать, что этот API только приватизирован, и вы все равно можете получить uuid устройства с помощью частного API. Но этот аспект также сопряжен с рисками: такими как изменения API и проблемы с обзором AppStore, но вы все равно можете пользоваться им на взломанных устройствах.

Читайте также:  Strongbow сидр apple cider

Класс: AADeviceInfo (файл заголовка дампа)

Получать: [AADeviceInfo udid]

Как использовать: В проекте поставить AppleAccount.framework Экспорт кадров, импорт в проект Xcode, использование runtime Или используйте этот класс напрямую.
(Дополнительные сведения: после экспорта AppleAccount.framework, войдите в корневой каталог AppleAccount.framework, создайте новую папку заголовков, а затем поместите выгруженный файл заголовка в каталог заголовков, это может быть как ссылка В проекте также используется трехсторонний фреймворк)

Два: iOS10 получает яму с idfa

После открытия после обновления ios10 Настройки-> Конфиденциальность-> Реклама-> Ограничить отслеживание рекламы Полученный впоследствии idfa будет строкой 00000 и MAC-адресом, и соответствующий idfa будет восстанавливаться каждый раз при включении и выключении, что эквивалентно однократному восстановлению рекламного идентификатора.

Как получить idfa:

Лучше добавить мнение после ios10 [[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled] Возвращаемое значение — BOOL. Если возвращенное YES означает, что нет «включить ограниченное отслеживание рекламы», можно получить правильный idfa. Если возвращенное NO является строкой 00000000000

Третье: прошлое и настоящее IDFA

В целях защиты конфиденциальности пользователей еще в 2012 году игрокам в ее экосистеме больше не разрешалось получать уникальный идентификатор пользователя. Однако, когда продавцы размещают рекламу на мобильном терминале, они надеются отслеживать эффект каждой рекламы. Поэтому Apple хочет. Компромиссное решение — предоставить другой набор идентификаторов, не связанных с оборудованием, для мониторинга рекламных эффектов для продавцов. В то же время пользователи могут изменить эту строку символов в настройках, что приводит к тому, что продавцы не могут отслеживать поведение пользователей для долго. Это называется рекламным идентификатором (IDFA), а путь настройки — «Настройки-> Конфиденциальность-> Реклама-> Восстановить рекламный идентификатор», как показано на рисунке ниже (iOS9).

Поскольку этот IDFA не является уникальным, он был очень противоречивым в отрасли вначале. Попытка получить UDID (который привязан к мобильному телефону, пользователь не может его изменить) привела Apple в ярость. За 13 лет все приложениям было запрещено получать UDID, иначе он не мог. Именно из-за своей экологической закрытости он может заставить всех подчиняться. Хотя IDFA не уникален, это лучше, чем ничего, и не многие пользователи будут его менять. Таким образом, после нескольких сражений IDFA стал универсальным идентификатором пользователя iPhone. Этот процесс разделен на 6 этапов. Я использую следующий рисунок, чтобы обобщить

Однако после запуска iOS10 в этом году индустрия рекламы была шокирована, потому что Apple представила функцию «ограничить отслеживание рекламы», а заданный путь был таким же, как и в iOS9. Внимательные люди могли заметить, что эта функция не уникальна для iOS10, и она также существует в предыдущих версиях. Однако после фактического тестирования, до iOS10, даже если пользователь включит эту функцию, продавец все равно может получить IDFA, но он отличается от предыдущего. Переключение этого переключателя каждый раз имеет тот же эффект, что и нажатие кнопки «Восстановить рекламный идентификатор» «. И в iOS 10 все по-другому. Когда пользователи включают эту функцию, компании могут получить только серию бессмысленных нулей. Это причина того, что рекламная индустрия так шокирована.

Четвертое: невозможно получить iOS10 IDFA для решения проблемы
4.1 Ограничение фона отслеживания рекламы

Другими словами, в iOS10, если пользователь включает ограниченное отслеживание рекламы, полученный idfa будет строкой 00000000-0000-0000-0000-000000000000

4.2 SimulateIDFA

SimulateIDFAЭто значение MD5, созданное на основе информации об устройстве (значение, полученное каждым приложением, одинаково). Используется для обозначения различных устройств.

В нужде SimulateIDFA Куда позвонить по коду:

Формат simulateIDFA такой же, как и IDFA.

####### 4.2.2 Принцип генерации
Созданное значение MD5 делится на две части.

К 626363D0-90D4-06BF-C281-384E4E69D3E2 Например:

16 лучших 626363D0-90D4-06BF Он получается из относительно стабильной комбинации параметров.Первые 16 битов изменятся только при обновлении системы.

Последние 16 бит C281-384E4E69D3E2 Он генерируется комбинацией некоторых параметров, которые легче изменить.Обычная ситуация изменения значения — перезапуск системы.

  • 1: Параметры, участвующие в вычислении первых 16 бит:

Вот некоторая информация, которая изменится при обновлении, версия системы, coreServices Время обновления создания файла, емкость системы

  • 2: После участия в 16-битных параметрах расчета:

Параметры здесь относительно легко изменить.Система изменится, если с момента последнего перезапуска прошло 10000 секунд.Другие параметры можно изменить в настройках.

4.3 Сравнение SimulateIDFA и OpenIDFA

OpenIDFA Это библиотека с открытым исходным кодом, созданная Яном Лешеллем. То же, что и альтернатива IDFA

####### 4.3.1 Сравнение вероятности дублирования сгенерированных идентификаторов
Предположим ситуацию. За один день 10 миллионов (10 миллионов) устройств одной модели в определенной стране обновляются до одной и той же системы.

Читайте также:  Iphone 6 plus замена процессора

1: SimulateIDFA
в этот деньалгоритмРасчет возможного значения, 24×3600 (Время создания файла, в секундах) x 10 (Предполагается, что время последнего изменения файла находится в пределах 10 секунд) x 10000000 (Диапазон ошибок емкости системы) x 1000000 (Диапазон названий оборудования, здесь предполагается 2 дубликата на каждые 100 единиц) = 8640000000000000000 。
Значение устройства a равно K, тогда вероятность того, что значение устройства b также равно K: 1/8640000000000000000 . общий 10000000 。 Оборудование. Следовательно, существует вероятность того, что значение устройства будет таким же, как у K среди 10 миллионов устройств. 1/8640000000000000000 x 10000000 = 1/864000000000。

2: OpenIDFA
Давайте посмотрим на алгоритм генерации OpenIDFA. OpenIDFA выполняет MD5 для следующих комбинаций параметров.

Возможное значение в течение дня — это погрешность емкости системы (10 000 000). ps: время запуска системы не влияет на снижение частоты повторения в этом случае, потому что OpenIDFA рассчитывается путем вычитания последних 4 цифр времени запуска системы. То же самое и со временем суток.

Значение устройства a равно K, тогда вероятность того, что значение устройства b будет таким же, как и значение K, составляет 1/10000000. Всего имеется 10 миллионов устройств. Следовательно, существует вероятность того, что значение устройства будет таким же, как у K среди 10 миллионов устройств. 1/10000000 x 10000000 = 1

####### 4.3.2 Сравнение своевременности

1: OpenIDFA
Полученное значение меняется каждый день.

2: SimulateIDFA
SimulateIDFA Он разделен на две части. Первые 16 бит изменяются при обновлении системы. Некоторые действия последних 16 пользователей могут привести к изменению значения (например: перезагрузка телефона, изменение имени устройства, изменение местного языка телефон)

####### 4.3.3 Резюме:
OpenIDFA имеет некоторые ограничения, сгенерированный IDFA будет меняться каждый день, а частота повторения относительно высока в некоторых экстремальных условиях. SimulateIDFA имеет лучшую производительность в этом отношении.

Пятый: обзор IDFA для iOS

Когда мы отправляем программу на рассмотрение, в конце у нас будет два варианта: один — Export Compliance (Этот параметр в основном относится к тому, использует ли ваша программа шифрование. Я обычно выбираю Нет при загрузке. Этот параметр зависит от фактической ситуации в вашем проекте.); Другой — Advertising Identifier (Рекламный идентификатор).

####### 5.1 Проверить, используется ли IDFA

Проверить, используются ли рекламные идентификаторы в нашем проекте, — значит проверить нас-

1: Есть ли во фреймворке имя под названием AdSupport.framework s рама;

2. Если фреймворк не проверен, возможно, он принадлежит третьей стороне, к которой мы получили доступ. Используйте следующий метод, чтобы проверить, содержит ли третья сторона версию IDFA;

Я проверил свой проект и ShareSDK отдельно:

####### 5.2 Значение каждой опции

1. Разместите рекламу в приложении рекламной услуги в Приложении.
Если ваше приложение интегрирует рекламу, вам необходимо отметить этот пункт.

2. Приписывание этой установки приложения определенной ранее размещенной рекламе.
Отслеживайте установки по объявлениям. Если вы используете сторонний инструмент для отслеживания активаций и других событий, вызванных рекламой, но в приложении не отображается реклама, вам необходимо установить этот флажок.

3. Свяжите действия, происходящие в этом приложении, с определенными ранее показанными объявлениями.
, чтобы отслеживать последующее поведение пользователей, вызванное рекламой. Если вы используете сторонний инструмент для отслеживания активаций, вызванных рекламой и некоторыми другими событиями.

4、 iOS «Ограничить рекламу
Содержание параметра «Отслеживание» фактически предназначено для подтверждения цели вашего приложения с помощью IDFA. Пока вы выбираете сбор IDFA, этот элемент необходимо проверять.

1: Если ваше приложение интегрирует только рекламные объявления и не отслеживает поведение активации, вызванное рекламными объявлениями, выберите 1 и 4;

2: Если в вашем приложении нет рекламы, но вы получили IDFA. Рекомендуется выбирать 2 и 4;

Источник

Как добавить обязательный запрос на IDFA через App Tracking Transparency

С весны этого года каждый iOS-разработчик должен запрашивать разрешение пользователя на использование рекламного идентификатора IDFA. В предыдущей статье мы сделали подробный обзор изменений в App Store и их влияния на мир iOS-разработки.

А сегодня — практический материал. Расскажем, как с помощью нового фреймворка App Tracking Transparency добавить в своё приложение обязательный запрос на использование персональных данных, как потом эти данные передавать рекламным сетям и что делать, если пользователь решил не делиться своей активностью.

Требования Apple

Подготавливать приложение мы начали с изучения гайдлайнов Apple. Там вводится понятие трекинга, которое подразумевает:

Связывание данных пользователей или устройств, собираемых вашим приложением, с данными пользователей или устройств, собираемых другими приложениями или веб-сайтами, для таргетирования рекламы.

Обмен данными пользователей или устройств с брокерами данных (компаниями, которые собирают и продают персональные данные).

Читайте также:  Циферблат калифорния apple iwatch 3

В нашем приложении iFunny персональные данные пользователя используются двумя брокерами данных, которые попадают под определение трекинга:

Рекламными сетями. Для этого нужен доступ к IDFA, который используется для таргетирования. Кроме того, мы можем передавать в рекламные SDK пол и возраст пользователя.

Facebook. Пользователь может авторизоваться через Facebook. А так как по правилам соцсети пользователь должен быть старше 18 лет, то мы передаем его возраст.

Эти два пункта обязывают использовать фреймворк App Tracking Transparency, иначе можно даже не пройти ревью в App Store. Чтобы этого не произошло, нужно покопаться внутри приложения и добавить соответствующую поддержку.

Запрос IDFA

Теперь если приложение попытается получить доступ к IDFA без явного запроса на разрешение у пользователя, то будут такие проблемы:

ASIdentifierManager.shared().advertisingIdentifier.uuidString вернет пустой IDFA, состоящий из нулей: 00000000-0000-0000-0000-000000000000.

Вы не пройдете ревью в App Store. Ревьюеры Apple теперь отклоняют все приложения, в которых нет IDFA.

IDFA крайне важен для таргетирования рекламы, поэтому каждому разработчику выгодно, чтобы больше пользователей нажимали кнопку «Разрешить». Для повышения конверсии можно экспериментировать и проводить A/B-тесты с разными показами запроса на IDFA.

Например, в iFunny были и стандартный вопрос, и котик, и сопроводительный текст, объясняющий, почему это полезно для пользователя:

Тексты, расположение view, картинку можно менять с помощью параметров A/B-теста. Был ещё информационный экран, после которого показывался запрос IDFA. Это не запрещено правилами — главное, чтобы всплывающий алерт в принципе был.

Эксперименты проводили несколько раз. В нашем случае самое большое количество согласий дал стандартный первый вариант без каких-то вспомогательных диалогов. Возможно, пользователи просто привыкли нажимать «Разрешить» в аналогичных запросах на уведомления и использование геопозиции.

Добавить запрос IDFA в приложение довольно просто, но нужно учитывать пару важных условий:

Нельзя ограничивать функциональность приложения, если пользователь не согласился делиться своим IDFA.

Нужно уважать выбор пользователей — нельзя заставлять их дать разрешение формулировкой, в которой вы будете угрожать или манипулировать (например, написав, что приложение будет хуже работать).

Сам алерт на IDFA вызывается таким куском кода, добавленным в plist:

Текст запроса можно изменить там же строками:

Передача данных рекламным сетям, если пользователь предоставил IDFA

Как уже разобрались выше, трекинг — это передача пользовательских данных сторонним рекламным SDK. В iFunny мы передаём пол, возраст и локацию пользователя (разумеется, если он дал на это разрешение) всем рекламным сетям, которые поддерживают передачу таких данных.

У каждого SDK свой API для передачи персональных данных, но общая логика примерно одинаковая у всех: показываем пользователю запрос > проверяем согласие > отправляем данные рекламным сетям.

Например, чтобы передавать информацию рекламной сети Prebid, нужно добавить код:

Для рекламной сети Appodeal:

А для рекламной сети MyTarget:

Передача данных рекламным сетям, если пользователь не предоставил IDFA

Для этого есть альтернативный фреймворк, работающий с рекламными сетями — SKAdNetwork. Он позволяет получить атрибуцию рекламных кампаний на iOS, даже если пользователь не предоставил доступ к IDFA.

Для его использования рекламные сети должны регистрироваться в Apple, а разработчики добавлять специальные идентификаторы в свои приложения, чтобы рекламные сети могли использовать этот способ.

Нужно в plist добавить ключ SKAdNetworkItems, значениями которого будет массив с SKAdNetwork-идентификаторами:

Facebook Limited Login

Чтобы соответствовать новой политике приватности, Facebook сделал специальную реализация своего логина. По сути, теперь у соцсети есть две кнопки:

Классический логин (Classic Login Mode) остался без изменений. Там по-прежнему передаются все данные без ограничений.

Ограниченный логин (Limited Login) работает на базе стандарта OpenID Connect и позволяет пользователям создавать новые аккаунты или использовать существующие, при этом делясь ограниченным набором данных: имя, фото профиля и (опционально) email

Разработчики могут разделить пользователей на две группы и для каждой группы использовать определенную реализацию логина. Например, для тех пользователей, которые дали согласие на использование их данных для персонализации рекламы, можно использовать Classic Login Mode, а для тех, кто отказался от этого – Limited Login Mode.

Мы поддерживаем оба, и пользователь в любой момент может переключиться на нужный.

Заключение

С обновлением iOS 14.5 пришлось повозиться под капотом приложения. Экспериментировали, боролись с ревьюерами Apple, добавляли изменения в рекламные SDK и, в целом, получили большой опыт по подготовке приложения.

С другой стороны, нельзя сказать, что эти обновления кардинально поменяли рынок мобильной рекламы. Но, возможно, это только начальные шаги к большим переменам.

Источник

Оцените статью