IT-инфраструктура для бизнеса и творчества

Расширение для Google Chrome, которое рассчитывает время рекламы перед фильмами

Привет! Уже посмотрели «Джокера»? Фильм крутой и так далее, но статья не об этом. Всё дело в том, что я смотрю все фильмы в «Синема Парке» (и это не реклама, а скорее антиреклама).

Меня бесит, когда я должен сидеть и 30 минут смотреть рекламу перед фильмом, мне кажется, это свинство по отношению к клиентам. Например, перед «Джокером» реклама длилась 37 минут!

С этой проблемой я столкнулся давно и писал в саппорт «Синема парка» с просьбой о том, чтобы на сайте показали время рекламы, но это не в интересах компании, как вы и сами догадываетесь.

Поэтому после 37 минут рекламы перед «Джокером» в голове появилась идея: почему бы не написать расширения для Chrome, которое подсказывало бы время рекламы?

Один вечер колдовства — и вот обновлённый интерфейс kinoteatr.ru.

Алгоритм максимально простой, иногда невозможно вычислить время рекламы, поэтому информации нет, но в основном это работает.

Процесс разработки

Для начала делаем манифест-файл с нужными нам permissions.

{ "manifest_version": 2, "name": "Время рекламы для кино-сеансов", "version": "0.0.1", "description": "Показывает время рекламы для сеансов на сайте kinoteatr.ru.", "content_scripts": [{ "matches": ["https://kinoteatr.ru/film/*"], "js": ["contentScript.js"] }], "permissions": [ "declarativeContent", "activeTab", "https://kinoteatr.ru/*" ], "author": "Mike Bazhenov", "incognito": "not_allowed" }

Алгоритм вычисления длительности рекламы:

  • Берём время сеанса и ищем следующий сеанс в этом зале.
  • Вычисляем разницу во времени между сеансами, вычитаем длительность фильма. Оставшееся время — это пять минут перерыв и реклама.
  • И пишем всю логику в contentScript.js.

Скачать расширение для Chrome можно здесь.

Добавить поддержку других кинотеатров? Пишите в комментариях, как вам идея, и свои предложения.

P. S. Надо добавить категорию «Не злите программиста».

