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 комментария
Сайты в 2021 году
И сотрудников тоже касается: кибербуллинг на рабочем месте
Design vector created by pikisuperstar - www.freepik.com
От чтения мыслей до вторжения во сны: зачем исследуют сознание и чем это грозит Статьи редакции

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

ИТ-специалисты сообщили о блокировке Tor в России Статьи редакции

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

Tele2. Недоразумение со сменой тарифа

Моя бабушка пользуется тарифом без абонентской платы от Tele2. Недавно ей позвонили и предложили поменять тарифный план. Бабушка в этом ничего не понимает, но прекрасно понимает, что не стоит принимать решения, не посоветовавшись с детьми/внуками. Поэтому она, почти сразу,прервала разговор. На следующий день выяснилось, что с ее номера телефона…

Чему создатели метавселенных могут поучиться у 3D-игры Second Life Статьи редакции

Её основатель ещё в нулевых говорил, что физический мир канет в прошлое, и завлёк в игру не только пользователей, но также бренды, политиков и СМИ. Какой он видит метавселенную, исходя из своего опыта, — в пересказе Time.

Кадр из игры Second Life SL Community
SkillFactory раздает подарки: повышенная ставка и новогодний марафон для вебмастеров

В преддверии Нового года мы решили порадовать своих настоящих и будущих партнеров — участников партнерской программы школ Skillfactory, Contented и Product LIVE. Это возможность получить денежный бонус и заодно увеличить прибыль от продажи наших курсов.

Сбербанк компрометирует код CVC при выдаче карты

Пришёл срок замены карты, по сроку действия. Стоит сразу сказать, что на низовом видимом варианте сотрудники Сбера работают отлично. Всегда помогут, подскажут, доброжелательно и в целом приятно. Но когда работает та невидимая часть Сбера к которой не приедешь, увы начинаются проблемы.

Дайджест новостей Сбера: сайт Digital Пётр, сценарии для умного дома и платина от Forbes

Прошлый дайджест мы целиком посвятили 180-летию Сбера, поэтому новостей накопилось много. Среди них — запуск сайта по распознаванию рукописей Петра I, большое обновление на платформе умного дома Sber и другие. Рассказываем всё самое интересное.

Картинка, сгенерированная ruDALL-E по запросу «рыжий котик»
Мой опыт общения с Почтой России

Первым делом хочу попросить прощения у всех граждан России. Благодаря моим действиям, описанным вкратце в этой статье, я получил некоторую сумму денег, которая иначе могла бы попасть в бюджет РФ. Но произошло это по вине сотрудников АО «Почта России». Учредителем и единственным акционером АО «Почта России» является Российская Федерация.

Продавец eBay из Кургана стала победителем в финале Всероссийского конкурса «Молодой предприниматель России 2021»

27 ноября в Москве состоялся финал ежегодного конкурса «Молодой предприниматель России 2021». В нём приняли участие предприниматели и самозанятые в возрасте до 35 лет. Всего было подано более 300 заявок из 43 регионов страны.

null