Проблема с Adsense и просмотрами страниц

Извините, что пока не произошло никаких подвижек по этому вопросу. У нас есть люди, которые занимаются этим, но, боюсь, мне нечем поделиться. :frowning:

Я понимаю, что это может происходить недостаточно быстро для вас, но мы действительно заботимся обо всех сайтах Discourse. :discourse: Если бы я мог взмахнуть волшебной палочкой и всё исправить, я бы обязательно это сделал.

Желаю вам удачи с переездом, и мне жаль, что вы уходите.

3 лайка

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

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

В настоящее время я работаю с рекламным провайдером, который утверждал, что ранее уже сотрудничал с Discourse. Однако, когда я поговорил с их разработчиком, тот признал, что они на самом деле не использовали Discourse, но у них был успех с SPA (одностраничными приложениями) ранее. В данный момент реклама работает, и хотя показов достаточно много, это всё ещё далеко от того, что должно быть, к сожалению.

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

2 лайка

Привет, Шейн,

Мы вас услышали и поставили это в приоритет. Это сложная задача, так как нам нужен полный доступ к нашим журналам Discourse и журналам Google.

@MarkDoerr теперь имеет связи и доступ к одному из наших клиентов, у которого это настроено; мы изучаем, к чему это приведет. Это может занять недели или даже месяцы.

Мы обязательно будем обновлять информацию здесь по мере появления новых данных. Мы хотим, чтобы реклама отлично работала на платформе Discourse, но нам нужно точно знать, что именно требует улучшения.

4 лайка

Я долго ждал, чтобы эту проблему наконец решили. Не терпится, когда работа будет завершена. Надеюсь, будут какие-то результаты. Буду благодарен, если проблему исправят. @sam

В данный момент мы находимся… Мы проверили на одном из наших локальных клиентов и не смогли воспроизвести проблему. Ищем другого клиента.

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

  1. Откройте тему X.
  2. Перейдите по ссылке из предложенных, из других источников и т. д. на тему Y.
  3. Рекламные объявления не обновляются, похоже, что в AdSense не фиксируется новый просмотр страницы.

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

Мы займемся исправлением этой проблемы в ближайшие несколько недель.

5 лайков

Я только что объединил это исправление, благодаря чему переходы между похожими страницами (например, тема → тема или список тем → список тем) теперь будут корректно перезагружать любые рекламные блоки на странице. Это должно привести к незначительному увеличению показов — точная величина будет зависеть от паттернов использования.

Я не смог найти никакой информации от Google о том, как они рассчитывают метрики просмотров страниц для Adsense.

Discourse — это одностраничное приложение (SPA), что означает, что навигация по форуму не является «настоящим» просмотром страницы. Google Analytics и собственные метрики Discourse понимают это и отслеживают такие «фейковые» просмотры.

Возможно, Adsense учитывает только «настоящие» просмотры страниц. Если это так, то это объясняет более низкие показатели по сравнению с GA/Discourse.

8 лайков

Продвигаться здесь без помощи Google крайне сложно.

@david сегодня исправил 2 ошибки, что немного поможет, но в целом API, которые мы получаем от AdSense, сильно ограничивают наши возможности.

