При каких условиях Apple 'advertisingIdentifier' reset?

За исключением того, что пользователь вручную перезагрузил его, кто-нибудь заметил другие вещи, которые приведут к тому, что ADID будет reset? OTA OS Upgrades? iTunes восстанавливается?

Ответ 1

(эффекты на advertisingIdentifier и identifierForVendor, проверенные на iPhone 3GS с iOS 6.0.1 и iOS 6.1.3 и iPhone 4S с iOS 6.1.3 и iOS 7.0.0)

  • "Reset Все настройки" в приложении настроек iOS
    Без эффекта

  • "Стереть все содержимое и настройки" в приложении настроек iOS
    Сбрасывает как advertisingIdentifier, так и identifierForVendor.

  • Восстановление устройства через iTunes
    Сбрасывает как advertisingIdentifier, так и identifierForVendor.

  • Удаление приложения с устройства
    Сбрасывает identifierForVendor, если это последнее приложение с определенным идентификатором команды.

  • Обновление приложения (автоматически или через App Store)
    Без эффекта

  • Обновление приложения через TestFlight или Ad-Hoc
    May reset identifierForVendor, согласно документации.

  • Включение/отключение "Ограничение отслеживания объявлений"
    iOS 6.0.1: никакого эффекта
    iOS 6.1.3: Сбрасывает advertisingIdentifier.

  • Обновление системы OTA (iOS 6.0.1 до iOS 6.1.3)
    Без эффекта

  • Обновление системы OTA (iOS 6.1.3 до iOS 7.0.0). В некоторых случаях сбрасывается identifierForVendor. (1)

  • Обновление системы через iTunes (iOS 6.1.3 до iOS 7.0.0). В некоторых случаях сбрасывается identifierForVendor. (1)

  • "Reset Идентификатор рекламы" в приложении настроек iOS
    Сбрасывает advertisingIdentifier. Если некоторые запущенные (или приостановленные) приложения уже запросил a advertisingIdentifier, они не смогут получить новый, пока они не будут остановлены и перезапущены.

  • Резервное копирование через iTunes
    Без эффекта

  • Восстановление резервной копии через iTunes (на том же устройстве)
    Восстановление резервных настроек, включая как advertisingIdentifier, так и identifierForVendor. Примечание. Если вы удалите несколько приложений с некоторыми Идентификатор команды до восстановления, identifierForVendor никогда не будет reset снова, пока вы не переустановите все приложения с этим идентификатором команды, который у вас был установить и удалить их снова. Кажется, это ошибка.

  • Восстановление резервной копии через iTunes (на другое устройство). Сбрасывает как advertisingIdentifier, так и identifierForVendor.


(1) Насколько я понимаю, это не должно происходить с приложениями в App Store. Похоже, что это связано с количеством компонентов в приложении bundleID и соответствующим профилем подготовки: iOS 7 Примечания к выпуску приложений, касающиеся развертывания приложений
В моих тестах identifierForVendor в приложениях с 4-мя компонентами изменились (для версий с профилями подготовки разработчика или поставщика), но не изменились для тех, у кого есть 3 компонента.

Ответ 2

Два случая:

  • Вручную выбрать "Reset Идентификатор рекламы". Но если приложение работает в фоновом режиме, идентификатор останется активным до тех пор, пока приложение не будет перезапущено.
  • Вручную выберите "Reset Все содержимое и настройки".

Резервные копии, обновления ОС, переустановка приложения или выбор "Ограничение отслеживания объявлений" не будут reset идентификатором.

AFAIK вы можете отправить идентификатор поставщика и идентификатор рекламы на сервер, а когда пользователь сбрасывает рекламный идентификатор с помощью "Reset Идентификатор рекламы", вы можете сопоставить новое со старым, поскольку идентификатор поставщика сохраняется, Не знаю, как Apple намерена предотвратить это.

Ответ 3

Нет официального, окончательного списка от Apple. В документации указано только:

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

Apple не дает более подробной информации. Известно, что сброс устройства изменяет ADID, так же как пользователь вручную перезагружает его (где эта функция доступна, поэтому iOS 6.1+). Я не смог найти ничего, что предполагает, что обновление ОС будет reset идентификатором.

Конечно, возможно, другое недокументированное поведение сбрасывает идентификатор, но я не смог найти ничего другого.