Цель "Посещаемость точек"

Чтобы помочь вашей компании работать в условиях пандемии COVID-19, мы внесли в цель "Посещаемость точек" некоторые временные изменения. Подробнее….

Цель "Посещаемость точек" позволяет создавать рекламные кампании на Facebook для привлечения людей в физические точки и повышения продаж в них. Эту цель можно выбрать, если у вашей компании есть несколько точек и вы добавили их адреса на Facebook.

Подробнее о цели "Посещаемость точек" см. в Справочном центре по рекламе.

Места размещения

Поддерживаются версии Facebook для ПК и мобильных устройств (Лента, истории и Marketplace), а также Instagram (лента и истории).

Оптимизация показа

  • Оптимизация по охвату доступна всем рекламодателям, имеющим доступ к этому API. Оптимизация выполняется по дневному охвату среди уникальных пользователей. В отчетах Ads Manager по умолчанию отображается метрика Impressions.

Создание объявлений из каталога Advantage+

Чтобы создавать объявления из каталога Advantage+ для этой цели, страница должна использовать Точки на Facebook.

Требования

  • Для параметра objective кампаний должно быть задано значение STORE_VISITS.
  • Для параметра promoted_object кампаний должен быть задан ID соответствующей родительской страницы <PARENT_PAGE_ID>.
  • Параметры promoted_object и targeting группы объявлений должны содержать place_page_set_id из <PAGE_SET_ID>.
  • Для параметра optimization_goal группы объявлений должно быть задано значение REACH.
  • Для параметра billing_event группы объявлений должно быть задано значение IMPRESSIONS.

Шаг 1. Создайте PageSet.

Для таргетинга рекламы Facebook использует в объявлениях продвигаемый объект PageSet.

Создание PageSet:

  1. Соберите адреса точек — Страницы Facebook каждого магазина и местоположения вашей основной компании. Ваша основная компания — это главная страница.
  2. Создайте JSON-объект местоположений, в котором будут представлены адреса всех ваших точек.
  3. Создайте структуру PageSet с JSON-объектом местоположений.

Сбор адресов всех точек

<PARENT_PAGE_ID> — это ID главной страницы для адресов всех ваших точек. Этот параметр позволяет собрать страницы и адреса всех точек для главной страницы и получить для каждого адреса широту и долготу:

curl -X GET \
  -d 'fields="location{latitude,longitude},is_permanently_closed"' \
  -d 'limit=30000' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/{page-id}/locations

Пример вывода:

{
    "data": [
        {
            "location": {
                "latitude": 29.173384,
                "longitude": 48.098807
            },
            "is_permanently_closed": false,
            "id": "1788030244802584"
        },
        {
            "location": {
                "latitude": 29.303635,
                "longitude": 47.937725
            },
            "is_permanently_closed": false,
            "id": "261533444245300"
        },
        {
            "location": {
                "latitude": 29.302303,
                "longitude": 47.933178
            },
            "is_permanently_closed": false,
            "id": "179435399132774"
        },
        {
            "location": {
                "latitude": 29.302591,
                "longitude": 47.931801
            },
            "is_permanently_closed": false,
            "id": "1790317704582144"
        }
    ],
    "paging": {
        "cursors": {
            "before": "MTc4ODAzMDI0NDgwMjU4NAZDZD",
            "after": "MTA4MTU4NjU5NjA5MDA4"
        }
    }
}

Создание JSON-объекта местоположений

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

Определите приблизительный радиус, используя два запроса GET, чтобы получить параметры radius и distance_unit. Либо выполните пакетный вызов API, чтобы сгенерировать показанные ниже значения.

Отдельные запросы

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

curl -X GET \
  -d 'type="adradiussuggestion"' \
  -d 'latitude=51.5152253' \
  -d 'longitude=-0.1423029' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/search/

Пакетные запросы

Несколько запросов можно объединить в один.

curl \
  -F "access_token=<ACCESS_TOKEN>" \
  -F "include_headers=false" \
  -F "batch=[
    {
      \"method\": \"GET\",
      \"relative_url\": \"/<API_VERSION>/search?type=adradiussuggestion&amp;latitude=29.173384&amp;longitude=48.098807\"
    },
    {
      \"method\": \"GET\",
      \"relative_url\": \"/<API_VERSION>/search?type=adradiussuggestion&amp;latitude=29.303635&amp;longitude=47.937725\"
    }
  ]" \
  "https://graph.facebook.com"
Окончательная структура JSON-объекта местоположений

При создании этого JSON-объекта (он будет содержать окончательные местоположения точек) используйте параметры radius и distance_unit, полученные в предыдущих вызовах, а также значение <CHILD_LOCATION_ID> каждого местоположения для параметра page_id.

