Геотаргетинг

Успех кампании AdWords зависит от того, насколько точно она нацелена на нужную аудиторию. В этом руководстве по геотаргетингу мы подробно рассмотрим, как добавлять, получать и обновлять настройки геотаргетинга с помощью AdWords API. Затем перейдем к более сложным понятиям, таким как местонахождение пользователей (Location of Presence, LOP) и интересующие местоположения (Area of Interest, AOI), а также отчетности и оценке эффективности.

Здесь в примерах кода используется библиотека AdWords API для Java. Если вам нужна библиотека на другом языке программирования, ознакомьтесь с этим списком. Клиентскую библиотеку использовать необязательно (хотя рекомендуется); вызовы API можно выполнять с помощью любого комплекта SOAP на том языке, на котором вы предпочитаете работать.

  1. Почему так важен геотаргетинг?
  2. Геотаргетинг на регион
  3. Как найти код региона
  4. Геотаргетинг на прилегающие области
  5. Как узнать координаты адреса
  6. Геотаргетинг на области-многоугольники
  7. Извлечение целевых местоположений
  8. Обновление целевых местоположений
  9. Дополнительные настройки геотаргетинга
  10. Отчеты по эффективности геотаргетинга

Почему так важен геотаргетинг?

Успех кампании AdWords зависит от того, насколько точно она нацелена на нужную аудиторию. Геотаргетинг позволяет показывать рекламу только тем людям, которые территориально находятся в интересующем вас регионе. Допустим, вы рекламируете сеть супермаркетов. Если не настроить геотаргетинг, ваши объявления смогут видеть пользователи по всему миру. В результате вы будете получать (и оплачивать из своего рекламного бюджета) клики из стран, где у вас нет магазинов. Чтобы этого избежать, необходимо задать таргетинг кампании только на те регионы, которые вы обслуживаете. Так вы не только избежите бесполезных кликов, но и сможете охватить местных клиентов, ищущих супермаркет неподалеку о.

С помощью AdWords API таргетинг можно настраивать на страны, регионы, а также произвольные области вокруг определенной точки на карте. Далее мы подробно рассмотрим каждый из этих вариантов. Если вы не пользовались функцией геотаргетинга в AdWords, рекомендуем для начала прочитать эту статью.

Геотаргетинг на регион

AdWords API позволяет настроить таргетинг кампании на регион: Это может быть любой географический регион, для которого AdWords поддерживает геотаргетинг: страна, область, город или даже район действия почтового индекса. Каждое местоположение определяется уникальным идентификатором Criterion.

Целевые местоположения можно добавлять в кампанию с помощью службы CampaignTargetingService. В этом примере таргетинг кампании настраивается на Калифорнию (США) и Мексику.

// Задайте местоположения. Их идентификаторы можно найти в документации или
// получить с помощью службы LocationCriterionService.
Location california = new Location();
california.setId(21137L);
Location mexico = new Location();
mexico.setId(2484L);

List operations = new ArrayList();
for (Criterion criterion : new Criterion[] {california, mexico}) {
  CampaignCriterionOperation operation = new CampaignCriterionOperation();
  CampaignCriterion campaignCriterion = new CampaignCriterion();
  campaignCriterion.setCampaignId(campaignId);
  campaignCriterion.setCriterion(criterion);
  operation.setOperand(campaignCriterion);
  operation.setOperator(Operator.ADD);
  operations.add(operation);
}

CampaignCriterionReturnValue result = campaignCriterionService.mutate(operations
   .toArray(new CampaignCriterionOperation[operations.size()]));

Как показано выше, необходимо создать объект Location для каждого целевого региона и добавить их с помощью CampaignCriteronService.mutate. 21137 – код Калифорнии, а 2484 – Мексики.

Со временем некоторые критерии объекта Location в силу различных причин могут выходить из употребления. Например, местоположение было разбито на более мелкие объекты (или, наоборот, вошло в состав более крупных), произошли геополитические изменения и т. п. В поле targetingStatus можно просмотреть статус объекта (ACTIVE – "Активно", OBSOLETE – "Устарело" или PHASING_OUT – "Ликвидируется"). Подробнее читайте в нашем блоге.

Как найти код региона

Итак, чтобы настроить таргетинг на регион, необходимо создать объект Location с кодом региона. Идентификатор критерия для местоположения можно найти с помощью службы LocationCriterionService. Далее приведен пример поиска по названию местоположения.

String[] locationNames = new String[] {"Quebec"};

