iOS App Tracking Transparency (ATT) и согласие на файлы cookie для гибридных приложений в 2026 году
Гибридные мобильные приложения — архитектура, где тонкая нативная оболочка оборачивает веб-представление, которое отрисовывает большую часть пользовательского интерфейса — всегда жили в двух мирах конфиденциальности одновременно. Нативная оболочка регулируется фреймворком App Tracking Transparency (ATT) от Apple на iOS и дорожной картой Privacy Sandbox от Google на Android. Веб-представление внутри регулируется теми же правилами GDPR, ePrivacy, CCPA и CPRA, которые применяются к любому браузеру. Пять лет издатели пытались замазать этот шов специальными прокладками, и пять лет рецензенты App Store и регуляторы ЕС отвергали лоскутное одеяло примерно в равной мере. К 2026 году вопрос о том, как ATT и согласие на файлы cookie сочетаются внутри гибридного приложения, больше не является опциональной сантехникой — это разница между приложением, которое выходит, монетизируется и переживает аудит конфиденциальности, и тем, которое снимают из магазина или штрафуют до полной переделки. Это руководство разбирает, что на самом деле контролирует ATT, что оно намеренно оставляет веб-согласию, как спроектировать поток разрешений и согласия, чтобы две системы были согласованными, а не противоречивыми, и инженерные паттерны, которые переживают и процесс проверки Apple, и аудит регулятора.
Что на самом деле регулирует App Tracking Transparency
ATT — это шлюз разрешений, который Apple обеспечивает в iOS и iPadOS. Когда приложение хочет получить доступ к идентификатору для рекламодателей устройства (IDFA) или выполнить отслеживание, связывающее пользователя между приложениями и сайтами, принадлежащими другим операторам, оно должно вызвать requestTrackingAuthorization и показать системный запрос, который спрашивает пользователя разрешить или запретить отслеживание. Ответ пользователя бинарный, постоянный до тех пор, пока он не изменит его в Настройках, и видимый приложению через API trackingAuthorizationStatus.
Определение отслеживания от Apple
Руководство для разработчиков Apple определяет отслеживание конкретно и узко: связывание данных пользователя или устройства, собранных из вашего приложения, с данными пользователя или устройства, собранными из приложений, сайтов или офлайн-ресурсов других компаний, для целевой рекламы или измерения, или передача данных пользователя или устройства брокерам данных. Определение намеренно исключает использование данных первой стороной внутри приложения, анонимную агрегированную аналитику и обработку для предотвращения мошенничества или соблюдения закона — эти действия не требуют запроса ATT независимо от того, предоставил ли его пользователь.
Чего ATT не делает
ATT не является системой управления согласием в смысле GDPR. Оно не собирает детальные предпочтения по целям, не записывает квитанцию согласия с версионированием политики, не передаёт сигналы веб-поставщикам внутри WKWebView и не удовлетворяет требование правового основания для хранения или чтения файлов cookie на устройстве пользователя. Издатель, который рассматривает запрос ATT как всю свою позицию соответствия для гибридного приложения, находится в одном письме регулятора от штрафа, потому что загрузка файлов cookie внутри веб-представления — это отдельное событие согласно ePrivacy и нуждается в собственном слое согласия.
Как GDPR и ePrivacy применяются внутри WKWebView
Веб-представление внутри гибридного приложения не освобождено волшебным образом от правил, применяемых к настольному браузеру. В тот момент, когда WKWebView читает или записывает файл cookie, не являющийся строго необходимым, запускается ePrivacy. В тот момент, когда WKWebView запускает аналитический или рекламный запрос, несущий персональные данные, запускается GDPR. Контейнер Apple не меняет анализ — меняется поверхность реализации, потому что баннер согласия должен отрисовываться внутри веб-представления, а состояние согласия должно быть видимо нативному коду, который также может читать те же данные.
Баннер внутри веб-представления
Стандартный паттерн — отрисовывать баннер CMP внутри WKWebView так же, как вы делали бы это на сайте. Баннер устанавливает файлы cookie в хранилище cookie веб-представления, запускает событие обновления согласия в контекст JavaScript страницы и обновляет конечный автомат Google Consent Mode v2, который читают аналитические и рекламные теги страницы. Реализация не отличается от обычной веб-CMP — что отличается, так это то, что хранилище cookie ограничено областью WKWebView и не видимо другим приложениям или Safari, что полезно для изоляции, но бесполезно, если издатель также управляет сайтом, где пользователь уже дал согласие.
Совместное использование согласия между веб-представлением и нативной оболочкой
Более сложная проблема — мост между WKWebView и нативной оболочкой. У нативной оболочки может быть собственный аналитический SDK, который читает IDFA после того, как пользователь предоставил ATT, тогда как у веб-представления есть собственный баннер согласия, который пользователь мог принять или не принять. Если пользователь предоставляет ATT, но отклоняет рекламное согласие в веб-представлении, нативный SDK всё ещё может читать IDFA, но теги веб-представления не должны. Если пользователь запрещает ATT, но принимает рекламное согласие веб-представления, нативный SDK заблокирован, но теги веб-представления всё равно должны срабатывать — хотя основанный на IDFA идентификатор нативного SDK, очевидно, не может пройти через мост. Самый чистый паттерн — единый источник истины (CMP), предоставленный через мост JavaScript, который нативная оболочка читает при запуске приложения и при каждом изменении согласия, с параллельным запросом ATT, который отсылает к рекламному решению CMP, а не спрашивает снова.
Слой CPRA и штатов США
Для издателей США картина имеет третий слой. CPRA, плюс кластер законов штатов, последовавших за Вирджинией, Колорадо, Коннектикутом и Ютой, трактуют IDFA так же, как трактуют веб-файлы cookie — оба являются персональной информацией, продажа или передача которой запускает право на отказ. Заголовок Global Privacy Control, который отправляют веб-браузеры, — это сигнал, обращённый к потребителю, а Соглашение о конфиденциальности нескольких штатов (MSPA) IAB с ассоциированной с ним строкой US Privacy — сигнал, обращённый к издателю. Гибридное приложение, которое выходит в США, должно показать ссылку «Не продавать и не передавать мою персональную информацию» внутри самого приложения, маршрутизировать получившийся отказ как в CMP веб-представления, так и в измерительный SDK нативной оболочки, и уважать любой входящий заголовок GPC, который приходит в веб-представление из глубокой ссылки.
Дети и COPPA внутри гибридных приложений
Если приложение рассчитано на детей или есть разумное ожидание детей-пользователей, COPPA в США и положения GDPR-K в ЕС накладывают дополнительные ограничения поверх ATT и стандартного согласия. IDFA вообще не должен запрашиваться для детских аккаунтов, рекламное согласие веб-представления должно по умолчанию отклоняться, и любой сторонний SDK в нативной оболочке должен быть подтверждён как соответствующий COPPA до выхода. Проверка App Store отклоняет приложения с детским рейтингом, которые показывают стандартный запрос ATT, что является распространённой ошибкой реализации, когда команды строят единый бинарник для всех аудиторий.
Инженерный паттерн, который выходит
Архитектура гибридного приложения, которая переживает и проверку App Store, и аудит конфиденциальности ЕС, имеет небольшое число повторяемых элементов. Баннер CMP внутри WKWebView — источник истины для рекламного согласия. Запрос ATT показывается только после того, как CMP разрешился, только если пользователь принял рекламное согласие, и только с пользовательским пред-запросом, который объясняет, что включит отслеживание. Мост JavaScript предоставляет состояние согласия CMP нативной оболочке при запуске приложения и испускает событие при каждом изменении согласия. SDK нативной оболочки гейтятся как на рекламном согласии CMP, так и на статусе авторизации ATT; отклонение запроса любым из них достаточно, чтобы заблокировать SDK.
Пред-запросы и рекомендация Apple
Apple разрешает — и на практике ожидает — пред-запрос перед системным запросом ATT, который объясняет голосом издателя, почему приложение хочет отслеживание и что пользователь получает взамен. Хорошо написанный пред-запрос может существенно повысить уровни согласия. Чего Apple не разрешает, так это пред-запрос, который пытается обойти системный запрос, который искажает последствия отказа или который обуславливает функциональность приложения авторизацией отслеживания. Рецензенты отклоняют приложения за все три паттерна и всё чаще за использование пред-запроса для подталкивания к согласию манипулятивным текстом.
Серверная сторона и SKAdNetwork как запасные варианты
Когда ATT запрещён или рекламное согласие отклонено в веб-представлении, издатель всё ещё может прибегнуть к SKAdNetwork для атрибуции — сети Apple, сохраняющей конфиденциальность, которая доставляет данные о конверсиях без раскрытия идентификаторов отдельных пользователей. SKAdNetwork не подчиняется ATT и работает независимо от решения пользователя о согласии, что делает его правильным значением по умолчанию для измерения, когда персонализированный путь закрыт. Серверные постбэки от нативной оболочки к принадлежащему издателю сервису идентичности также могут заполнить пробел в измерениях при условии, что данные действительно являются данными первой стороны и не объединяются с данными других операторов способом, который возвращает их в определение отслеживания Apple.
Распространённые ошибки, которые запускают отклонения или аудиты
Гибридные приложения, которые снимают или штрафуют, как правило, терпят неудачу одной и той же горсткой способов. Баннер CMP внутри WKWebView срабатывает до того, как запрос ATT был разрешён, устанавливая файлы cookie на устройство, пока разрешение Apple всё ещё в ожидании — вывод, который может привести к отклонению App Store. Запрос ATT показывается без пред-запроса и на холодном старте, производя низкие уровни согласия и запутанный пользовательский опыт, который увеличивает отток. Аналитический SDK нативной оболочки читает IDFA до того, как CMP запустил своё первое событие согласия, помещая персональные данные в эфир без ясного правового основания. Состояние согласия веб-представления и состояние авторизации нативной оболочки хранятся в отдельных хранилищах без синхронизации, производя пользователя, который отклонил рекламу в веб-представлении, но чей нативный рекламный SDK всё ещё срабатывает. Каждое из этого — исправление в один-два инженерных дня и прогон регрессионных тестов — но каждое также является точным паттерном, с которого аудитор или рецензент начинает.
Итог
ATT и согласие на файлы cookie — не избыточные наложения. ATT — это шлюз разрешений, ограниченный конкретным API iOS, а согласие на файлы cookie — это правовое основание для обработки данных внутри любой среды класса браузера, включая WKWebView. Гибридному приложению нужны оба, соединённые вместе так, чтобы пользователь видел одно согласованное решение, а не два противоречивых запроса, и чтобы нативная оболочка и веб-представление чтили один и тот же ответ. Издатели, которые делают это правильно, выпускают приложения, которые проходят проверку, надёжно монетизируются и никогда не появляются в сводке правоприменения регулятора. Издатели, которые рассматривают ATT как весь ответ или которые позволяют согласию веб-представления и нативной оболочке разойтись, проводят 2026 год, чередуя встречи по проверке App Store и письма с ответами на аудит. Постройте мост один раз, относитесь к CMP как к источнику истины, и пусть ATT будет специфичным для iOS замком поверх позиции конфиденциальности, которая уже согласована на уровне веб.