[
    {
      "page_id": 1788030244802584,
      "radius": 1,
      "distance_unit": "mile"
    },
    {
      "page_id": 261533444245300,
      "radius": 1,
      "distance_unit": "mile"
    }
]

Создание Pageset на основе JSON-объекта местоположений

Конечная точка PageSet пока доступна только партнерам из списка разрешенных. Чтобы получить доступ к этой возможности, обратитесь к своему представителю Facebook.

Теперь на основании данных из JSON-объекта местоположений можно создать группу страниц PageSet.

В объекте PageSet можно использовать до 10 000 адресов.

Асинхронные запросы

Для создания PageSet можно использовать асинхронный запрос. Так можно без задержек создавать большие группы страниц PageSets, содержащие более 1 000 местоположений. Мы рекомендуем использовать асинхронные запросы при создании объектов Pageset с более чем 50 местоположениями.

Запрос

curl -X POST \
  -d 'name=test_2' \
  -d 'parent_page=ID_1' \
  -d 'pages=[{\'page_id':ID_2}]' \
  -d 'metadata={"audience":{"size":5000}}' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ad_place_page_sets_async/

Примечание. Для синхронных запросов можно использовать /ad_place_page_sets, однако если количество местоположений превышает 50, следует использовать асинхронные запросы.

Используется тот же формат параметров, что и в асинхронных запросах.

В объекте PageSet с помощью metadata можно задать фиксированный радиус вокруг каждого местоположения для показа рекламы либо охватить аудиторию определенного размера. Во втором случае Facebook автоматически рассчитывает для каждого местоположения радиус, позволяющий охватить нужное количество аккаунтов из Центра аккаунтов.

В этом примере для поля metadata задан необходимый размер аудитории (audience), как описано ниже. См. информацию о параметре metadata для радиусов. В результате вы получите ID ad_place_page_set_async_request:

{
  "id": "405738580111111"
}      

По этому ID можно выполнить запрос с разрешением ads_read, чтобы получить ID PageSet:

curl -i -X GET \
 "https://graph.facebook.com/<API_VERSION>/405738580111111?access_token=ACCESS_TOKEN"

Ответ

{
  "id": "405738580111111", 
  "place_page_set": {
    "id": "555555791481678",
    "name": "test_2"
  },
  "progress": 1
}

Здесь progress принимает значение от 0.0 до 1, где 1 означает, что запрос выполнен и объект PageSet создан.

Использование metadata для радиусов

Поле metadata предписывает Facebook использовать определенный радиус вокруг каждого местоположения либо автоматически рассчитывать его для охвата аудитории определенного размера.

Пример

Так можно указать фиксированный радиус с помощью асинхронного запроса:

curl -X POST \
  -d 'name=test_2' \
  -d 'parent_page=238219010666666' \
  -d 'pages=[{\'page_id':405936056444444}]' \
  -d 'metadata={"fixed_radius":{"value":5,"distance_unit":"mile"}}' \
  -d 'access_token=ACCESS_TOKEN' \
  "https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ad_place_page_sets/"

Это означает, что Facebook будет показывать рекламу людям в радиусе пяти миль для всех местоположений, входящих в объект PageSet.

Ответ

 {
  "id": "1618547271777777"
}

Примечание. Для поля metadata должно быть задано значение fixed_radius или audience.

Для варианта fixed_radius также нужно указать параметры distance_unit и value:

{
  "fixed_radius": {
     "distance_unit": "<distance_unit>"
     "value": <distance>
  }
}

Для варианта audience нужно указать параметр size, а параметр max_radius необязателен:

 {
  "audience": {
     "size": <audience size>
     "max_radius": { // optional
       "distance_unit": "<distance_unit>"
       "value": <distance>
     }
  }
}

Рекомендации по использованию объекта metadata

  • Необходимо также предоставить местоположения (locations), однако указывать в них радиус не нужно. Если же вы используете параметр locations и указываете значения радиусов, не указывайте их ещё и в объекте metadata.
  • Параметр distance_unit указывается в милях (mile) или километрах (kilometer). Значение value должно быть в диапазоне от 0.7 до 50 (для варианта mile) или от 1 до 80 (для варианта kilometer).
  • Параметр size в объекте audience определяет количество аккаунтов из Центра аккаунтов в определенном радиусе, который может составлять от 1 до 80 километров. Если задан параметр max_radius, рассчитанное нами значение радиуса будет находиться в диапазоне от 1 до max_radius.
  • Если для объекта metadata указан параметр audience, запрос нужно отправлять на асинхронную конечную точку ad_account_ID/ad_place_page_set_async.

