Problema com Adsense e pageviews

Lamento que ainda não tenha havido mais progresso nisso. Temos pessoas investigando, mas receio não ter nenhuma atualização para compartilhar. :frowning:

Agradeço que talvez não esteja avançando rápido o suficiente para você, mas nos importamos com todos os sites do Discourse. :discourse: Se eu pudesse agitar uma varinha e fazer tudo dar certo, eu certamente o faria.

Desejo-lhe boa sorte com sua mudança, e sinto muito em vê-lo partir.

3 curtidas

Obrigado pela sua ajuda @JammyDodger - A razão pela qual eu disse que parece que ninguém se importa é devido ao silêncio neste tópico e a iterações anteriores deste problema aqui, infelizmente. Não espero uma varinha mágica, mas depois de 2 meses, há pouquíssimos sinais de que alguém está investigando e eu realmente preciso estar funcionando antes de janeiro.

Nos últimos meses, estive em conversas com duas grandes agências de publicidade e, quando elas viram/ouviram que eu estava usando o Discourse, encerraram as conversas. Tentei a integração com o AdButler com um sistema de anúncios de autoatendimento e, embora o AdButler tenha contado muitas impressões, o sistema de anúncios de autoatendimento registrou apenas uma pequena fração das visualizações de página/solicitações de anúncios.

Atualmente, estou trabalhando com um provedor de anúncios que alegou ter trabalhado com o Discourse antes, mas quando falei com o desenvolvedor dele, ele disse que na verdade não tinha usado o Discourse, mas que eles tiveram sucesso com SPAs anteriormente. Atualmente, os anúncios estão em execução e, embora estejam recebendo impressões decentes, ainda está muito longe do que deveria ser, infelizmente.

Desculpe ter que sair depois de 7 anos no Discourse, mas perdi dia após dia tentando fazer isso funcionar e não estava progredindo.

2 curtidas

Olá Shane,

Ouvimos você e priorizamos isso. É um problema muito difícil de trabalhar, pois precisamos de acesso total aos nossos logs do Discourse e aos logs do Google.

O @MarkDoerr agora tem um relacionamento e acesso a um de nossos clientes que tem isso configurado, estamos investigando aonde isso nos leva. Pode levar semanas ou até meses para resolver.

Certamente atualizaremos aqui à medida que encontrarmos várias descobertas. Queremos que os anúncios funcionem bem na plataforma Discourse, mas precisamos saber exatamente o que precisa ser melhorado.

4 curtidas

Estou esperando há muito tempo para ver este problema resolvido. Mal posso esperar para que o trabalho seja concluído. Espero que haja algum progresso. Ficaria grato se o problema fosse resolvido. @sam

Estamos atualmente em… tentamos em um cliente local nosso e não estamos vendo uma reprodução. Procurando outro cliente.

Fizemos alguma depuração aqui e um problema que é gritante é que as transições de “tópico” → “tópico” estão efetivamente quebradas neste plugin.

  1. Visite o tópico X
  2. A partir de sugestões, links, o que for… clique em um link para o tópico Y
  3. Os anúncios não mudam, parece que uma nova visualização de página não é registrada no AdSense.

Em vez disso, devemos atualizar os anúncios ao ir para um tópico diferente e garantir que isso acione uma visualização de página do AdSense.

Vamos analisar a correção disso nas próximas semanas.

5 curtidas

Acabei de mesclar esta correção, o que significa que transições entre páginas semelhantes (por exemplo, tópico → tópico, ou lista-de-tópicos → lista-de-tópicos) agora recarregarão corretamente quaisquer unidades de anúncio na página. Isso deve levar a um ligeiro aumento nas impressões - a quantidade exata dependerá dos padrões de uso.

Não consigo encontrar nenhuma informação do Google sobre como eles calculam as métricas de pageview para o Adsense.

