Реклама только для зарегистрированных пользователей?

Есть ли способ показывать рекламу только зарегистрированным пользователям, а не гостям?

Или использовать пользовательский тег скрипта в зависимости от состояния сессии?

Логика здесь такова: те, кто принял Условия/Политику конфиденциальности при регистрации/SSO, согласились на использование файлов cookie и рекламы в других местах, тогда как гости — нет.

Полагаю, что потребность в этом и охват ограничены (в основном страны ЕЭЗ), но я был бы уже рад, если бы существовал способ сделать это независимо от местоположения посетителя.

Также приветствуются подсказки, где в коде можно это реализовать.

Вы могли бы скрыть это с помощью CSS, но при этом всё равно будете получать файлы cookie и собирать информацию. Редакция: это плохой совет.

Возможно, вам подойдёт это: Discourse Cookie Consent Banner

Действительно, скрытие рекламы с помощью CSS никак не влияет на файлы cookie или сбор данных.

Это решение зависит от стороннего сервиса, который является платным продуктом. Судя по его исходному коду, он лишь отображает баннер, но ничего не делает для блокировки файлов cookie, запускаемых плагином «Реклама» в Discourse.

В любом случае, такой баннер обрабатывает согласие на использование файлов cookie — этого недостаточно для более строгих требований GDPR к согласию на сбор личной информации, необходимой, например, для таргетированной рекламы. Такое согласие должно быть получено до загрузки любой рекламы.

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

Кстати, на нашем сайте рекламу показываем только гостевым пользователям, проверяя ID пользователя. На нашем форуме, не являющемся частью Discourse, у всех гостей (неавторизованных пользователей) ID меньше единицы, поэтому легко проверить и не показывать рекламу зарегистрированным участникам (это обратное тому, чтобы показывать рекламу только зарегистрированным пользователям).

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

Когда вы говорите «размещать рекламу», вы имеете в виду DoubleClick/публичную рекламную сеть или внутренние объявления?

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

Под «отсутствием показа рекламы» мы подразумеваем именно это — рекламу не показывают. В нашем случае мы сами владеем и управляем нашим рекламным сервером, который размещает рекламные теги в соответствии с нашими требованиями (собственные объявления, сети технологических партнеров, специальные кампании, теги Google Ads и множество других рекламных сетей… всё зависит от нас и наших рекламодателей, как именно мы показываем рекламу). Привет.

Отсутствие показа рекламы — это не сокрытие рекламы. Это именно отсутствие её показа.

Мы легко можем настроить: «показывать собственные объявления только в Китае», «не показывать рекламу зарегистрированным пользователям», «показывать только объявления от технологических партнёров пользователям из США», «показывать зелёные объявления в Бразилии», «не показывать рекламу пользователям из Великобритании», «показывать фиолетовые объявления в браузере Firefox», «показывать розовые объявления в Chrome»… Всё это базовые принципы работы рекламных серверов уровня «101».

Мы управляем показом рекламы уже более 15 лет и не подвергаемся никаким рискам.

Мы точно знаем, что делаем, и работаем в этой сфере очень-очень давно.

Что касается других, то все разговоры о CSS и «сокрытии рекламы» не имеют отношения к управлению веб-сайтом или даже к обсуждению этой темы. Реклама показывается пользователям на основе множества критериев (геолокация, статус пользователя, время суток; мы можем таргетировать рекламу вплоть до типа браузера и пола пользователя). Это всё базовые принципы работы рекламных серверов уровня «101», если вы управляете собственным сервером.

На мой взгляд, в прошлом году мы показали около 500 миллионов рекламных объявлений (возможно, меньше, так как трафик на старом форуме снизился), начиная от собственных объявлений и заканчивая прямыми закупками у отдельных рекламодателей.

Я не знаю, как работает плагин Discourse для рекламы; но с точки зрения показа рекламы нет ничего неправильного в том, чтобы таргетировать рекламу на зарегистрированных пользователей и не таргетировать её (или не показывать) гостям. Именно так работает показ рекламы. Таргетинг.

В нашем случае мы управляем рекламным сервером и используем множество критериев для таргетинга. Это всё базовые принципы работы рекламных серверов уровня «101». На нашем сайте уже почти два десятилетия реклама показывается только незарегистрированным пользователям (гостям). Наши зарегистрированные пользователи никогда не видят рекламу — это наша давняя политика.

