Подтвердить что ты не робот

Как предоставить местоположение AdRequest теперь, когда AdMob стала частью Службы Google Play?

В октябрьском обновлении сервисов Google Play AdMob был интегрирован в библиотеку, что означает, что разработчикам Android больше не нужно включать GoogleAdMobAdsSdk-x.x.x.jar в папке проекта libs. Там есть приятное руководство по миграции, в котором объясняется, как переносить с com.google.ads.* на com.google.android.gms.ads.*.

До сих пор так хорошо. Миграция - это кусок пирога, но... Всегда есть "но".

Ранее com.google.ads.AdRequest использовал метод setLocation(Location), который позволит вам увеличить информацию о таргетинге. Этот параметр больше не доступен в com.google.android.gms.ads.AdRequest, а также в Builder.

Полагаю, мои вопросы: куда и зачем? На что, вероятно, легко ответить, потому что он просто кажется удаленным. Мне бы очень хотелось, чтобы кто-то доказал, что я здесь не прав, так что не стесняйтесь комментировать, если я что-то пропускаю. Это оставляет почему.

Сейчас я могу только предположить, почему он был удален:

  • Было упущено, когда AdMob был реорганизован, чтобы стать частью Служб Google Play.
  • Из соображений конфиденциальности Google решил больше не поддерживать эту функцию.
  • Так как AdMob теперь является частью Служб Google Play, возможно, он интегрируется с API местоположения (то есть провайдера Fused Location Provider) и автоматически передает информация о местоположении, если доступна?

Первый вариант кажется маловероятным, а второй - понятным. Не уверен в отношении третьего, но, учитывая последствия конфиденциальности, тоже не слишком. Любой шанс, что кто-то может дать окончательный ответ на этот вопрос или, возможно, указать на надежный источник?


Примечание. Да, я знаю следующее замечание в документах:

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

Приложение, для которого возникла эта проблема, уже известно о местоположении. На самом деле, это довольно важный аспект приложения. Как отмечается в примечании, поскольку пользовательское местоположение уже используется приложением, поставка его с запросом объявления была действительным прецедентом до сих пор.


Обновление

С сообщением 9 января в появившемся обновлении Google Play Services 4.1 упоминается о повторном внедрении адресации через новый API:

Объявления Google для мобильных устройств
С сервисами Google Play 4.1 объявления Google Mobile SDK теперь полностью поддерживает DoubleClick for Publishers, DoubleClick Ad Exchange и поисковые объявления для мобильных приложений. Вы также можете использовать новый предоставленный издателем API местоположения, чтобы предоставить Google местоположение при запросе объявлений. Объявления на основе местоположения могут улучшить ваше приложение. монетизация.

В настоящее время я не нашел обновленную документацию по этому новому API, но ожидаю, что он станет доступен очень скоро - как только будет завершено развертывание Google Play Services 4.1. До тех пор, я сохраню свой первоначальный ответ ниже для справки.

Google теперь обновил документы Android по новым функциям. См. Принятый ответ ниже.

4b9b3361

Ответ 1

Окончательное обновление:

Google наконец обновил документы Android, чтобы включить новый API-интерфейс, предоставляемый издателем. Неудивительно, что они склеены в шаблон строителя и в значительной степени идентичны тем, как раньше работали:

AdRequest.Builder.setLocation(Location)

Ответ ниже хранится в образовательных целях; если выше ответили на ваш вопрос, нет необходимости смотреть дальше.


Обновление:. Отображение местоположения снова будет включено с помощью нового API в сервисах Google Play 4.1. Дополнительную информацию см. В обновлении оригинального вопроса.


Из-за отсутствия ответов я покажу этот краткий анализ. Я быстро просмотрел старый SDK AdMob и новые сервисы Google Play, пытаясь узнать больше информации.

Вот мои выводы до сих пор, изложенные в небольшом столе. В основном это дает сравнение различных пар ключ-значение, которые отправляются с помощью AdRequest.

 Admob SDK:                     | Google Play Services:
--------------------------------|--------------------------------
 map.put("kw", ...);            | map.put("kw", ...);
 map.put("cust_gender", ...);   | map.put("cust_gender", ...);
 map.put("cust_age", ...);      | map.put("cust_age", ...);
 map.put("uule", ...);          |
 map.put("testing", ...);       |
 map.put("pto", ...);           |
 map.put("cipa", ...);          |
 map.put("adtest", ...);        | map.put("adtest", ...);
 map.put("extras", ...);        | map.put("extras", ...);
                                | map.put("tag_for_child_directed_treatment", ...);
--------------------------------|--------------------------------

Legend:
* kw = keyword
* cust_gender = gender
* cust_age = birthday
* uule = location
* testing = testing
* pto / cipa = plus one opt out
* adtest = is test device
* extras = extras

В старом SDK AdMob ключ uule используется для привязки места. К сожалению, этого нет в Google Play Services. Это говорит о том, что 3-я спекуляция в моем первоначальном вопросе, скорее всего, не так. В некотором смысле это имеет смысл, потому что это определенно то, что было бы где-то документировано, просто из-за изменения необходимых разрешений.

Я также склонен сказать, что функция местоположения не была забыта. Это не единственный недостающий ключ, но большинство других основных течений, таких как возраст, пол, ключевое слово и т.д. Вместо этого я начинаю верить, что это было упущено намеренно, отказавшись от поддержки. Если бы я рискнул предположить, то это скорее всего из-за проблем с конфиденциальностью.

Если кто-нибудь (в частности, кто-то из Google) может подтвердить это, это было бы здорово. Кроме того, если вы найдете что-либо, что противоречит этим выводам, наиболее определенно оставить комментарий. Я счастлив, что оказался ошибочным.