Вебмайстер
Яндекс для вебмайстрів
Як Яндекс індексує сайти
Сайт на сторінці результатів пошуку
Сервіс «Яндекс.Вебмайстер»
Налаштування індексування
Вміст сайту
Сайт у результатах пошуку
Безпека сайтів
Сервіси Яндекса на вашому сайті

Передавання даних про стан відео

Щоб покращувати якість відтворення відеороликів у пошуку Яндекс.Відео, нам потрібно отримувати інформацію про стан відео. Наприклад, час початку або зупинки відеоролика, час перемотування тощо. Також нам важливо отримувати відомості про помилки, які виникли під час відтворення відео.

Для передавання даних про стан відео використовуйте механізм postMessage — для кожної події, що виникає у плеєрі (наприклад, початок відтворення відеоролика), у коді на JavaScript викличте функцію window.parent.postMessage. Як параметри їй слід передати назву події, а також додаткові параметри (наприклад, позицію прогрес-бару).

window.parent.postMessage({
    event: <Назва події>,
    time: <Позиція прогрес-бару в секундах>,
    code: <Код помилки>,
    ...        
}, '*');

Примітка. Зверніть увагу, що функцію postMessage слід викликати для батьківського об'єкта — window.parent. Це пов'язано з тим, що відео, яке переглядається на Яндексі, розміщується не на основній сторінці сервісу, а в окремому фреймі (елементі iframe).

Щоб ми змогли аналізувати інформацію про відео, необхідно передавати такі події, які наш робот зможе розпізнати. У таблиці нижче подано події, оброблювані роботом, а також параметри, які необхідно передавати.

ПодіяОписПараметри події
Обов'язкові
inited

Ініціалізація плеєра.

started

Початок відтворення.

  • time — позиція прогрес-бару в секундах.

    Якщо параметр time не вказано, то за замовчуванням його значення дорівнює 0.

paused

Зупинка відтворення.

  • time — позиція прогрес-бару в секундах.

ended

Перегляд ролика завершено (досягнуто кінця ролика).

  • time — позиція прогрес-бару в секундах.

error

Помилка відтворення.

  • time — позиція прогрес-бару в секундах.

  • code — код помилки.

Додаткові
autoplay

Автозапуск відтворення.

  • autoplay=1 — автоматично починати програвання відео;

  • autoplay=0 (або відсутність параметра) — не починати автоматичне програвання відео.

<iframe src="//www.your-videohosting.com/video?autoplay=1"></iframe>
Примітка. Зазначати адресу плеєра з параметром autoplay у розмітці необов'язково, достатньо просто підтримувати цей параметр під час його додавання до плеєра в пошуку.
resumed

Відновлення відтворення.

Примітка. Може бути замінено подією started.

  • time — позиція прогрес-бару в секундах.

rewound

Перемотування відео.

Примітка. Може бути замінено подією started.

  • time — позиція прогрес-бару в секундах.

  • previousTime — попередня позиція прогрес-бару в секундах.

adShown

Початок показу реклами.

  • time — позиція прогрес-бару в секундах.

Нижче розглянуто приклад передачі даних про відео у момент його запуску. Коли користувач натискає на плеєрі кнопку Play, плеєр викликає функцію-обробника videoStart. Ця функція у свою чергу викликає функцію window.parent.postMessage з потрібними параметрами.

// Ця функція викликається, коли користувач натиснув у плеєрі на кнопку Play.
function videoStart() {
    ...
    // Надсилання повідомлення.
    window.parent.postMessage({
        event: 'started'
        // Також може бути передано параметр time.
        // Якщо параметр time не зазначено, то за замовчуванням
        // він набуває значення 0.
    }, '*');
}

Відомості про помилки

Для того щоб ми змогли отримувати відомості про помилки, що виникають під час роботи з відео, плеєр повинен передавати функції window.parent.postMessage такі коди помилок:

Код помилкиОпис
Недоступне відео
101Відео видалено.
102Відеоролик або обліковий запис заблоковано.
103Відеоролик не існує або URL не підтримується.
100Інші випадки недоступного відео.
Обмеження доступу до відеоролика
151Недостатньо прав для перегляду відео.
152Відео заборонено до програвання на інших сайтах.
153Відео заборонено до програвання у цьому регіоні.
154Обмеження доступу, що вимагає підтвердження від користувача (наприклад, обмеження за віком).
150Інші обмеження перегляду відео.
Інше
5Збій роботи плеєра (помилки відтворення HTML-програвача тощо).
0Інші помилки.
function videoError(time, code) {
    // ...
    window.parent.postMessage({
        event: 'error',
        time: '62',
        code: '101'
    }, '*');
}
Оцініть статтю
Дякуємо за ваш відгук!