Отчет читалки/приложения о прочтении/прослушивании. Метод нужен, чтобы замерять интенсивность потребления контента пользователями ЛитРес. Вызывать можно с периодичностью раз в минуту или на каждом третьем перелистывании, после прочтения 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 – признак не выполняется, значит пользователь читает полный текст. Если параметр отсутствует, по умолчанию считаем, что он принимает значение 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

Описание

101019Invalid parameter 'h' (must be between 0 and 100000)Некорректное значение параметра h. Должно быть целое положительное число от 0 до 100000
101019Invalid parameter 'p' (must be between 0 and 1000)Некорректное значение параметра p. Должно быть целое положительное число от 0 до 1000
101019Invalid parameter 'n' (must be between 0 and 999999999)Некорректное значение параметра n. Должно быть целое положительное число от 0 до 999999999
101019Param 'n' can't be used when param 'h' > 0Параметр n не может быть использован при значении параметра h > 0
101019Invalid parameter 'f' (must be between 0 or 1)Некорректное значение параметра f. Должно быть 0 или 1
101019Invalid parameter 't' (must be between 0 or 1)Некорректное значение параметра t. Должно быть 0 или 1
101019Both of parametrs 't' and 'f' are 1Параметры t и f не могут одновременно принимать значение 1

101061

invalid format art ID

Некорректное значение параметра art. Должно быть целое положительное число от 1000 до 999999999999

101062

Invalid art ID

Книга с таким ID книги не найдена

101179The 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
  }
}