(function () { let cdnUrl = `https://specialsf378ef5-a.akamaihd.net/SelectelBranding/images/` let previousArticleNumber = null let currentArticleNumber = 0 let platform = 'Desktop' let articles = [ { name: 'camera', url: `${cdnUrl}CameraCat`, text: 'умную камеру для\u00A0наблюдения за\u00A0котиками', link: 'https://vc.ru/selectel/306690', num: 3 }, { name: 'chill', url: `${cdnUrl}ChillCat`, text: 'трекер, который подскажет, когда пора отдохнуть', link: 'https://vc.ru/promo/288561-eye-tracker', num: 1 }, { name: 'cloud', url: `${cdnUrl}CloudCat`, text: 'котика: даёшь ему «пять», а\u00A0он делает бэкап в облако', link: 'https://vc.ru/dev/294799-maneki-neko', num: 2 } ] let buttonCycle = document.querySelector('.button--cycle') let buttonChoose = document.querySelector('.button--choose') let buttonMobile = document.querySelector('.button--mobile') let textField = document.querySelector('.selectel-footer-subtitle') let imageAgent = document.querySelector('.image--agent') let banner = document.querySelector('.selectel-footer') buttonCycle.addEventListener('click', cycleClick) buttonChoose.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) buttonMobile.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) let media = window.matchMedia("(max-width: 570px)") media.addEventListener('change', matchMedia) function matchMedia() { if (media.matches) { platform = 'Mobile' } else { platform = 'Desktop' } update() } matchMedia() function cycleClick(event) { sendEvent(`Promo ${articles[currentArticleNumber].num} Right`, 'Click') if (event) { event.preventDefault() event.stopPropagation() } window.open('https://vc.ru/tag/selectelDIY', '_blank') //cycle(event) } function cycle(event) { // incrementArticleNumber() textField.innerHTML = generatedText() imageAgent.src = articles[currentArticleNumber].url + platform + '.svg?3' imageAgent.setAttribute("class", "") imageAgent.classList.add('image--agent', articles[currentArticleNumber].name) banner.href = articles[currentArticleNumber].link } function update() { banner.href = articles[currentArticleNumber].link imageAgent.src = articles[currentArticleNumber].url + platform + '.svg' textField.innerHTML = generatedText() } function incrementArticleNumber() { previousArticleNumber = currentArticleNumber if (currentArticleNumber >= articles.length - 1) { currentArticleNumber = 0 } else { currentArticleNumber++ } } const sendEvent = (label, action = 'Click') => { const value = `SelectelDIY — loc: Footer — ${label} — ${action}`; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } }; function generatedText() { let defaultText if (platform === 'Desktop') { defaultText = `Мы тут собрали %text%. Хотите научим?` } else { defaultText = `Мы тут собрали %text%.` } return defaultText.replace('%text%', articles[currentArticleNumber].text) } function getRandom(min, max) { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min + 1)) + min } (function create() { currentArticleNumber = getRandom(0, articles.length - 1) cycle() let page = document.querySelector('.page--entry') if (page) { function insertAfter() { let parents = page.querySelectorAll('[data-id="7"]') let referenceNode = parents[0] referenceNode.parentNode.insertBefore(banner, referenceNode.nextSibling); loaded() } setTimeout(() => insertAfter(), 0) } }()) function loaded() { banner.classList.add('loaded') } loadImages([ `${cdnUrl}CameraCatDesktop.svg`, `${cdnUrl}ChillCatDesktop.svg`, `${cdnUrl}CloudCatDesktop.svg`, `${cdnUrl}CameraCatMobile.svg`, `${cdnUrl}ChillCatMobile.svg`, `${cdnUrl}CloudCatMobile.svg?3`, ]) function loadImages(urls) { return Promise.all(urls.map(function (url) { return new Promise(function (resolve) { var img = document.createElement('img'); img.onload = resolve; img.onerror = resolve; img.src = url; }); })); } }())
0
42 комментария
Популярные
По порядку
Написать комментарий...

Хорошая идея, но лучше просто игнорировать Синема Парк и посещать другие кинотеатры. 37 минут рекламы - это запредельное значение.

24

Комментарий удален по просьбе пользователя

1

КАРО реклама 30 минут.

3

А вам не кажется странной тенденция, смотреть рекламу, когда вы уже заплатили за поход в кино?! Меня этим убивают современные кинотеатры

7
Принятый супер_стар

А я люблю посмотреть трейлеры перед фильмом, неспешно и без зазрения совести пошипеть бутылкой газировки и похрустеть, распаковывая снэки.

6

Да! Я знал что такие есть, так что плагин не меняет основное время сеанса а показывает дополнительную информацию.

3

Миллениалы не могут в уме 37 минут прибавить без расширения хрома?

–9

У каждого фильма разное время рекламы и да большинству так удобнее.

12

Может вы еще и считаете без калькулятора? И информацию ищите в библиотеках? Зачем тратить время на рутину, если можно не тратить?

5

фильм без трейлеров - деньги на ветер!

3

У нас ещё стали показывать рекламу новостроек, кафешек и прочей фигни и это минут 10-15

5

Крутое решение.
Технологии работают в обе стороны - дают больше возможностей компаниям продавать и клиентам отстаивать свои интересы.
На стыке получается своего рода конкуренция, которая может контролировать рынок, не хуже чем спрос-предложение.

1) Компания забывает о клиентах и думает только о прибыли
2) люди пользуются плагином и не ходят на рекламу, потому что это проще, чем сидеть 30-40 минут
3) компания понимает, что просрала весь трафик и делает рекламы в 2 раза меньше
4) люди опять ходят на рекламу, потому что проще посмотреть 10 мин чем пользоваться плагином.
Это в идеале, конечно.

Реально классный кейс.

3

В реальности ничего не поменяется, охват у плагина маленький будет. Желательно приложение сделать на телефон и добавить все популярные кинотеатры. 

0