С точки зрения реализации:

  1. Мы размещаем эти элементы <ins> в тех местах, где хотим показывать рекламу:
    {{#if showAd}}
    <div class="google-adsense-label"><h2>{{i18n
          "adplugin.advertisement_label"
        }}</h2></div>
    <div
      class="google-adsense-content"
      id={{if isResponsive "google-adsense__responsive"}}
      style={{adWrapperStyle}}
    >
      <ins
        class="adsbygoogle"
        style={{adInsStyle}}
        data-ad-client="ca-pub-{{publisher_id}}"
        data-ad-slot={{ad_code}}
        data-ad-format={{autoAdFormat}}
      >
      </ins>
    </div>
  {{/if}}
  1. Мы вызываем window.adsbygoogle.push({}), когда готовы к тому, чтобы AdSense заполнил рекламу.

По сути, это всё, что у нас есть с точки зрения контроля.

Что я наблюдаю:

  1. Google склонен показывать одну и ту же рекламу снова и снова после вызова push. Похоже, что перед следующим вызовом push (и следующим элементом <ins>) нужно сделать паузу в 5 секунд, чтобы загрузился iframe и можно было получить другую рекламу.

  2. При прокрутке длинных тем … со временем реклама ломается. Когда это происходит, реклама больше не показывается с этого момента до перезагрузки страницы. Ошибка не сообщается нам; при перехвате исключений я вижу её здесь в обфусцированном коде:

  1. Я вижу, что в нормальных условиях URL страницы передаётся в Google:

Это также обновляется при прокрутке, если мы использовали replaceState:

Чем мог бы помочь Google?

  1. Неминифицированная версия AdSense, чтобы мы могли отладить это исключение и понять, почему AdSense переходит в полностью нерабочее состояние.

  2. Возможно, API .reset(), который мы могли бы вызывать при переходе между маршрутами. JavaScript нельзя выгрузить, и у нас нет способа сбросить внутреннее состояние в AdSense.

  3. Более подробные публичные руководства по использованию PWA и расширенные API.

У нас есть контакты в Google; посмотрим, сможем ли мы передать им эту информацию и получить помощь.

Ситуация должна немного улучшиться после исправлений Дэвида, но, я думаю, мы просто уперлись в тупик.

Живой пример того, как это в итоге ломается, доступен по ссылке: https://forum.freecodecamp.org/t/welcome-to-freecodecamps-forum/92385 — просто продолжайте прокручивать вниз…

12 лайков

Привет, ребята,

Рад видеть прогресс в этом вопросе, хотя, похоже, Google не собирается идти навстречу.

Хочу добавить, что на моём новом сайте Discourse, похоже, значительно завышает показатели PageViews в GA4. Точно сказать сложно, так как середина недели — более спокойное время для моего сайта, и я, по сути, нахожусь в конце сезона для моей ниши, но даже так мне кажется, что мои просмотры страниц были завышены на 20–40% по сравнению с более традиционной настройкой (которая работает практически так же).

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

2 лайка

Только для полного раскрытия информации: когда Discourse считает просмотры страниц, никакого аспекта оценки нет — мы считаем на основе активности на стороне сервера, а GA считает на основе того, что пользователи решают сообщить ему.

1 лайк

Чтобы прояснить ситуацию: я не имел в виду разницу между показателями PageViews в Discourse и просмотрами страниц в GA4.

Речь о том, что GA4, работающая на Discourse, по-видимому, завышает количество просмотров страниц по сравнению с GA4 на более традиционной платформе форумов при одинаковом количестве пользователей.

Мне кажется, что GA4 на Discourse фиксирует множество мнимых просмотров страниц. Поскольку я только что перешёл на новую систему, теперь показатели GA4 стали гораздо ближе к тем, которые Discourse считал просмотрами страниц, но уже без учёта трафика от ботов.

Возможно, это ещё одна проблема со стороны Google.

Переключение произошло 7 ноября.

Количество просмотров страниц сразу резко упало, но показатель вовлечённости пользователей (user_engagement) вырос.

При этом общее число пользователей осталось примерно таким же.

Я понимаю, что смена системы могла вызвать временные колебания, и учитывая, что сезон подходит к концу, я ожидаю небольшого снижения активности на сайте. Однако такое резкое падение количества просмотров страниц кажется чрезмерным. Мы сохранили структуру URL максимально возможной, чтобы минимизировать disruptions.

На самом деле, если посмотреть на данные Google Analytics за предыдущий год, где использовался Universal Analytics на Discourse, они гораздо больше соответствуют моему трафику со вторника. Поэтому я считаю, что проблема в GA4 и в данных о просмотрах страниц, которые она видит на Discourse.

… и что ещё запутаннее, Google AdSense видит лишь малую часть этих просмотров.

Мне кажется, Шейн, что мы движемся во многих направлениях, поэтому позвольте мне подытожить некоторые моменты:

  1. Показатели просмотров страниц от AdSense следует игнорировать. По словам Google, AdSense плохо работает с одностраничными приложениями (SPA) и учитывает только 1 просмотр страницы за посещение.
  2. У нас есть воспроизводимая ошибка с AdSense: после определенного количества прокрутки он полностью перестает работать. Мы работаем с Google, чтобы найти обходной путь.
  3. Мы пытаемся согласовать просмотры страниц в GA4 с просмотрами страниц в Discourse. Просмотр страницы фиксируется, когда:
    1. Вы впервые посещаете сайт.
    2. В рамках SPA вы меняете маршруты… то есть переходите от одной темы к другой.
    3. Блокировщики рекламы и т. д. могут свести на нет всю нашу работу по согласованию, поскольку GA4 управляется через браузер, обращающийся к Google, а наш подсчет ведется на стороне сервера.

Традиционные форумы, не являющиеся SPA, учитывают несколько просмотров страниц на одну тему — по одному на каждую страницу… Мы же учитываем только 1 просмотр на тему, независимо от того, сколько вы прокручиваете. Возможно, нам стоит переосмыслить это… Я не уверен…

5 лайков

Существует ли механизм, который эмулирует «следующую страницу» для целей подсчета просмотров страниц, когда на экране отображается тема n+15 и когда отображается пост n+10?

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

1 лайк

Пост был разделен на новую тему: Просмотры страниц GA4 завышены по сравнению с просмотрами страниц Discourse

Привет, для меня проблема ещё не полностью решена, она продолжается. Особенно с 2024 года AdSense переходит на совершенно новую систему заработка на рекламе. Теперь AdSense будет платить за показы. В этом случае это негативно скажется на сайтах, использующих Discourse. Буду рад, если вы сможете рассмотреть эту ситуацию в ближайшие дни.

Сообщение от Google следующее:

  1. Adsense не работает на 100% корректно в SPA, так как он просто не предназначен для этого.
  2. У Google нет альтернативы.
  3. Просмотры страниц в SPA с Adsense нельзя считать надежными.

Извините, у меня нет для вас лучших новостей, но в данном случае мы действительно ничего не можем сделать.

5 лайков

Или с Google Analytics, судя по моему опыту.

Я не согласен с этим — наша реализация полностью совместима с Google Analytics.

Очевидно, что Google Analytics не учитывает огромный объём просмотров страниц:

  • Краулеры и вызовы API не учитываются, если они не выполняют JavaScript.
  • Наша реализация очень консервативна: мы считаем только один просмотр страницы на тему, независимо от её длины.
  • Такие браузеры, как Brave, могут блокировать этот трафик, как и различные расширения для браузеров.

Несмотря на эти оговорки, система работает так, как заявлено.


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