В этом документе рассказывается, как получать аналитику по сообщениям, перепискам и шаблонам, например количество сообщений, отправленных с номера телефона компании, количество переписок и их стоимость для аккаунта WhatsApp Business и количество прочтений определенного шаблона.
Ответы содержат только метрики для номеров телефонов компании и шаблонов, связанных с вашим аккаунтом WhatsApp Business на момент запроса.
Для получения аналитики используйте конечную точку аккаунта WhatsApp Business.
GET /<WHATSAPP_BUSINESS_ACCOUNT_ID> ?fields=<FIELDS>.<FILTERING_PARAMETER>
Заполнитель | Описание | Пример значения |
---|---|---|
| Обязательный параметр. Метрика. Может иметь следующие значения: |
|
| Обязательный параметр. Метрический параметр фильтрации. Примените дополнительные параметры фильтрации с использованием точек. Возможные значения см. в следующих разделах: |
|
Поле analytics
содержит количество и тип сообщений, отправленных и доставленных номерами телефонов, связанными с определенным аккаунтом WhatsApp Business. Метрики переписок см. в разделе Аналитика переписок. При вызове /{whatsapp-business-account-ID}?fields=analytics.{filtering-parameters}
можно добавить перечисленные ниже параметры.
Имя | Описание (нажмите стрелку в столбце слева, чтобы открыть список поддерживаемых вариантов). |
---|---|
Тип: метка времени UNIX | Обязательный параметр. Начальная дата диапазона, для которого нужно получить данные аналитики. |
Тип: метка времени UNIX | Обязательный параметр. Конечная дата диапазона, для которого нужно получить данные аналитики. |
Тип: строка | Обязательный параметр. Частота получения данных аналитики (детализация). |
Тип: массив | Необязательный параметр. Массив номеров телефонов, для которых нужно получить данные аналитики. Если массив не указан, будет возвращена аналитика для всех номеров телефонов, связанных с аккаунтом WhatsApp Business. |
Тип: массив | Необязательный параметр. Типы сообщений (уведомления, сообщения службы поддержки клиентов), для которых нужно получить данные об уведомлениях. Задайте массив и укажите |
Тип: массив | Необязательный параметр. Страны, для которых нужно получить данные аналитики. Укажите массив с двухбуквенными кодами стран. Если массив не указан, будет возвращена аналитика для всех стран, с которыми вы взаимодействовали. |
Сценарий. Вам необходимо получить количество отправленных и доставленных сообщений для всех номеров телефонов, связанных с аккаунтом WhatsApp Business.
Предлагаемое решение. Составьте вызываемый URL и добавьте следующие параметры фильтрации: start
, end
, granularity
. Затем отправьте на этот URL запрос GET
:
curl -i -X GET \
"https://graph.facebook.com/v19.0
/{whatsapp-business-account-ID}
?fields=analytics
.start(1543543200)
.end(1544148000)
.granularity(DAY)
&access_token={access-token}"
Успешный ответ вернет объект analytics
с запрошенными данными:
{ "analytics": { "phone_numbers": [ "16505550111", "16505550112", "16505550113" ], "country_codes": [ "US", "BR" ], "granularity": "DAY", "data_points": [ { "start": 1543543200, "end": 1543629600, "sent": 196093, "delivered": 179715 }, { "start": 1543629600, "end": 1543716000, "sent": 147649, "delivered": 139032 }, { "start": 1543716000, "end": 1543802400, "sent": 61988, "delivered": 58830 }, { "start": 1543802400, "end": 1543888800, "sent": 132465, "delivered": 124392 } # more data points ] }, "id": "102290129340398" }
Поле conversation_analytics
содержит информацию о затратах и переписках для определенного аккаунта WhatsApp Business. При вызове /{whatsapp-business-account-ID}?fields=conversation_analytics.{filtering-parameters}
можно добавить перечисленные ниже параметры.
Имя | Описание (нажмите стрелку в столбце слева, чтобы открыть список поддерживаемых вариантов). |
---|---|
Тип: метка времени UNIX | Обязательный параметр. Начальная дата диапазона, для которого нужно получить данные аналитики. |
Тип: метка времени UNIX | Обязательный параметр. Конечная дата диапазона, для которого нужно получить данные аналитики. |
Тип: строка | Обязательный параметр. Частота получения данных аналитики (детализация). |
Тип: массив | Необязательный параметр. Массив номеров телефонов, для которых нужно получить данные аналитики. Если массив не указан, будет возвращена аналитика для всех номеров телефонов, связанных с аккаунтом WhatsApp Business. |
| Необязательный параметр. Список метрик, которые необходимо получить. Если вы отправите пустой список, будут возвращены результаты для всех типов метрик. |
| Необязательный параметр. Список категорий переписок. Если вы отправите пустой список, будут возвращены результаты для всех категорий переписок. |
| Необязательный параметр. Список типов переписок. Если вы отправите пустой список, будут возвращены результаты для всех типов переписок. |
| Необязательный параметр. Список направлений переписок. Если вы отправите пустой список, будут возвращены результаты для всех типов направлений. |
| Необязательный параметр. Список разбивок, которые необходимо применить к метрикам. Если вы отправите пустой список, будут возвращены результаты без разбивок. |
Данные аналитики являются приблизительными и могут отличаться от указанных в счете на оплату из-за незначительных погрешностей, которые возникают в ходе их обработки.
Для заданного диапазона времени можно получить информацию о переписках и расходах, связанную с аккаунтом WhatsApp Business. При желании результаты можно отфильтровать и разбить. Примеры кода см. ниже.
Сценарий. Для заданного месяца необходимо получить информацию обо всех переписках и расходах для всех номеров телефонов, связанных с аккаунтом WhatsApp Business.
Предлагаемое решение. Составьте вызываемый URL и добавьте следующие параметры фильтрации:
start
— начало временного диапазона. В этом случае это начало месяца, за который необходимо получить метрики.end
— конец диапазона времени. В этом случае это конец месяца, за который необходимо получить метрики.granularity
: частота размещения точек данных (детализация). В этом примере используется значение MONTHLY
, поэтому каждая точка данных будет представлять данные за месяц.phone_numbers
— отправьте пустой массив, чтобы получить информацию для всех номеров телефонов, связанных с аккаунтом WhatsApp Business.dimensions
— задайте все доступные разбивки: "CONVERSATION_CATEGORY"
, "CONVERSATION_TYPE"
, "COUNTRY"
и "PHONE"
.В этом случае указывать параметры country_codes
, metric_types
, conversation_types
и conversation_categories
не нужно. Если вы не отправите данные для этих полей, будут возвращены все доступные варианты. Настроив URL, отправьте следующий запрос GET:
curl -i -X GET
"https://graph.facebook.com/v19.0
/{whatsapp-business-account-id}
?fields=conversation_analytics
.start(1685602800).end(1688194800)
.granularity(MONTHLY)
.phone_numbers([])
.dimensions(["CONVERSATION_CATEGORY","CONVERSATION_TYPE","COUNTRY","PHONE"])
&access_token={access-token}"
Успешный ответ вернет объект conversation_analytics
с запрошенными данными. В следующем примере аккаунт WhatsApp Business содержит только один номер телефона.
{ "conversation_analytics": { "data": [ { "data_points": [ { "start": 1685602800, "end": 1688194800, "conversation": 1558, "phone_number": "15550458206", "country": "US", "conversation_type": "REGULAR", "conversation_direction": "UNKNOWN", "conversation_category": "AUTHENTICATION", "cost": 15.58 }, { "start": 1685602800, "end": 1688194800, "conversation": 2636, "phone_number": "15550458206", "country": "US", "conversation_type": "REGULAR", "conversation_category": "MARKETING", "cost": 26.36 }, { "start": 1685602800, "end": 1688194800, "conversation": 2238, "phone_number": "15550458206", "country": "US", "conversation_type": "REGULAR", "conversation_category": "SERVICE", "cost": 22.38 }, { "start": 1685602800, "end": 1688194800, "conversation": 1782, "phone_number": "15550458206", "country": "US", "conversation_type": "REGULAR", "conversation_category": "UTILITY", "cost": 17.82 }, { "start": 1685602800, "end": 1688194800, "conversation": 1568, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_TIER", "conversation_category": "AUTHENTICATION", "cost": 15.68 }, { "start": 1685602800, "end": 1688194800, "conversation": 2716, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_TIER", "conversation_category": "MARKETING", "cost": 27.16 }, { "start": 1685602800, "end": 1688194800, "conversation": 2180, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_TIER", "conversation_category": "SERVICE", "cost": 21.8 }, { "start": 1685602800, "end": 1688194800, "conversation": 1465, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_TIER", "conversation_category": "UTILITY", "cost": 14.65 }, { "start": 1685602800, "end": 1688194800, "conversation": 1433, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_ENTRY_POINT", "conversation_category": "SERVICE", "cost": 14.33 } ] } ] }, "id": "102290129340398", }
Сценарий. Для заданного диапазона времени необходимо получить информацию обо всех переписках и расходах для определенного номера телефона, связанного с аккаунтом WhatsApp Business. В результатах необходимо использовать все возможные разбивки. Каждая точка данных должна представлять данные за полчаса.
Предлагаемое решение. Составьте вызываемый URL и добавьте следующие параметры фильтрации:
start
— начало временного диапазона. end
— конец временного диапазона.granularity
— частота размещения точек данных (детализация). В этом примере используется значение HALF_HOUR
, поэтому каждая точка данных будет представлять данные за полчаса.phone_numbers
— номер телефона, для которого нужна информация.dimensions
— задайте все доступные разбивки: CONVERSATION_CATEGORY
, CONVERSATION_TYPE
, COUNTRY
и PHONE
.В этом случае указывать параметры country_codes
, metric_types
, conversation_types
и conversation_categories
не нужно. Если вы не отправите данные для этих полей, будут возвращены все доступные варианты. Настроив URL, отправьте следующий запрос GET:
curl -i -X GET \
"https://graph.facebook.com/v19.0
/{whatsapp-business-account-id}
?fields=conversation_analytics
.start(1685602800)
.end(1685689200)
.granularity(HALF_HOUR)
.phone_numbers(["19195552584"])
.dimensions(["CONVERSATION_CATEGORY","CONVERSATION_TYPE","COUNTRY,PHONE"])
&access_token=your-access-token"
Успешный ответ вернет объект conversation_analytics
с запрошенными данными:
{ "conversation_analytics": { "data": [ { "data_points": [ { "start": 1685602800, "end": 1685604600, "conversation": 4, "phone_number": "19195552584", "country": "US", "conversation_type": "REGULAR", "conversation_direction": "UNKNOWN", "conversation_category": "SERVICE", "cost": 0.0232 }, { "start": 1685602800, "end": 1685604600, "conversation": 4, "phone_number": "19195552584", "country": "US", "conversation_type": "REGULAR", "conversation_direction": "UNKNOWN", "conversation_category": "MARKETING", "cost": 0.0232 }, # ... more data points ] } ] }, "id": "102290129340398" }
Сценарий. Для заданного диапазона времени необходимо получить информацию обо всех переписках и расходах для всех номеров телефонов, связанных с аккаунтом WhatsApp Business. Результаты необходимо разбить по типу переписки.
Предлагаемое решение: составьте вызываемый URL и добавьте следующие параметры фильтрации:
start
— начало временного диапазона. end
— конец временного диапазона.granularity
— частота размещения точек данных (детализация). В этом примере используется значение MONTHLY
, поэтому каждая точка данных будет представлять данные за месяц.phone_numbers
— отправьте пустой массив, чтобы получить информацию для всех номеров телефонов, связанных с аккаунтом WhatsApp Business.dimensions
— задайте значение CONVERSATION_TYPE
.В этом случае указывать параметры country_codes
, metric_types
, conversation_types
, conversation_directions
и conversation_categories
не нужно. Если вы не отправите данные для этих полей, будут возвращены все доступные варианты. Настроив URL, отправьте следующий запрос GET:
curl -i -X GET
"https://graph.facebook.com/v19.0
/{whatsapp-buiness-account-id}
?fields=conversation_analytics
.start(1643702400).end(1646121600)
.granularity(MONTHLY)
.phone_numbers([])
.dimensions([CONVERSATION_TYPE])
&access_token={access-token}"
В случае успеха будет возвращен объект conversation_analytics
с запрошенными данными:
{ "data": [ { "data_points": [ { "start": 1643702400, "end": 1646121600, "conversation": 8500, "conversation_type": "REGULAR", "cost": 88.1010 }, { "start": 1643702400, "end": 1646121600, "conversation”: 1000, "conversation_type": "FREE_TIER", "cost": 0.0000 } { "start": 1643702400, "end": 1646121600, "conversation”: 250, "conversation_type": "FREE_ENTRY_POINT", "cost": 0.0000 } ] } ] }
Запрос:
curl -i -X GET \
"https://graph.facebook.com/v19.0
/{whatsapp-buiness-account-id}
?fields=conversation_analytics
.start(1685527200)
.end(1685613600)
.granularity(HALF_HOUR)
.conversation_categories(["MARKETING","AUTHENTICATION"])
.dimensions(["CONVERSATION_CATEGORY"])
&access_token={access-token}"
Ответ:
{ "conversation_analytics": { "data": [ { "data_points": [ { "start": 1685529000, "end": 1685530800, "conversation": 2, "conversation_category": "AUTHENTICATION", "cost": 0.0128 }, { "start": 1685527200, "end": 1685529000, "conversation": 3, "conversation_category": "MARKETING", "cost": 0.0432 } ] } ] }, "id": "102290129340398" }
Запрос:
curl -i -X GET \
"https://graph.facebook.com/v19.0
/{whatsapp-buiness-account-id}
?fields=conversation_analytics
.start(1685527200)
.end(1685613600)
.granularity(HALF_HOUR)
.conversation_categories(["MARKETING","AUTHENTICATION"])
.dimensions(["CONVERSATION_CATEGORY","CONVERSATION_TYPE"])
&access_token={access-token}"
Ответ:
{ "conversation_analytics": { "data": [ { "data_points": [ { "start": 1685527200, "end": 1685529000, "conversation": 3, "conversation_type": "REGULAR", "conversation_category": "MARKETING", "cost": 0.0432 }, { "start": 1685529000, "end": 1685530800, "conversation": 2, "conversation_type": "REGULAR", "conversation_category": "AUTHENTICATION", "cost": 0.0128 } ] } ] }, "id": "102290129340398" }
Аналитика шаблонов содержит информацию о том, сколько раз шаблон был отправлен, доставлен и прочитан, а также сколько раз нажимались кнопки с URL или кнопки быстрого ответа в шаблоне.
Данные возвращаются с детализацией по дням в часовом поясе UTC максимум за последние 90 дней. Аналитику шаблонов также можно найти на панели WhatsApp Manager > Шаблоны сообщений > Сведения о шаблоне > Аналитика.
MARKETING
или UTILITY
.Чтобы сообщить об ошибках в аналитике шаблонов, отправьте уведомление в прямую поддержку со следующими значениями:
Чтобы иметь возможность получать аналитику шаблонов, вы сначала должны подтвердить такую аналитику в своем аккаунте WhatsApp Business. Аналитику шаблонов можно подтвердить с помощью WhatsApp Manager или API. Чтобы подтвердить с помощью API, отправьте следующий запрос:
POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>?is_enabled_for_insights=true
После подтверждения мы начнем фиксировать аналитику шаблонов для этого аккаунта WhatsApp Business. После подтверждения аналитику шаблонов нельзя отключить.
В случае успеха API предоставит ваш ID аккаунта WhatsApp Business. Пример:
{ "id": 102290129340398 }
Имя | Описание | Пример значения |
---|---|---|
Метка времени UNIX | Обязательный параметр. Начальная метка времени для того диапазона дат, для которого нужно получить данные аналитики. Так как аналитика шаблонов предоставляется с разбивкой по дням в часовом поясе UTC, начальная метка времени, отличная от 0:00 UTC, будет откорректирована в соответствии с ее предыдущим временем 0:00 UTC. |
|
Метка времени UNIX | Обязательный параметр. Конечная дата диапазона, для которого нужно получить данные аналитики. Так как аналитика шаблонов предоставляется с разбивкой по дням в часовом поясе UTC, конечная метка времени, отличная от 0:00 UTC, будет откорректирована в соответствии с ее следующим временем 0:00 UTC. |
|
Перечисление | Обязательный параметр. Частота получения данных аналитики. Поддерживаемые значения:
|
|
Массив ID | Обязательный параметр. Массив ID шаблонов, для которых необходимо получить данные аналитики. Не более 10. |
|
Массив перечислений | Необязательный параметр. Тип метрики, которую необходимо получить. Если массив не включен или указан пустым, будет предоставляться аналитика для всех типов метрики. Возможные значения:
Нажатия кнопок с URL и кнопок быстрого ответа возвращаются только для шаблонов категорий |
|
Сценарий: имея период 2 дня, получить всю доступную аналитику шаблонов для отдельного шаблона сообщений, связанного с аккаунтом WhatsApp Business.
Пример запроса:
curl -g 'https://graph.facebook.com/v19.0
/109259195336416/template_analytics?start=1689379200&end=1689552000&granularity=DAILY&metric_types=[%27SENT%27%2C%27DELIVERED%27%2C%27READ%27%2C%27CLICKED%27]&template_ids=[1924084211297547%2C954638012257287]' \
-H 'Authorization: Bearer EABN8...'
Пример ответа:
{ "data": [ { "granularity": "DAILY", "data_points": [ { "template_id": "1924084211297547", "start": 1689379200, "end": 1689465600, "sent": 0, "delivered": 0, "read": 0, "clicked": [ { "type": "quick_reply_button", "button_content": "Tell me more", "count": 3 }, { "type": "quick_reply_button", "button_content": "Get coupon", "count": 5 } ] }, { "template_id": "1924084211297547", "start": 1689465600, "end": 1689552000, "sent": 0, "delivered": 0, "read": 0, "clicked": [ { "type": "quick_reply_button", "button_content": "Tell me more", "count": 73 }, { "type": "quick_reply_button", "button_content": "Get coupon", "count": 35 } ] }, { "template_id": "954638012257287", "start": 1689379200, "end": 1689465600, "sent": 0, "delivered": 0, "read": 0, "clicked": [ { "type": "url_button", "button_content": "Visit Website", "count": 13 } ] }, { "template_id": "954638012257287", "start": 1689465600, "end": 1689552000, "sent": 0, "delivered": 0, "read": 0, "clicked": [ { "type": "url_button", "button_content": "Visit Website", "count": 12 } ] } ] } ], "paging": { "cursors": { "before": "MAZDZD", "after": "MjQZD" } } }
Чтобы отключить отслеживание нажатия кнопок в отдельном шаблоне, установите для поля cta_url_link_tracking_opted_out
в нем значение true
. После этого API перестанет возвращать свойство clicked в аналитике шаблона и показывать количество взаимодействий (нажатий) с кнопкой в WhatsApp Manager при просмотре аналитики шаблона.
POST /<TEMPLATE_ID> ?cta_url_link_tracking_opted_out=<OPT_OUT> &category=<TEMPLATE_CATEGORY>
Заполнитель | Описание | Пример значения |
---|---|---|
ID шаблона | Обязательный параметр. ID шаблона. |
|
Логическое значение | Обязательный параметр. Определяет, отключено ли отслеживание нажатия кнопок в шаблоне. Задайте значение При создании шаблона устанавливается значение |
|
Строка | Обязательный параметр. Текущая категория шаблона. Если вы зададите для шаблона категорию, отличную от текущей, шаблон перейдет в статус |
|
curl -X POST 'https://graph.facebook.com/v19.0
/245435364965041?cta_url_link_tracking_opted_out=true&category=marketing' \
-H 'Authorization: Bearer EAAJB...'
В случае успеха ответ API будет выглядеть так:
{ "success": true }
Список всех возможных значений для каждого поля можно найти в справке по Graph API для поля аналитики аккаунта WhatsApp Business.