Синхронные запросы

Для создания группы страниц PageSet можно использовать и синхронные запросы.

curl -X POST \
  -d "name=My Grand Pageset" \
  -d "parent_page=<PARENT_PAGE_ID>" \
  -d "pages=<LOCATIONS_JSON_STRUCTURE>" \
  -d "access_token=<ACCESS_TOKEN>" \
 https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ad_place_page_sets

В результате вы получите ID PageSet, который можно использовать позже.

{
  "id": <PAGE_SET_ID>
}

Если страниц слишком много для вызова через cURL, можно создать текстовый файл с JSON-объектом местоположений и передать его в атрибуте pages с флагом -F "pages=&lt;locations_json_structure.txt".

Шаг 2. Создайте кампанию.

Создайте кампанию с целью STORE_VISITS и ID главной страницы в качестве продвигаемого объекта.

См. справку по рекламным кампаниям.

Шаг 3. Создайте группу объявлений.

Создайте группу объявлений, которая будет содержать вашу рекламу. См. справку по группам объявлений, справку по параметрам таргетинга и справку по Страницам мест.

При показе Facebook считает недействительным все местоположения таргетинга рекламы, удаленные более чем на 50 миль от местоположения ближайшей страницы (локальной страницы).

curl \
  -F 'name=Store Visits Ad Set' \
  -F 'promoted_object={"place_page_set_id":"<PAGE_SET_ID>"}' \
  -F 'optimization_goal=STORE_VISITS' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'is_autobid=true' \
  -F 'daily_budget=1000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F "targeting={
    'place_page_set_ids': ['<PAGE_SET_ID>'],
    'device_platforms': ['mobile','desktop'],
    'facebook_positions': ['feed']
   }" \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adsets

Географический таргетинг

В кампаниях с целью "Посещаемость точек" также можно выполнять таргетинг по параметрам geo_locations.

Примечание. Для этой цели в таргетинге группы объявлений можно использовать только geo_locationsилиplace_page_set_ids.

Мы поддерживаем все виды таргетинга по параметру geo_location в рамках расширенного таргетинга и мест размещения, в том числе таргетинг по странам, городам и почтовым индексам. Также можно выбирать типы местоположений (location_types), такие как recent, home и travel_in.

В продвигаемом объекте promoted_object по-прежнему нужно указывать ID группы Страниц place_page_set_id. Параметр PageSetдолжен представлять группу страниц без явно заданной группы местоположений. Инструкции по созданию объекта PageSet см. в статье Создание группы страниц с использованием JSON-объекта местоположений. При этом передавать параметр pages не нужно.

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

curl -X POST \
  -d "name=My geo targeting page set" \
  -d "parent_page=<PARENT_PAGE_ID>" \
  -d "access_token=<ACCESS_TOKEN>" \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ad_place_page_sets/

Примечание. Передавать параметр pages не нужно.

Затем создайте группу страниц с целью "Посещаемость точек" и таргетингом по geo_locations:

curl \
  -F 'name=Store Traffic Ad Set' \
  -F 'promoted_object={"place_page_set_id":"<PAGE_SET_ID>"}' \
  -F 'optimization_goal=STORE_VISITS' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'is_autobid=true' \
  -F 'daily_budget=1000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F "targeting={
    'geo_locations': {"countries":["US"],"location_types": ["home"]}, 
    'device_platforms': ['mobile','desktop'],
    'facebook_positions': ['feed']
  }" \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adsets

Мы автоматически показываем рекламу магазина, расположенного ближе всего к человеку, который ее просматривает.

Шаг 4. Предоставьте рекламный креатив.

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

Доступные заполнители:

  • {{page.hours.today}}
  • {{page.location.city}}
  • {{page.location.region}}
  • {{page.location.postcode}}
  • {{page.location.street_address}}
  • {{page.name}}
  • {{page.phone_number}}

С помощью поля dynamic_ad_voice можно демонстрировать рекламу от лица той или иной страницы:

  • если для параметра dynamic_ad_voice задано значение DYNAMIC, в качестве названия Страницы и фото профиля в рекламную публикацию подставляются данные со страницы ближайшего магазина;
  • если для параметра dynamic_ad_voice задано значение STORY_OWNER, в качестве названия страницы и фото профиля в рекламную публикацию подставляются данные главной Страницы.

Призыв к действию

Вы также можете динамически добавлять кнопки призыва к действию в зависимости от местоположения пользователя:

  • Если используется параметр GET_DIRECTIONS или CALL_NOW, поле value призыва к действию не требуется. Пользователи автоматически направляются в ближайший магазин или получают предложение позвонить по его номеру телефона.
  • Параметр MESSAGE_PAGE допустим, только если для параметра dynamic_ad_voice установлено значение STORY_OWNER. Сообщения доставляются на главную Страницу.
  • Необязательное поле. Если оно не указано для отдельных объявлений, мы отображаем кнопку Like Page.

