Стоп-лист¶
Стоп-лист автоматически применяется при выпуске рассылок для исключения адресов отписавшихся от получения сообщений
Существует типа два записей стоп-листа:
-
владельца (owner) - вы им полностью управляете
-
подписчика (member) - вносит в него себя подписчик сам при отписке и вы не можете повлиять на имеющиеся там записи без заключения отдельного соглашения сверх небольшого месячного лимита.
Так же существует две зоны действия записей в Стоп-листе при отписке подписчика:
-
глобальная - действует по умолчанию - запись в стоп-листе исключает адресата из выпуска всегда
-
по отправителю - требуется заключение отдельного соглашения - запись в стоп-листе дополнительно содержит отправителя выпуска и исключает адресата из выпуска только если выпуск выходит с тем же отправителем
В стоп-листе для одного адресата может быть одновременно и глобальная запись отписки и записи отписки для разных отправителей для каждого типа (владельца и подписчика).
Вызовы будут завершаться ошибкой при попытке управлять стоп-листом подписчика без полученного разрешения.
Стоп-листом по отправителю можно управлять, но он игнорируется при выпуске если не получено разрешение.
Параметр вызовов type поддерживает для совместимости и старые обозначения типов стоп-листов
Стоп-лист по домену отправителя¶
Имеет смысл только для email.
Нет отдельного стоп-листа по домену, но можно использовать стоп-лист по отправителю как описано далее.
Если стоп-лист по отправителю включён и активировано, что использовать его как "по домену", то проверки на стоп-лист по отправителю будут положительными если есть в стоп-листе такой же или любой другой отправитель с точно таким же доменом.
Например, проверяем отправителя плохой@отправитель.рф - именно такого нет, но есть отписка от нехороший@отправитель.рф -> считается что в стоп-листе
Например, проверяем отправителя очень@плохой.отправитель.рф - именно такого нет, но есть отписка от нехороший@отправитель.рф -> не считается что в стоп-листе - домены разные, хоть одно и поддомен другого
В остальных местах типа "список стоп-листа" для конкретного подписчика всё остаётся как есть - возвращаются только те записи, что реально есть в стоп-листе
Это позволяет включать-выключать такой режим просто настройкой, по сравнению если бы в стоп-листе были бы записи именно про домен. Так же, записи именно про домен не отвечали бы на вопрос "а какой же всё же был отправитель при отписке"
Что бы адрес перестал отсееваться по домену надо удалить ВСЕ записи с таким доменом для этого адреса.
Чтение записей в стоп-листе владельца и подписчиков¶
Вместо этого вызова лучше использовать stat.uni - быстрее, гибче фильтры и можно сохранить результат в файл или прислать по почте
{
"action" : "stoplist.get"
,"type" : "тип стоп-листа" -- all, owner, member. по умолчанию all, но рекомендуется указывать это явно, иначе
-- при полном отсутствии параметра type вы получите ответ в старом формате для совместимости
,"sender" : "адрес отправителя" -- по умолчанию пусто - возвращаются записи глобального стоп-листа
-- дополнительно, список интересующих адресов
,"list" : [ -- отсутствие параметра - дать всех
"email-1"
,"email-2"
,"email-3"
,"email-4"
.....
]
}
ответ
Внести в стоп-лист¶
Внесение в стоп-лист означает только то, что указанный адрес/телефон будет автоматически исключаться из всех рассылок в которых он мог бы участвовать.
Но вся информация связанная с адресом/телефоном остаётся в базе.
Запрос с указанием списка по умолчанию синхронный.
Запрос с указанием группы по умолчанию асинхронный.
Асинхронные запросы возвращают номер трекера для отслеживания.
Одновременно может выполняться только два таких запроса.
При асинхронном запуске обработку можно прекратить вызовом track.set
Если активна настройка stoplist.owner_to_member, то все добавления в стоп-лист с type="owner" или type="all" проводятся как с type="member"
{
"action" : "stoplist.add"
,"type" : "тип стоп-листа" -- owner или member. по умолчанию owner
,"sender" : "адрес отправителя" -- по умолчанию пусто - вносятся записи в глобальный стоп-лист
или
,"sender" : ["адрес отправителя-1", "адрес отправителя-2","адрес отправителя-3"...]
-- указание подписчиков одним из способов
,"email" : "адрес или телефон" -- телефон в полном формате +7XXXYYYYYYY
или
,"list" : [
"адрес/телефон"
,"адрес/телефон"
........
]
,"sync" : 0|1 -- изменение синхронности запроса. по умолчанию 1 - синхронный
или
,"group" : код группы участники которой будут внесены в стоп-лист
,"sync" : 0|1 -- изменение синхронности запроса. по умолчанию 0 - асинхронный
или
,"group.filter" : [
фильтр отбора как у group.filter.set
]
,"sync" : 0|1 -- изменение синхронности запроса. по умолчанию 0 - асинхронный
или
,"url" : ссылка на файл со списком адресов. по одному на строке. возможно сжатие zip.
,"sync" : 0|1 -- изменение синхронности запроса. по умолчанию 0 - асинхронный
или
,"stat.uni" : { -- адреса для обработки получаются из запроса Универсальной Статистики
-- подразумевается unique = 1
"filter" : [ условие выборки как у запроса в вызове stat.uni ]
,"have" : [ не обязательно. условие отбора поле группировки в фильтре ]
,"cache" : [ настройки кэширования как у запроса в вызове stat.uni ]
,"select" : [ ... ] -- используйте только если не подходит значение по умолчанию [ "member.email" ]
}
,"sync" : 0|1 -- изменение синхронности запроса. по умолчанию 0 - асинхронный
,"track.info" : "дополнительная информация которая будет потом доступна в track.list/get" -- строка 1024 байта. не обязательно
}
ответ
{
<общие поля>
-- для асинхронного запроса
,"track.id" : номер -- номер асинхронного запроса для отслеживания с помощью track.*
-- для синхронного запроса
,"list" : {
"адрес-1" : 0|1|кодошибки -- результат внесения - 1 - внесён, 0 - нет, кодошибки - синтаксическая ошибка в адресе/телефоне
,"адрес-2" : 0|1|кодошибки
.................
}
}
Удаление из стоп-листа¶
Удаление из стоп-лист означает только то, что указанный адрес/телефон будет удалён из стоп-листа. Он перестанет автоматически исключаться из всех рассылок если не будет других причин это делать (стоп-лист пользователя, ошибки доставки и прочее)
Запрос с указанием списка по всегда асинхронный.
Запрос с указанием группы по умолчанию асинхронный.
Асинхронные запросы возвращают номер трекера для отслеживания.
Одновременно может выполняться только два таких запроса.
Удаление из пользовательского стоп-листа работает только в пределах небольшого месячного лимита.
При асинхронном запуске обработку можно прекратить вызовом track.set
{
"action" : "stoplist.delete"
,"type" : "тип стоп-листа" -- all, owner, member. по умолчанию owner
,"sender" : "адрес отправителя" -- по умолчанию пусто - удаляются записи глобального стоп-листа
или
,"sender" : ["адрес отправителя-1", "адрес отправителя-2","адрес отправителя-3"...]
-- указание подписчиков одним из способов
,"email" : "адрес или телефон" -- телефон в полном формате +7XXXYYYYYYY
или
,"list" : [ -- запрос всегда асинхронный
"адрес/телефон"
,"адрес/телефон"
........
]
или
,"group" : код группы участники которой будут удалены из стоп-листа
,"sync" : 0|1 -- изменение синхронности запроса. по умолчанию 0 - асинхронный
или
,"group.filter" : [
фильтр отбора как у group.filter.set
]
,"sync" : 0|1 -- изменение синхронности запроса. по умолчанию 0 - асинхронный
или
,"url" : ссылка на файл со списком адресов. по одному на строке. возможно сжатие zip.
,"sync" : 0|1 -- изменение синхронности запроса. по умолчанию 0 - асинхронный
или
,"stat.uni" : { -- адреса для обработки получаются из запроса Универсальной статистики
-- подразумевается unique = 1
"filter" : [ условие выборки как у запроса в вызове stat.uni ]
,"have" : [ не обязательно. условие отбора поле группировки в фильтре ]
,"cache" : [ настройки кэширования как у запроса в вызове stat.uni ]
,"select" : [ ... ] -- используйте только если не подходит значение по умолчанию [ "member.email" ]
}
,"sync" : 0|1 -- изменение синхронности запроса. по умолчанию 0 - асинхронный
,"track.info" : "дополнительная информация которая будет потом доступна в track.list/get" -- строка 1024 байта. не обязательно
}
ответ
{
<общие поля>
-- для асинхронного запроса
,"track.id" : номер -- номер асинхронного запроса для отслеживания с помощью track.*
-- для синхронного запроса
,"list" : {
"адрес-1" : 0|1|кодошибки -- результат удаления - 1 - удалён, 0 - нет, кодошибки - синтаксическая ошибка в адресе/телефоне
,"адрес-2" : 0|1|кодошибки
.................
}
}
Очистить стоп-лист¶
Удаляются все записи из стоп-листа.
Удаление из пользовательского стоп-листа работает в пределах небольшого месячного лимита.
Вызов асинхронный.
{
"action" : "stoplist.erase"
,"type" : "тип стоп-листа" -- all, owner, member. по умолчанию owner
,"sender" : "адрес отправителя" -- по умолчанию пусто - удаляются записи глобального стоп-листа
-- иначе из стоп-листа данного отправителя
-- специальное значение " ALL " (пробелы вокруг !) для удаления и из глобального стоп-листа
-- и листов всех отправителей
,"track.info" : "дополнительная информация которая будет потом доступна в track.list/get" -- строка 1024 байта. не обязательно
}
ответ