Selector selector = new Selector();
selector.setFields(new String[] {"Id", "LocationName", "CanonicalName", "DisplayType",
   "ParentLocations", "Reach"});

selector.setPredicates(new Predicate[] {
  // Названия местоположений должны полностью совпадать,
  // поддерживаются только операторы EQUALS и IN.
  new Predicate("LocationName", PredicateOperator.IN, locationNames),
  // Выбор языка возвращенных местоположений.
  new Predicate("Locale", PredicateOperator.EQUALS, new String[] {"en"})
});

// Запрос get.
LocationCriterion[] locationCriteria = locationCriterionService.get(selector);

// Показ критериев.
for (LocationCriterion locationCriterion : locationCriteria) {
 String parentString =
     getParentLocationString(locationCriterion.getLocation().getParentLocations());
 System.out.printf("Поиск по слову '%s' вернул местоположение '%s (%d)' типа '%s' "
     + "с родительскими местоположениями '%s' и охватом '%d'.\n",
    locationCriterion.getSearchTerm(),
    locationCriterion.getLocation().getLocationName(),
    locationCriterion.getLocation().getId(),
    locationCriterion.getLocation().getDisplayType(), parentString,
    locationCriterion.getReach());
}

/**
  * Вспомогательная функция для форматирования сообщения
  *
  * Принимает список родительских местоположений.
  * Возвращает отформатированный список.
  */
 public static String getParentLocationString(Location[] parents) {
   StringBuilder sb = new StringBuilder();
   if (parents != null) {
     for (Location parent : parents) {
       if (sb.length() > 0) {
         sb.append(", ");
       }
       sb.append(String.format("%s (%s)", parent.getLocationName(),
           parent.getDisplayType()));
     }
   } else {
     sb.append("н/д");
   }
   return sb.toString();
 }

В результате выполнения этого кода мы получим следующие результаты:

Поиск по слову 'Quebec' вернул местоположение 'Quebec'(20123) типа 'Province
' с родительскими местоположениями 'Canada (Country)' и охватом '5070000'.
Поиск по слову 'Quebec' вернул местоположение 'Quebec City'(1002624) типа 'C
ity' с родительскими местоположениями 'Quebec (Province), Canada (Country), ' и охватом '35
6000'.

Теперь вы можете настроить таргетинг на провинцию Квебек (код местоположения 20123) и на город Квебек (код 1002624).

LocationCriterionService также позволяет запросить родительское местоположение. Для этого к списку полей селектора добавляется ParentLocations. Так, приведенный выше код возвратил местоположение (город Квебек) и его родительский объект (Канада). Эта функция очень полезна, если вы хотите показывать своим потенциальным клиентам иерархический список местоположений либо включить/исключить определенные местоположения из таргетинга кампании.

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

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

Геотаргетинг на прилегающие области

Таргетинг на местоположения обладает высокой эффективностью, однако иногда требуется ещё большая точность – например, если вы хотите показывать рекламу только в радиусе 10 километров от супермаркета. В таких случаях вам подойдет таргетинг на прилегающие области. Код тот же самый, только вместо объекта Location вы создаете объект Proximity:

Proximity proximity = new Proximity();
proximity.geoPoint = myGeoPoint;
proximity.radiusDistanceUnits = ProximityDistanceUnits.KILOMETERS;
proximity.radiusInUnits = 10;

Как узнать координаты адреса

Чтобы использовать объект Proximity, необходимо определить координаты точки, вокруг которой вы задаете радиус таргетинга. Узнать координаты адреса можно с помощью службы GeoLocationService:

GeoLocationServiceInterface geoLocationService =
    new AdWordsServices().get(session, GeoLocationServiceInterface.class);

// Поиск координат для адреса 38 avenue de l'Opéra, 75002 Paris, FR.
Address address = new Address();
address.setStreetAddress("38 avenue de l'Opéra");
address.setCityName("Paris");
address.setPostalCode("75002");
address.setCountryCode("FR");

// Создание селектора GeoLocationSelector.
GeoLocationSelector selector = new GeoLocationSelector();
selector.setAddresses(new Address[] {address});

// Получение координат.
GeoLocation[] geoLocationResult = geoLocationService.get(selector);
GeoPoint geoPoint = geoLocationResult[0].getGeoPoint();

Как и в случае с LocationCriterionService, при таргетинге на большое количество адресов лучше всего сохранить их координаты в локальную базу данных, вместо того чтобы искать их с помощью GeoLocationService.

