×

Бесплатный онлайн-марафон «Рассылки для малого бизнеса» Четверг, 13 декабря

Использование web push API доступно только для обладателей платных аккаунтов SendPulse . 

 

Получить список отправленных push кампаний

Для просмотра списка отправленных push кампаний отправляется GET запрос по ссылке

https://api.sendpulse.com/push/tasks

Параметры запроса:

limit количество записей которое нужно взять 
offset смещение
from дата начала выбранного промежутка
to дата окончания промежутка
website_id  ID сайта, для которого запрашивается статистика

*Указывайте даты в формате YYYY-mm-dd H:i:s
Ограничение на количество получаемых записей в ответ - до 100 за раз. Для получения списков необходимо использовать параметр offset для смещения по результатам.

Пример URL запроса (вывести 10 записей, начиная со второй):

https://api.sendpulse.com/push/tasks/?limit=10&offset=2

Пример ответа:

[
  {
    "id": "121",
    "title": "push title",
    "body": "push text",
    "website_id": "53",
    "from": "2015-11-17 14:44:47",
    "to": "2015-12-23 19:42:27",
    "status": "13"
  }
]
 

Получить общее количество сайтов

Для просмотра общего количества сайтов отправляется GET запрос по ссылке

https://api.sendpulse.com/push/websites/total

Пример ответа:

{
  "total": 2
}
 

Получить список сайтов

Чтобы получить список сайтов, нужно отправить GET запрос по ссылке

https://api.sendpulse.com/push/websites/

Параметры запроса:

limit количество записей которое нужно взять
offset смещение

Ограничение на количество получаемых записей в ответ - до 100 за раз. Для получения списков необходимо использовать параметр offset для смещения по результатам.

Пример URL запроса при передаче дополнительных параметров:

https://api.sendpulse.com/push/websites/?limit=10&offset=2

Пример ответа:

[
  {
    "id": "53",
    "url": "www.test-site.com",
    "add_date": "2015-11-23 14:42:37",
    "status": "1"
  }
]
 

Получить список переменных для сайта

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

https://api.sendpulse.com/push/websites/{id}/variables

Параметры запроса:

id идентификатор сайта

Пример ответа:

[
  {
    "id": "97",
    "name": "uname",
    "type": "string"
  }
]
 

Получить список подписчиков сайта

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

https://api.sendpulse.com/push/websites/{id}/subscriptions

Параметры запроса:

id идентификатор сайта (обязательный)
limit количество записей которое нужно взять
offset смещение
 subscription_date_from фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (Пример: "2018-03-11")
subscription_date_to фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (Пример: "2018-03-11")

Ограничение на количество получаемых записей в ответ - до 100 за раз. Для получения списков необходимо использовать параметр offset для смещения по результатам.

Пример URL запроса при передаче дополнительных параметров:

https://api.sendpulse.com/push/websites/37731/subscriptions/?subscription_date_from%3D2018-09-04%2001%3A54%3A00%26subscription_date_to%3D2018-09-04%2017%3A00%3A00

Пример ответа:

[
    {
        "id": 311003743,
        "browser": "Firefox",
        "lang": "en",
        "os": "Linux",
        "country_code": "UA",
        "city": "Dnipro",
        "variables": [],
        "subscription_date": "2018-08-13 14:27:11",
        "status": 1
    },
    {
        "id": 311008277,
        "browser": "Opera",
        "lang": "en",
        "os": "Linux",
        "country_code": "UA",
        "city": "Dnipro",
        "variables": [],
        "subscription_date": "2018-08-13 14:33:51",
        "status": 1
    }
]

Possible push subscrber's statuses

0 deactivated
1 active
6 unsubscribed
 

Получить количество подписчиков сайта

Чтобы получить общее число подписчиков для сайта, нужно отправить GET запрос по ссылке

https://api.sendpulse.com/push/websites/{id}/subscriptions/total

Параметры запроса:

id идентификатор сайта (обязательный)

Пример ответа:

{
  "total": 2
}
 

Получить информацию по сайту

Нужно сделать GET запрос по ссылке

https://api.sendpulse.com/push/websites/info/{id} 

Параметры запроса:

id идентификатор сайта

Пример ответа:

{
    "id": 111111,
    "url": "yoursite.com",
    "status": "active",
    "icon": "https://login.sendpulse.com/img/my/push/push-default-icons/icon.png",
    "add_date": "2017-11-09 13:08:37",
    "total_subscribers": 1081,
    "unsubscribed": 30,
    "subscribers_today": 10,
    "active_subscribers": 1051
}