Пример таргетинга рекламы

Так работает каждый рекламный сервер, которым я когда-либо управлял.

Более того, на уровне «железа» мы можем отключить всю рекламу (весь показ рекламы) для любой географической зоны, для зарегистрированных пользователей (на основе множества критериев) и так далее. Это базовый таргетинг рекламы, доступный во всех коммерческих рекламных серверах.

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

Однако с плагинами Discourse я не уверен, так как у нас пока нет планов показывать рекламу; но если они появятся, я обещаю, что реклама не будет показываться авторизованным пользователям, даже если мне придётся модифицировать плагин самостоятельно или написать свой :slight_smile:

Для тех, кто никогда не видел управления рекламой в устаревших форумах (современные плагины для рекламы выглядят намного приятнее, LOL), вот два скриншота из устаревшей системы управления рекламой vB (только страница глобальных настроек, а не детальные страницы размещения рекламы).

Это не «рекламный сервер», а лишь плагин, помогающий с размещением рекламы, нацеливанием на идентификаторы форумов (категории), группы пользователей и т. д. Всё это очень устаревшие технологии, и мы почти не используем их сейчас, так что к сведению.

Однако видно, что группы пользователей могут легко нацеливаться, включая показ или непрокрутку рекламы для любой группы пользователей (гости, зарегистрированные пользователи, модераторы, лидеры) и т. д.

Также см.

Примечание: На «голом железе» (сервере) мы также нацеливаемся по гео, куки и т. д. Честно говоря, это базовая основа работы с рекламой. Например, мы легко можем настроить так: «использовать рекламный сервер один в Германии» и «использовать рекламный сервер три в Японии»… возможности действительно безграничны, если объединить (1) «голое железо», (2) хороший «плагин для размещения рекламы» и (3) «запуск собственного рекламного сервера».

Что касается плагина Discourse для рекламы…

Я только что впервые заглянул в код этого плагина.

$ pwd
/Users/Tim/desktop/discourse-adplugin/test/javascripts/acceptance
$ vi dfp-test.js.es6

Мне кажется, что базовая возможность показывать рекламу определённым уровням доверия и группам уже реализована (хотя я не тестировал это, но выглядит всё довольно просто, так как эта функциональность уже есть в плагине…)

Вот код:

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

В любом случае… я проверил документацию… большая часть этого уже есть в плагине Discourse для рекламы, посмотрите, например, (AdSense через уровень доверия, в этой настройке):

Плагин для рекламы в Discourse предназначен не для управления таргетингом, а в основном для вставки кода рекламных блоков в вывод Discourse. Для таргетинга по географии и другим параметрам можно использовать, например, DFP (Ad Manager). Я не считаю, что этот плагин должен обрабатывать логику таргетинга.

У него уже есть настройка, запрещающая показ рекламы выше определённого уровня доверия. Наша потребность (опять же, специфичная для нашей настройки SSO) — это своего рода обратная задача: не показывать рекламу гостям вообще, так как они не дали согласия.

Я новичок в Ruby и в коде Discourse, но изучу код и постараюсь разобраться. Буду признателен за подсказки.

Смотрите здесь (пример для AdSense, каждый файл в этой директории отличается). Вы можете немного изменить логику в этом коде, чтобы показывать рекламу только пользователям с определённым уровнем доверия или из определённой группы (вместо показа тем, кто ниже), и так далее.

К сведению (и подсказка)

./discourse-adplugin/assets/javascripts/discourse/components

Это «возможно» легко модифицировать и пересобрать (протестируйте на вашем тестовом сервере), чтобы реализовать то, о чём вы просили, насколько я понял ваш исходный пост (показ рекламы только участникам). Если же вы основываетесь на уровне доверия или группе пользователей, то, разумеется, модификация практически тривиальна.

Извините, я не тестировал, просто изучил код для вас.

Вот моё скромное мнение.

Было бы логично позволять таргетировать рекламу на конкретные группы пользователей (или пропускать её для определённых групп).

Многие сообщества предлагают платные опции для отключения рекламы в качестве способа поддержки своих расходов.

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

<if !user_in($loggedinuser($usergroup[id])); />
Код рекламы здесь
</endif>

Или что-то в этом роде. Прошло уже много времени.

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