Геотаргетинг на области-многоугольники

Раньше таргетинг кампаний AdWords можно было настраивать на области-многоугольники. Однако этот способ был упразднен, и вместо него теперь используется таргетинг на прилегающие области. Таким образом, добавить область-многоугольник с помощью AdWords API больше нельзя. Однако вы можете встретить такие области, если получаете географические цели для существующей кампании, в которой они были заданы ранее. Их можно удалить, используя AdWords API.

Извлечение целевых местоположений

Извлечь критерии геотаргетинга кампании позволяет метод CampaignCriterionService.get. Результаты можно отфильтровать по параметру CriteriaType, чтобы оставить только цели для объекта Location, а также использовать разбиение на страницы, чтобы ограничить количество полученных целей. Пример:

int offset = 0;

// Создание селектора.
Selector selector = new Selector();
selector.setFields(new String[] {"CampaignId", "Id", "CriteriaType", "LocationName"});
selector.setOrdering(new OrderBy[] {new OrderBy("Name", SortOrder.ASCENDING)});
selector.setPredicates(new Predicate[] {new Predicate("CriteriaType",
    PredicateOperator.EQUALS, new String[] {"LOCATION"})});
selector.setPaging(new Paging(offset, PAGE_SIZE));
CampaignCriterionPage page = null;
do {
  page = campaignCriterionService.get(selector);

  if (page.getEntries() != null) {
    // Медийные кампании.
    for (CampaignCriterion campaignCriterion : page.getEntries()) {
      System.out.printf("Обнаружен критерий. Идентификатор кампании: '%s', идентификатор критерия: '%s', "
          + "тип '%s'.\n", campaignCriterion.getCampaignId(),
        campaignCriterion.getCriterion().getId(),
        campaignCriterion.getCriterion().getCriterionType());
    }
    Thread.sleep(1000);
  } else {
    System.out.println("Критерии не обнаружены.");
  }
  offset += PAGE_SIZE;
  selector.getPaging().setStartIndex(offset);
} while (offset < page.getTotalNumEntries());

Обратите внимание: если в кампании настроен таргетинг на все страны и регионы, вы получите пустой список целей Location.

Обновление целевых местоположений

Чтобы обновить целевые местоположения кампании, необходимо получить их текущий список и сравнить его со списком новых. Затем можно удалить ненужные местоположения с помощью оператора REMOVE и добавить те, которых ещё нет в кампании, используя оператор ADD. Раньше в AdWords API можно было перезаписать целевые местоположения, применив оператор SET. Однако теперь эта возможность больше не поддерживается, поэтому единственный оставшийся вариант – это комбинация REMOVE и ADD.

Исключение местоположений

AdWords API позволяет исключать нежелательные регионы из геотаргетинга. Особенно эта функция полезна, если нужно охватить определенный регион, исключив его подрегион (например, охватить Россию, но исключить Москву). Для этого необходимо создать объект NegativeCampaignCriterion с минус-критерием.

// Добавление географической минус-цели.
NegativeCampaignCriterion negativeCriterion = new NegativeCampaignCriterion();
negativeCriterion.campaignId = campaignId;
negativeCriterion.criterion = locationToExclude;

Дополнительные настройки геотаргетинга

AdWords позволяет настраивать геотаргетинг объявлений на местонахождение пользователей или на интересующие их местоположения. Приведем пример. Допустим, вы рекламируете цветочный магазин и настроили таргетинг объявлений только на Москву. Также предположим, что в этой кампании есть ключевое слово "цветы". Если пользователь, проживающий в Калуге, будет искать "цветы в Москве", то Калуга будет местонахождением пользователя, а Москва – интересующим его местонахождением.

Чтобы настроить геотаргетинг объявлений по местонахождению пользователя или интересующему местоположению или обоим этим параметрам, добавьте параметр GeoTargetTypeSetting. Подробнее о нем читайте в нашем блоге.

Отчеты по эффективности геотаргетинга

Анализировать эффективность геотаргетинга кампаний можно с помощью отчетов. AdWords API предлагает для этого два типа отчетов:

  1. Отчет по эффективности на основе географических данных.
  2. Отчет по критериям. Чтобы получить данные по эффективности определенного целевого местоположения, выполните фильтрацию по типу критерия (CriteriaType=LOCATION или PROXIMITY).

Подробнее о создании отчетов в AdWords API можно узнать из этого руководства.

Оставить отзыв о...

Текущей странице
Нужна помощь? Обратитесь в службу поддержки.