Как предоставить местоположение 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 по новым функциям. См. Принятый ответ ниже.
Ответы
Ответ 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) может подтвердить это, это было бы здорово. Кроме того, если вы найдете что-либо, что противоречит этим выводам, наиболее определенно оставить комментарий. Я счастлив, что оказался ошибочным.