Подробнее см. в справке по рекламному креативу.

Тип dynamic_ad_voice Тип call_to_action

DYNAMIC

CALL_NOW


GET_DIRECTIONS

STORY_OWNER

CALL_NOW


GET_DIRECTIONS


LEARN_MORE


MESSAGE_PAGE


ORDER_NOW


SHOP_NOW

Примеры

Создание рекламного креатива с динамическим названием страницы и города:

curl \
  -F 'dynamic_ad_voice=DYNAMIC' \
  -F 'object_story_spec={ 
    "page_id": "<PARENT_PAGE_ID>", 
    "template_data": { 
      "description": "Ad Description", 
      "link": "<URL>", 
      "message": "Ad Message for {{page.location.city}}", 
      "name": "{{page.name}}", 
      "picture": "<IMAGE_URL>" 
    } 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives

Рекламный креатив с использованием карточки с картой

Чтобы использовать карточку с картой, добавьте в качестве вложения в поле child_attachments рекламного креатива структуру place_data.

В этом примере карта со ссылкой на локатор магазинов Facebook является вторым элементом в массиве child_attachments. Помимо карточки карты, необходимо предоставить по крайней мере один объект.

curl \
  -F 'dynamic_ad_voice=DYNAMIC' \
  -F 'object_story_spec={ 
    "page_id": "<PARENT_PAGE_ID>", 
    "template_data": { 
      "description": "Ad Description", 
      "link": "<URL>", 
      "message": "Ad Message for {{page.location.city}}", 
      "name": "{{page.name}}", 
      "child_attachments":[
        {
          "description": "Come visit us!",
          "link": "http://yourweburl.com",
          "name": "{{page.location.street_address}} - {{page.location.city}}",
          "call_to_action": {
            "type":"GET_DIRECTIONS"
          },
        },
        {
          "link": "https://fb.com/store_locator",
          "name": "Check out our stores.",
          "place_data": {
            "type":"DYNAMIC"
          },
        }
      ]
    } 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives

Локатор магазинов, место назначения ссылки

Если при создании рекламы для параметра link задано значение https://fb.com/store_locator, объявление отображается с локатором магазина в качестве места назначения ссылки.

Шаг 5. Создайте объявление.

Создайте рекламное объявление:

curl \
  -F 'name=My Ad' \
  -F 'adset_id=<AD_SET_ID>' \
  -F 'creative={"creative_id":"<CREATIVE_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ads

Чтобы создавать рекламу с целью "Посещаемость точек", ваша страница и рекламный аккаунт должны быть утверждены для измерения посещаемости точек. В противном случае вы увидите примерно следующую ошибку: Reach estimate isn't available because 'store_visits' isn't a valid action type.

Измерение посещаемости точек

Количество посещений точек — это прогнозируемая метрика на основании данных, поступающих от пользователей с включенными службами геолокации. Она позволяет измерять количество посещений и выполнять оптимизацию для цели "Посещаемость точек". Измерение посещаемости точек доступно только для кампаний с соответствующей целью.

Количество посещений точек рассчитывается на основании количества кликов и просмотров рекламы, для которой используется цель "Посещаемость точек". Это прогнозируемое количество посещений магазинов рекламодателя аккаунтами из Центра аккаунтов, которые видели их рекламу или нажимали ее. Вы можете настроить окно атрибуции, выбрав клики или просмотры за 1, 7 или 28 дней. Если конфигурация не настроена, применяется атрибуция рекламного аккаунта, действующая по умолчанию. См. раздел Окна атрибуции статьи об API Insights.

Эти функции связаны с отчетностью по следующим параметрам:

  • посещения точки — количество прогнозируемых посещений вашего магазина благодаря вашей рекламе;
  • стоимость посещения точки — средняя стоимость каждого прогнозируемого посещения ваших магазинов благодаря вашей рекламе.

Ads Manager

См. столбцы в разделе ENGAGEMENT: ACTIONS. Они отображаются в интерфейсе отчетов по посещениям точек и стоимости посещения точки.

Примечание. Данные о посещении точек доступны только для магазинов, которые команда Facebook считает пригодными для измерения показателей в рамках кампании.

API Insights

Данные о посещении точек можно получить через API Insights. Мы добавили дополнительные поля в общие вызовы для получения статистики: cost_per_store_visit_action и store_visit_actions. См. справку по статистике.

Параметры

ПолеОписание
point_estimate
int32

The point prediction of the value