И покупку билетов с приложения, иначе смысла нет. Надо каким нибудь Тинькоф билетам подкинуть идею.

1
Принятый супер_стар

Комментарий удален по просьбе пользователя

0

Конечно, но это дело времени. Если массовый потребитель научится объединяться для защиты своих интересов - результат будет.

1

Комментарий удален по просьбе пользователя

3

Во всех кинотеатрах долго,но они рекордсмены.

0

А можно написать плагин, чтобы завалить сети претензиями и исками в суд? Ведь в билете ничего не сказано про просмотр рекламы. Это нарушает соглашение: деньги в обмен на сеанс продолжительностью такой-то. Как мне кажется.

3

"Примечание: Все сеансы начинаются с показа рекламно-информационного блока согласно расписанию кинотеатра. Информацию о точной продолжительности рекламно-информационного блока уточняйте в кинотеатре."

0

Всё бы хорошо, но для параноиков ссылки на исходники не помешали бы.

2

Сделаю :)

1

В формуле кино,  киномаксе тоже самое. Реклама по 25-35 минут. Уже многие приходят на фильм спустя 20 минут после начала сеанса в билете. Кинопрокатчики пошли дальше - начинают рекламу на 5-7 минут позже. 
Пока тоже стараюсь тоже приходить позднее, доставляя дискомфорт окружающим, пока протискиваюсь на свое место. Посмотрим, как дальше будет) 
Спасибо за расширение, затестим.

2

А каким образом вы определяете время рекламы? Например, в моем случае реклама в Синема Парке на сеанс в оригинале длилась 25 минут. 

1

Разница между ближайшими сеансами - длительность фильма.

2

Еще же есть время на уборку зала после фильма. 

–2

Не было уборки когда я ждал сеанс, 5 минут есть перерыв да

0

Эта реклама уже настолько назойлива что мы и 1 метра без кучу рекламы не можем пройти! Теперь и в кинотеатрах без рекламы не обойдешься, если раньше рекламы то было все пару минут то теперь это кажется вечностью.
Да и хорошего с рекламы ты не чего не возьмешь. Она все куда тупее и тупее.

1

да раньше тоже было +-10 минут рекламы

0

Решение очевидно не рабочее, не учитывается переменная в виде уборки залов, задержки сеансов и т/д. Продолжительность рекламного блока как правило в пределах 15-20 минут, из скрина следуют все 37, это не выгодно просто кинотеатрам, основной бизнес это показ фильма, а не реклама, поедут просто сеансы =)

0

Уборка залов учитывается.
Задержка сеансов? Всё что есть в расписании по нему и считает.

2

 это не выгодно просто кинотеатрам, основной бизнес это показ фильма, а не реклама

Эх, если бы. Прокат фильмов на самом деле менее выгоден, чем показ рекламы и бары с попкорном. Но и вы правы — 37 минут рекламы это нечто запредельное, по моему опыту, рекламный блок идёт примерно 5 минут, и еще минут 10 — трейлеры.

0

Нет, основная маржа, конечно, не попкорн и уж точно не реклама, а показ фильма. Просто у каждого отдела свой kpi. 

0

Основная маржа это попкорн и реклама, если вы не знали))

0

Сходите на Джокера в синему и сами всё увидите мне смысл врать? Сам сидеть 30 минут пух с рекламы

0

Я ходил в прошлую субботу, как раз на Джокера, как раз в Синема Парк. Не засекал, но реклама шла в совокупности минут 15.

1

Вовремя пришли на сеанс? :)

0

Комментарий удален

Комментарий удален

Ого! В Одессе максимум 15 минут.

0

Чувак, ты прямо в точку попал, в кинотеатрах совсем зажрались и 20 минут рекламы теперь ужасная «норма». Это не нормально. Я бы заплатил за билет дороже что бы не тратить время на рекламу, да вот где найти только такие сервисы 

0

А давно такое вообще? Я последний год в кино не был, а тут сходил вчера на джокера и охерел просто... Раньше такой дичи не было

0

Реклама -37 минут??

0

