Решение проблемы с Advertising ID при публикации Android приложений

Google ужесточил требования для приложений и игр, в частности, ориентированных на детей. И раньше модерация детских приложений (входящих в программу для Всей семьи) была жесткой, теперь модерацию пройти еще сложнее. В ноябре 2023 года многие разработчики, до этого успешно размещавшие приложения Google Play, получили письмо с требованием устранить нарушения. Рассказываем, как мы решили проблему.

Новые требования

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

  • рекламных идентификаторов Advertising ID,
  • SIM serial - отслеживание номера телефона и т.п.)
  • EMAI, MAC - идентификаторов конкретного устройства
  • Build Serial, BSSID, SSID и других идентификаторов.

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

Причем Google перепроверяет приложения, которые уже успешно прошли ревью ранее, и многие разработчики получили «письма счастья» с требованием устранить нарушения в течение месяца или же приложение или игра будут удалены из Play Market.

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

Что нужно сделать, чтобы успешно пройти в Google Play модерацию приложения или игры для детей по новым правилам?

Начнем с простого и наиболее очевидного.

  1. Проверьте и деактивируйте в аккаунте разработчика (консоли) все старые версии и сборки:

    • версии, доступные для закрытого, открытого, alpha и beta тестирования
    • предыдущие версии, выпущенные в релиз для пользователей, кроме текущей (последней доступной пользователям).

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

  2. Заполните политику использования данных.

    Убедитесь, что в политике указан верный возраст. Иногда после неудачной модерации Google меняет политику, указывая, что приложение или игра не предназначены для детей.

    В политике использования данных для детских игр и приложений практически не должно остаться «галочек». Можно использовать email для аутентификации (регистрации/логина пользователей), Firebase для сбора данных о работе приложения.

    Если вы указали, что приложение предназначено для детей, но при этом поставили «лишнюю» галочку, то сообщение об отклонении придет почти моментально (обычно до 5 минут). Таким образом можно поэкспериментировать и проверить допустимы пункты, в которых вы сомневаетесь.

  3. Отключите в приложении использование всех рекламных и других идентификаторов, перечисленных выше.

    Если не отключить, то также почти сразу придет reject (отклонено при модерации) с указанием на то, что приложение не соответствует политике, которую вы заполнили.


  4. Проверяем манифест

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

    
    <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"></uses-permission>
    

  5. Выпиливаем (удаляем) «неподходящие» системы трекинга и аналитики из самого приложения. Просто отключить и закомментировать не всегда помогает.

  6. Обновляем используемые в игре или приложении библиотеки до последней версии. Если приложение старое, то, возможно, у встроенных библиотек появились более обновления, которые соответствуют новым правилам Google.

Вроде выпилили все, а приложение или игра все равно не проходит модерацию?

Тогда придется копнуть глубже. Возможно, какая-то используемых в приложении библиотек отправляет идентификаторы. Чтобы их отследить, собираем билд (APK файл) в release версии. При этом отключите деобфускацию.

  1. декомпилируем полученный apk файл c помощью jadx:

    
    jadx -d out ./app-release.apk
    
  2. ищем в исходниках запрос который и получает собственно AD ID:

    
    grep -Rn AD_ID out/
    grep -Rn getAdvertisingIdInfo out/
    
  3. Так же ищем запросы на получение: SIM serial, EMAI, MAC, Build Serial, BSSID, SSID

  4. Если находим что какая то сторонняя библиотека запрашивает идентификатор, ищем способы заменить ее, или удаляем.

  5. Какие библиотеки и системы аналитики допустимы приложениях Play Market для всей семьи?

    Точно можем сказать что Firebase Crashlytics разрешен. Другие его части например аналитика или пуш уведомления, надо смотреть индивидуально, встраивать при необходимости, запрещать в настройках использование рекламного идентификатора и пробовать проходить ревью.

    Все, что связано с рекламой, однозначно не допускается. Google Analytics (не путать с Google Firebase) тоже обычно проходит.

    Надеемся наш опыт окажется полезен. Обсудить, задать вопросы или обратиться за помощью можно по контактам (ссылка на страницу контакты) или в телеграм-канале Lady in Web(ссылка на канал)

    И наконец, если приложение успешно прошло ревью (получило одобрение на публикацию), но предупреждение с восклицательным знаком продолжает висеть, то по словам техподдержки Google это не страшно. И через какое-то время желтый восклицательный знак пропадает сам. А от красного придется избавляться, иначе приложение или игра не попадут в Google Play.