---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/ios/support-ios14.md
  - https://ads.yandex.com/helpcenter/ru/dev/ios/support-ios14.md
  - https://ads.yandex.com/helpcenter/zh/dev/ios/support-ios14.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ads.yandex.com/helpcenter/ru/llms.txt

<!--
Используется в Boost: boost/ru/ad-monetization/dev/ios
-->

# Поддержка iOS 14

С января 2021 года компания Apple [ограничивает доступ к IDFA на iOS 14](https://developer.apple.com/news/?id=hx9s63c5). Это означает, что Apple перестанет отдавать IDFA по умолчанию. IDFA (Identifier for Advertisers) — уникальный идентификатор устройства, который используется для атрибуции и ретаргетинга рекламы.

Yandex Mobile Ads SDK использует IDFA, чтобы максимизировать доход площадок, за счет отображения более релевантной рекламы.

Для получения IDFA разработчик приложения должен явно запросить разрешение у пользователя. Сделать это можно с помощью [AppTrackingTransparency framework](#tech).

Принцип работы аналогичен запросам на отправку push-уведомлений.

## Запрос разрешения на доступ к IDFA {#request-idfa}

При старте приложения проверьте статус разрешения с помощью [trackingAuthorizationStatus](https://developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547038-trackingauthorizationstatus). Дальнейшие рекомендации зависят от того, установлен у пользователя запрет доступа к IDFA или нет.

<!-- source: ru/dev/_includes/idfa-access.md -->
### У пользователя не установлен запрет доступа к IDFA {#no-access-ban}

У приложения есть только одна возможность показать пользователю запрос на доступ к IDFA, поэтому важно убедить пользователя разрешить доступ.

Стратегия работы с пользователем:

1. Перед показом системного диалогового окна отобразите диалоговое окно с объяснением:

   - что именно запрашивается;
   - как это будет использоваться;
   - почему стоит разрешить доступ.

   На экран можно добавить кнопки **Разрешить** и **Не сейчас**.

   {% note info %}

   Если пользователь согласился в поясняющем диалоговом окне приложения, с большой вероятностью он согласится в системном диалоговом окне. Если пользователь отказался в поясняющем диалоговом окне, будет возможность показать это диалоговое окно еще раз.

   {% endnote %}

   {% cut "Пример диалогового окна с объяснением" %}

   <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/alert-ios-14-2-ru.png">

   {% endcut %}

2. Запросите доступ к IDFA через [App Tracking Transparency](#tech).

### У пользователя установлен запрет доступа к IDFA {#access-ban-exists}

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

Стратегия работы с пользователем:

1. В приложении отобразите диалоговое окно с объяснением:

   - что именно запрашивается;
   - как это будет использоваться;
   - почему стоит разрешить доступ.

   На экран можно добавить кнопки **Разрешить** и **Не сейчас**.

   {% cut "Пример диалогового окна с объяснением" %}

   <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/alert-ios-14-2-ru.png">

   {% endcut %}

2. Перенаправьте пользователя в настройки с помощью [UIApplication.openSettingsUrlString](https://developer.apple.com/documentation/uikit/uiapplication/1623042-opensettingsurlstring).

   {% cut "Пример настроек пользователя с установленным запретом доступа" %}

     <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/alert-ios-14-3.png">

   {% endcut %}

   
<!-- endsource: ru/dev/_includes/idfa-access.md -->

<!-- source: ru/dev/_includes/idfa-app-tracking-transparency.md -->
## Запрос доступа к IDFA через App Tracking Transparency {#tech}

При работе с iOS 14 используйте новый фреймворк [App Tracking Transparency](https://developer.apple.com/documentation/apptrackingtransparency). С его помощью отобразите системное диалоговое окно в своем приложении. В окне пользователь выберет разрешить или запретить доступ к IDFA.

{% note info %}

Системное диалоговое окно может отображаться только один раз при каждой установке приложения. Если пользователь выберет **Ask App Not to Track**, возможности показать это окно снова для этого приложения не будет.

{% endnote %}

1. Системное диалоговое окно нельзя менять, но в него можно добавить текст с пояснением. Для этого добавьте ключ `NSUserTrackingUsageDescription` в Info.plist. Например:

   ```xml
   <key>NSUserTrackingUsageDescription</key>
   <string>This identifier will be used to deliver personalized ads to you.</string>
   ```

   Текст из Info.plist будет показан пользователю в системном диалоговом окне. В тексте объясните пользователю, почему приложение запрашивает разрешение на использование IDFA.
2. Чтобы отобразить диалоговое окно с запросом доступа к IDFA, вызовите метод [requestTrackingAuthorization(completionHandler:)](https://developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547037-requesttrackingauthorization).

   {% cut "Пример системного диалогового окна" %}

     <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/alert-ios-14.png">

   {% endcut %}

3. Прежде чем загружать рекламу дождитесь получения callback. Тогда Yandex Mobile Ads SDK сможет использовать IDFA в запросах за рекламой.

   ```swift
   import AppTrackingTransparency
   // ...

   func requestTrackingAuthorization() {
       ATTrackingManager.requestTrackingAuthorization { status in
           // Start ad loading

       }
   }
   ```
4. Чтобы проверить статус авторизации App Tracking Transparency, используйте свойство [trackingAuthorizationStatus](https://developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547038-trackingauthorizationstatus).

Больше информации по App Tracking Transparency доступно в документации [Apple](https://developer.apple.com/documentation/apptrackingtransparency).
<!-- endsource: ru/dev/_includes/idfa-app-tracking-transparency.md -->