Задумка хорошая, но только работать это не будет.
Вы опираетесь на свой личный опыт в одном конкретном случае, где перерыв был 5 минут. А на самом деле перерывы в разных залах / на разных сеансах бывают разные по времени.
В то же время в кинотеатрах вообще-то вывешивают информацию о точной продолжительности рекламно-информационного блока к каждому фильму в зависимости от типа зала. К сожалению, в интернете нигде данную информацию не найти.
Вот если бы был какой-то сервис, где можно было посмотреть реальную достоверную информацию от самих кинотеатров, это было бы куда полезнее. Но для этого нужно капец как заморочиться, чтобы ходить по кинотеатрам и все эти данные переписывать.

0
Читать все 42 комментария
«Хочу супер-пупер мега продукт, начинайте штормить». Разбираемся, как гроуз-хакинг помогает бизнесу расти

Подкаст «Бизнес, роботы мечты» — это клуб предпринимателей, где помогут, если что-то идёт не так; покажут новую цель, если застопорился.

Минэкономразвития РФ приняло предложения РСПП по совершенствованию рынка интеллектуальной собственности

На актуализации плана дорожной карты ТДК (трансформация делового климата) «Интеллектуальная собственность» в соответствии с пожеланиями бизнес-сообщества настоял первый заместитель председателя правительства Андрей Белоусов.

История о том, как я привез в Россию самые продвинутые детские клюшки для хоккея. И чем они такие продвинутые

Привет! Меня зовут Александр Тягалов, очень рад нашему «заочному» знакомству. Расскажу вам о создании особенного бизнеса. Три года назад мы с Владимиром Тронько привезли в Россию и продаем (с каждым годом все успешнее) детские клюшки финской марки VIKKELA. У этих клюшек нет аналогов на Российском и Европейском хоккейном рынке, так что, с одной…

Лайфхак в подборе: как ATS-системы помогают экономить время и бюджет рекрутеров

Процесс рекрутинга существенно не отличается от компании к компании. Есть несколько типичных шагов, которые проходит рекрутер: размещение вакансии на джоб-бордах, поиск соискателей по базам, согласование кандидатов с заказчиками, собеседование, выдача и проверка тестового задания, проверка кандидата службой безопасности.

Штраф 10 тысяч рублей за утерю терминала, который банк забрал сам

Здравствуйте! Пишу про СберБизнес.

На сайтах с эквайрингом от ПСБ появился Yandex Pay

Покупатели с аккаунтом «Яндекса» смогут оплачивать покупки, не вводя данные карты.

Это Элви Рэй Смит: он мечтал создать анимационный фильм на компьютере, соосновал Pixar, но ушёл из компании из-за Джобса Статьи редакции

Смит создал альфа-канал, который используется в Photoshop и других редакторах, работал в Xerox и LucasFilm и убеждал всех, что за компьютерной графикой будущее, однако всерьез его никто не воспринимал – кроме Стива Джобса.

Медитация — это Prosto: история самого прибыльного сервиса для заботы о ментальном здоровье
Главная страница приложения Prosto: Медитации и Сон
Сервис аренды электросамокатов Whoosh начнёт работать в Португалии в феврале 2022 года и вложит в запуск $20 млн Статьи редакции

На старте в Лиссабоне будет работать 2500 самокатов.

Whoosh
Kornia - Python библиотека для обработки изображений в задачах CV

В этой статье я хотел бы познакомить читателей с библиотекой для ЯП python — Kornia, имеющей богатый функционал в области computer vision. Библиотека написана с использованием pytorch, в ее основе лежат готовые решения, такие как torchvision, PIL, skimage, tf.image, OpenCV. В Kornia реализована возможность выполнения вычислений не только с…

Что если новый дом вам не нравится? Советы тем, кто переезжает в другую страну, и их менеджерам

Меня зовут Татьяна Карачевцева, в свое время я переехала из Харькова и Киев, а оттуда перебралась в Софию. Здесь уже как HR-менеджер помогла многим коллегам адаптироваться к жизни и работе в Болгарии. Совместив личный и профессиональный опыт, я попробовала собрать подсказки для обеих сторон, вовлеченных в процесс релокации. Какие стадии адаптации…

null