СИТУАЦИЯ
У меня есть набор функций в моем приложении, который изменяется на основе хранилища, установленного с. Например. Я хочу, чтобы более ограниченный набор рекламных объявлений, отображаемых для семейных аудиторий и детей, имел право на категорию Google Play for Education
. В других магазинах я все еще хочу ограничиться, но не хочу быть строгим, поскольку я буду фильтровать рекламу.
Общее замечание в моем конце состоит в том, что, если я выбираю категорию "Google Play для образования", для публикации опубликовано несколько часов, потому что следующее (как указано на консоли разработчика):
Проверка этого окна отправляет это приложение для включения в "педагог" Рекомендуемый "раздел Google Play для образования. Окончательное решение на каких приложениях рекомендуется рекомендовать сторонняя сеть учителей. Если ваше приложение выбрано, мы уведомим вас по электронной почте. Если нет, приложение по-прежнему будет доступно для поиска в Google Play для образования.
Теперь, прежде чем приложение опубликуется в этой категории, сеть учителей, я полагаю, загружаю и тестирую/проверяю, соблюдены ли рекомендации и нет нарушений.
ПРОБЛЕМА
Чтобы различать хранилище, установленное с помощью, я, очевидно, использую это:
PackageManager packageManager = context.getPackageManager();
String installer = packageManager.getInstallerPackageName(packageName);
if (installer == null) installer = ""; //to avoid NPE
if (installer.equals("com.android.vending")) {
//It is installed from Google Play store
//PROBLEM: THIS DOES NOT SEEM TO BE THE PACKAGE NAME RETURNED
//WHEN GOOGLE PLAY REVIEWERS/TESTERS ARE USING THE APP
}
else ...
....
....
//similarly handling other stores here
....
....
....
//After that also checking by installed app stores
....
....
Что происходит: После того, как приложение опубликовано, приложение правильно идентифицирует, что оно загружается из магазина воспроизведения, то есть оно получает com.android.vending
как installerPackageName. Но , когда он проверяется или тестируется сетью преподавателей, похоже, что он получает другое значение installerPackageName. Это заставляет приложение думать, что оно было загружено из магазина приложений, отличного от Google Play Store. И из-за этого мое приложение отклонено из категории "Образование". Мне нужно знать это имя пакета установщика, чтобы правильно обрабатывать сценарий.
Как я знаю это: У меня есть выделенный идентификатор рекламного блока, который будет использоваться, когда обнаруженным магазином приложений является Google Play, и все запросы, опубликованные после успешной публикации (т.е. от пользователей обычного магазина воспроизведения), приходят к этот идентификатор рекламного блока Google. Но за короткий промежуток времени после отправки приложения/обновления и до того, как опубликовано приложение и/или обновление., несколько запросов поступают в идентификаторы рекламного блока, отличного от Google, что приводит к отказу приложения от сбоя к руководящим принципам, которые могут иметь право на категорию "Google Play для образования". Поскольку уровень фильтрации объявлений в идентификаторах рекламного блока, отличных от Google, немного меньше. Поэтому преподаватели, оценивающие/тестирующие приложение, видят некоторые объявления, которые, по их мнению, не соответствуют рекомендациям и отклоняют его.
Кроме того, вот статья, чтобы поддержать тот факт, что приложение просматривается вручную, а также автоматическим script, прежде чем оно на самом деле опубликованные в магазине.
Текущее исправление или ограничение:. Я отключил все другие рекламные сети и должен использовать только admob. Настройка фильтров даже на самом строгом уровне в других рекламных сетях, по-видимому, не фильтрует все объявления, которые, по мнению аналитиков Google, не подходят для детей и семейных аудиторий. При использовании только admob процесс является плавным, и я всегда готов.
Что я искал для решения этой проблемы:. Если я узнаю имя installerPackageName, которое возвращается, когда приложение установлено из того места, где когда-либо проверялась сеть учителей, установите приложение, я может обрабатывать этот случай точно так же, как я обрабатываю, когда я получаю com.android.vending
, и все будет в порядке.
Я не мог найти никакой документации или ссылки для получения этой информации.
Кроме того, если есть другой способ, я могу определить, что приложение находится в стадии pending publication
, я заставляю все запросы перейти к идентификатору рекламного блока Google.
ПРЕДПОЛОЖЕНИЕ: Существует отдельное приложение-установщик для рецензентов и тестеров (автоматическое/ручное, что когда-либо может быть в фоновом режиме), чье инсталляторPackageName НЕ com.android.vending
. Если есть какой-то парень Google и может подтвердить это (если это разрешено Google), сделайте комментарий.: -)
Другие возможности, с которыми я не хочу идти
Отключите все другие сети вручную, когда приложение находится в фазе pending publication
и снова включите их после публикации. Но я не хочу этого делать, потому что это будет похоже на блеф Google, и я не хочу идти этим путем. Я хочу, чтобы моя логика приложений позаботилась об этом, чтобы на рынке было выпущено то же самое, что было рассмотрено.
Я постоянно придерживаюсь только admob. Но это было бы глупо, поскольку в других магазинах нет таких ограничений, в которые я публикую свои приложения, и я буду страшно потерять скорость заполнения.
У меня есть кто-нибудь, у кого была эта проблема до того, как ИЛИ знает имя installerPackageName для места загрузки отзыва ИЛИ знает, как определить, находится ли приложение в ожидании публикации состояние в игровом магазине?
Я также могу фильтровать все по именам пакетов, начиная с com.android
или com.google
, но я хочу сохранить это как последний параметр. Кроме того, хотелось бы знать, если имя installerPackage не установлено вообще в случае этих пользователей. В этом случае мне придется посмотреть на совершенно другую ситуацию, чтобы справиться с ситуацией.