Получить JS код для сайта

Нужно сделать GET запрос по ссылке

https://api.sendpulse.com/push/websites/{id}/code 

Параметры запроса:

id идентификатор сайта
 

Активировать/Деактивировать подписчика

Для того, чтобы активировать или деактивировать подписчика, нужно отправить POST запрос по ссылке

https://api.sendpulse.com/push/subscriptions/state

Параметры запроса (обязательные):

id идентификатор подписчика
state тригер переключения состояния подписчика, 1 – активен, 0 – деактивирован

Пример ответа:

{
  "result": true
}
 

Создать новую push-рассылку

Чтобы создать новую push-рассылку, нужно отправить POST запрос по ссылке

https://api.sendpulse.com/push/tasks

При этом ограничение по отправке push-уведомлений для сайта — 1 сообщение в 15 минут.

Для триггерных рассылок push-уведомлений используйте наш функционал Automation360.

Обязательные параметры запроса:

title заголовок
website_id идентификатор сайта
body тело рассылки
ttl время жизни push рассылки

Необязательные параметры запроса:

link ссылка для перехода, если не указана будет взята ссылка сайта
filter_lang фильтрация подписчиков по языку (пример ru)
filter_browser фильтрация по браузеру, может принимать несколько значений разделенных запятой (пример – Chrome,Safari)
filter_region фильтр по региону, принимает JSON строку с перечнем кодов стран, пример (["UA"])
filter_url  фильтр по ссылке, принимает JSON строку вида {"type":"include","search":"pu"} type может иметь три значения - 'direct', 'include', 'exclude' если type равен 'direct' - search является массивом ссылок, в противномм случае - search является обычной строкой для поиска
filter_subscription_date_from фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (Пример: "2018-03-11")
filter_subscription_date_to фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (Пример: "2018-03-11")
filter сегментация по одной из переменных
stretch_time время, в течение которого рассылается push-рассылка. Указывается в секундах. Если не указано, используется время по умолчанию (5 часов).
send_date запланировать рассылку на конкретную дату на конкретное время: Y-m-d H:i:s (пример 2020-09-11 16:19:10)
buttons добавление кнопок к пуш рассылке, примает JSON строку с перечнем кнопок и их значений, пример - [{"text":"Button1","link":"link1"}] кнопок не может быть больше двух
image

для вставки большого изображения в пуш-уведомление параметр "image" должен содержать JSON строку вида {"name":"test.jpg","data":"file_content"}, где "test.jpg" - имя изображения, а "file_content" - base64_encode(содержимое файла), которое, например в PHP, можно получить через "file_get_contents";

*изображение должно быть файлом JPG, PNG, GIF до 200KB

icon

для вставки пользовательской картинки стандартного размера, данный параметр должен содержать строку json такого вида {"name":"icon.jpg","data":"base64_file_content"}
где "icon.jpg" — имя изображения, а "base64_file_content" — его содержимое

Пример структуры параметра filter:

{
  "variable_name": "uname",
  "operator": "or",
  "conditions": [
    {
      "condition": "likewith",
      "value": "a"
    },
    {
      "condition": "notequal",
      "value": "b"
    }
  ]
}

где:

variable_name имя переменной
operator соединяющий оператор, может принимать значения только or или and
conditions массив условий
condition может принимать следующие значения
equal полностью равно
notequal полностью не равно
greaterthan больше чем
lessthan меньше чем
startwith начинается с
endwith заканчивается этим значением
likewith содержит в себе
notlikewith не содержит в себе

Пример ответа сервера при успешном создании кампании:

{
  "result": true,
  "id": 1
}
 

Статистика по отправленным рассылкам

Чтобы получить статистику по отправленным web push рассылкам, нужно отправить GET запрос по ссылке

https://api.sendpulse.com/push/tasks/{id}

Параметры запроса:

id id push рассыки

Пример ответа сервера при успешном получении статистики:

{
"id": "36",
"message": {
"title": "s",
"text": "s",
"link": "http://aaa.aaa" 
},
"website": "www.google.com",
"website_id": 53,
"status": 3,
"send": "21",
"delivered": "14",
"redirect": "13" 
}
 

Таблица статусов кампании:

Код статуса Описание статуса
0 Новая рассылка
2 Отправляется
3 Рассылка отправлена
8 Тестовая кампания отправлена
12 Нет активных получателей
13 Кампания в процессе создания — копирование подписок
15 Кампания ожидает итога A/B тестирования
16 Кампания отменена пользователем
30 В архиве