Отчет читалки/приложения о прочтении/прослушивании. Метод нужен, чтобы замерять интенсивность потребления контента пользователями ЛитРес. Вызывать можно с периодичностью раз в минуту или на каждом третьем перелистывании, после прочтения 1000+ знаков. Также следует вызывать по окончании пролистывания/перемотки, сворачивании читалки, при выходе из фрагмента. Можно присоединять к запросам синхронизации позиции и другим операциям. Срочность данного отчета не велика: если в течение 10 минут данные о чтении доставлены – это ок. Но желательно суммировать: если за 10 минут человек прочитал 5 страниц по 1000 символов и закрыл приложение, надо доставлять отчет о чтении 5 000 знаков. Как один отчет про 5 000 (предпочтительно) или как 5 отчетов по 1000 (нежелательно) – как получится.
ID функции
w_read_report
Кто может вызывать
Авторизованный пользователь.
Авторизованное приложение.
Принимаемые параметры
art* – ID книги;
h* – количество прочитанных символов. Считаются буквы, пробелы, знаки препинания. Например, в предложении «Слово – серебро, молчание – золото» 34 символа. Может принимать значение 0. Это значит что фактически чтения не было, было пролистывание. Пролистыванием считается либо явная перемотка текста посредством скроллера, либо чтение/пролистывание со скоростью выше 7000 символов/минуту. Если это аудиокнига, то в параметре h отправляем прослушанные десятки секунд. За единицу времени считаем 10 секунд, даже если пользователь прослушал 1 секунду, все равно передаем 10.
p* – промилле позиции чтения (как процент 1/1000). Желательно передавать «крайнюю точку». Например, пользователь прочитал страницу, перелистнул, в отчет надо отправить промилле с позицией чтения начала следующей страницы (той, которую он только будет читать);
t – признак, что пользователь читает фрагмент (при этом f не передаётся). Параметр может принимать значения:
- 0 – признак не выполняется, значит пользователь читает полный текст. Если параметр t отсутствует, по умолчанию считаем, что он принимает значение 0;
- 1 – пользователь читает фрагмент;
f – признак, что книга читается/слушается по подписке, за рекламу и т. п. То есть это не «паблик», не совсем бесплатная книга, но в то же время за конкретно эту книгу пользователь не платил. Вопрос, является ли книга «пабликом», решается на бэкенде проверкой basket.real_payed для данного пользователя и данной книги. Если там значение 0 (или записи в basket нет, что вообще-то баг), то считается, что книга читается даром, даже не за рекламу. Параметр может принимать значения 0 или 1;
n – число событий. Актуально при h=0. Например, «перелистнул, не читая 6 раз», «перематывал книгу скроллером с 28-ю остановками по 0,5 с и более, потом отпустил» – будет 6 и 28, соответственно, при h=0. По каждому типу событий отправляется отдельный отчет. Параметр n не может быть использован при значении параметра h > 0.
Возвращаемые значения
Отсутствуют.
Возможные ошибки
error_code | error_message | Описание |
---|---|---|
101019 | Invalid parameter 'h' (must be between 0 and 100000) | Некорректное значение параметра h. Должно быть целое положительное число от 0 до 100000 |
101019 | Invalid parameter 'p' (must be between 0 and 1000) | Некорректное значение параметра p. Должно быть целое положительное число от 0 до 1000 |
101019 | Invalid parameter 'n' (must be between 0 and 999999999) | Некорректное значение параметра n. Должно быть целое положительное число от 0 до 999999999 |
101019 | Param 'n' can't be used when param 'h' > 0 | Параметр n не может быть использован при значении параметра h > 0 |
101019 | Invalid parameter 'f' (must be between 0 or 1) | Некорректное значение параметра f. Должно быть 0 или 1 |
101019 | Invalid parameter 't' (must be between 0 or 1) | Некорректное значение параметра t. Должно быть 0 или 1 |
101019 | Both of parametrs 't' and 'f' are 1 | Параметры t и f не могут одновременно принимать значение 1 |
101061 | invalid format art ID | Некорректное значение параметра art. Должно быть целое положительное число от 1000 до 999999999999 |
101062 | Invalid art ID | Книга с таким ID книги не найдена |
101179 | The same request detected | Повторный запрос (все параметры совпадают) |
Пример запроса на сервер
{ "app": "1", "time": "2014-11-07T16:21:02+03:00", "sha": "b79d8e9993d20da6abe78838d3c7fbf640a4c52956569bef3c685d3453316b5c", "sid": "78838d3c7fbf640a4c52956569bef3c685", "requests": [ { "func": "w_read_report", "id": "read_report", "param": { 'art' => '154363', 'h' => '0', 'p' => '578', 'f' => '1', 'n' => '6', } } ] }
Пример ответа сервера
{ "success": true, "time": "2014-11-07T16:21:02+03:00", "read_report": { "success": true } }