O Discourse é um aplicativo de página única (SPA), o que significa que as navegações pelo fórum não são ‘pageviews’ reais. O Google Analytics e as próprias métricas do Discourse entendem isso e rastreiam os pageviews falsos.

É possível que o Adsense conte apenas pageviews ‘reais’. Se for o caso, isso explicaria os números mais baixos em comparação com o GA/Discourse.

8 curtidas

É muito difícil progredir aqui sem a ajuda do Google.

@david corrigiu 2 bugs hoje, o que pode ajudar um pouco, mas fundamentalmente as APIs que recebemos do AdSense nos deixam com as mãos atadas.

Em termos de implementação:

  1. Colocamos esses elementos <ins> onde queremos anúncios:
    {{#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. Chamamos: window.adsbygoogle.push({}) quando estamos prontos para o AdSense preencher os anúncios.

Isso é praticamente toda a capacidade que temos aqui.

O que observei:

  1. O Google tende a preencher o mesmo anúncio repetidamente após uma chamada push. É como se você precisasse de uma chamada “dormir por 5 segundos, para que o iframe carregue” antes de uma próxima chamada push (e o próximo elemento <ins>) para obter anúncios diferentes.

  2. Ao rolar por tópicos longos… eventualmente os anúncios quebram, quando quebram, não há mais anúncios a partir desse ponto até que você recarregue a página, o erro não é exibido para nós, ao capturar exceções eu o vejo aqui no código ofuscado:

  1. Posso ver que em circunstâncias normais o URL da página está sendo reportado ao Google:

Isso também atualiza enquanto você rola, desde que tenhamos feito um replaceState:

Com o que o Google poderia nos ajudar?

  1. AdSense não minificado para que possamos ajudar a depurar qual é essa exceção e por que o AdSense entra em modo 100% quebrado.

  2. Possivelmente uma API .reset() que poderíamos chamar nas transições de rota. O JavaScript não pode ser descarregado e não temos como redefinir o estado interno no AdSense.

  3. Melhores diretrizes públicas para uso de PWA e APIs mais ricas.

Temos alguns contatos no Google, veremos se podemos enviar isso e se eles podem ajudar.

A situação deve melhorar um pouco após as correções de David, mas acho que atingimos um beco sem saída.

Reprodutível ao vivo disso eventualmente quebrando está em: Welcome to freeCodeCamp's forum - The freeCodeCamp Forum basta continuar rolando para baixo…

12 curtidas

Olá pessoal,

Fico feliz em ver algum progresso nisso, embora pareça que o Google não vai colaborar.

Só para acrescentar a isso, agora no meu novo site, parece que o Discourse também superestima drasticamente as PageViews no GA4. É difícil dizer exatamente, pois o meio da semana é o período mais tranquilo no meu site e estou basicamente no final da temporada para o meu nicho, mas mesmo assim, acho que minhas pageviews foram infladas em 20-40% - em comparação com uma configuração mais tradicional (que basicamente funciona da mesma forma).

Claro, algumas das discrepâncias podem ser devido à mudança, etc., mas estou apenas adicionando aqui, pois pode ser uma pista que ajude alguém a descobrir algo, espero.

2 curtidas

Apenas para total transparência, não há nenhum aspecto de estimativa quando o Discourse conta visualizações de página, contamos com base na atividade do lado do servidor, o GA conta com base no que os usuários decidem dizer a ele.

1 curtida

Para esclarecer, eu não quis dizer a diferença entre PageViews do Discourse e page views do GA4.

Quero dizer que o GA4 rodando no Discourse parece inflar o número de page views em comparação com o GA4 rodando em uma configuração de Fórum mais tradicional com o mesmo número de usuários.

Acho que o GA4 no Discourse está vendo muitos page views fantasmas. Tendo acabado de mudar, acho que agora estou obtendo um número muito mais próximo dos níveis que o discourse estava contando como page views, mas na verdade menos o total de crawlers, no meu GA4.

Acho que isso pode ser mais um problema do Google.

Mudei em 7 de novembro

Os page views tiveram uma queda imediata, mas o engajamento do usuário aumentou.

Mas ainda aproximadamente o mesmo número de usuários.

Eu sei que mudar de sistema etc. pode causar uma instabilidade e a temporada está terminando, então eu esperava que o site ficasse um pouco menos movimentado, mas parece uma queda enorme nos PageViews. Mantivemos a estrutura de URL o máximo possível para minimizar a interrupção.

Na verdade, olhando para o meu Google Analytics do ano anterior, usando o Universal Analytics no Discourse, eles estão muito mais de acordo com o meu tráfego desde terça-feira, então eu realmente acho que há um problema com o GA4 e os dados de pageview que ele está vendo no Discourse.

… e, confusamente, o Google AdSense também está vendo apenas uma fração deles.

Sinto que isso está indo em muitas direções, Shane, então deixe-me resumir algumas coisas:

  1. Os números de pageviews do AdSense devem ser ignorados. De acordo com o Google, o AdSense não funciona bem com SPAs, ele conta apenas 1 pageview por visita.
  2. Temos um bug reproduzível com o AdSense, onde ele para de funcionar 100% após uma certa quantidade de rolagem, estamos trabalhando com o Google para tentar encontrar uma solução alternativa.
  3. Tentamos alinhar os pageviews no GA4 com os pageviews no Discourse. Você obtém um pageview quando
    1. Você visita o site pela primeira vez
    2. Dentro da SPA você muda de rota… o que significa que você vai de um tópico para outro.
    3. Bloqueadores de anúncios, etc… anularão todo o nosso trabalho de alinhamento, dado que o GA4 é gerenciado pelo navegador chamando o Google e nossa contagem é feita no lado do servidor.

Fóruns tradicionais que não são SPAs contarão múltiplos pageviews por tópico, um para cada página… nós contamos apenas 1 por tópico, não importa quanta rolagem você faça. Talvez devêssemos repensar isso… não tenho certeza…

5 curtidas

Existe um mecanismo que emula a “próxima página” para fins de visualizações de página quando o tópico n+15 é exibido na tela e quando a postagem n+10 é exibida?

Nada pronto para uso, mas acho que há uma possibilidade de fazer isso em um componente de tema. Você desalinhariam as visualizações de página do Discourse em um certo grau se o fizesse.

1 curtida

Uma postagem foi dividida em um novo tópico: As visualizações de página do GA4 estão infladas em comparação com as visualizações de página do Discourse

Olá, para mim, o problema não acabou completamente, ele ainda continua. Especialmente a partir de 2024, o AdSense adotará um sistema de ganhos de anúncios completamente diferente. O AdSense agora pagará por impressões. Nesse caso, isso afetará negativamente os sites que usam o Discourse. Ficarei grato se puderem analisar essa situação nos próximos dias.

A palavra do Google é:

  1. O AdSense não funciona 100% corretamente em SPAs, ele simplesmente não foi projetado para isso
  2. Não há alternativa do Google
  3. As visualizações de página não devem ser confiáveis em SPAs com AdSense

Desculpe, não tenho notícias melhores, mas simplesmente não há nada que possamos fazer aqui.

5 curtidas

Ou com o Google Analytics, a julgar pela minha experiência.

Discordo disso, nossa implementação é amigável ao Google Analytics.

Claramente… o Google Analytics não conta uma pilha gigante de visualizações de página

  • Crawlers / Chamadas de API não contam para nada, a menos que executem JS
  • Nossa implementação é muito conservadora, contamos apenas 1 visualização de página por tópico, independentemente do seu tamanho
  • Navegadores como o Brave podem bloquear esse tráfego, assim como vários plugins de navegador

Apesar das ressalvas, isso funciona como anunciado.


Se você realmente, realmente precisar de contagens exatas, os logs do NGINX lhe darão um número muito mais preciso.