Je rencontre de nombreux problèmes avec l’exécution de publicités sur mon site Discourse à l’adresse https://howtodiscuss.com.
- De nombreuses erreurs d’exception DOM non capturées. Il suffit de vous rendre sur n’importe quelle page de sujet en mode incognito pour les voir : https://howtodiscuss.com/t/profit/7022
-
Une autre erreur survient lorsque je navigue d’un ancien sujet vers un nouveau : un avertissement apparaît dans la console. Une publicité Google Vignette est affichée, mais à cause de cet avertissement, la publicité disparaît et la page navigue. Par conséquent, l’utilisateur ne peut jamais cliquer sur les publicités Google Vignette Interstitial qui apparaissent entre les chargements ou les navigations de page.
Avis de dépréciation : La suppression de tous les écouteurs d’événements d’un coup est dépréciée ; veuillez supprimer chaque écouteur individuellement. How many ounces is a 1 4 cup - How To Discuss
- J’essaie également d’afficher une publicité Google fixe et collante (sticky) dans la barre latérale droite d’une page de sujet unique, en utilisant ce code :
Code JavaScript pour insérer une publicité fixe collante dans la barre latérale du sujet (il faut aussi le rendre compatible avec la Table des Matières - ToC)
<!-- code de plugin pour afficher une publicité fixe -->
<script type = "text/discourse-plugin"
version = "0.8" >
var friends_retries = 0;
var friends_timeout;
api.decorateWidget('topic-timeline-container:before', helper => {
return helper.h('div.side-block', [
helper.rawHtml('<div id="friends"></div>'),
]);
});
api.onPageChange(() => {
if (window.location.href.indexOf("/t/") > -1) {
console.log('page changée - sujet');
friends_retries = 0;
window.setTimeout(loadFriends, 100);
} else {
//console.log( 'page changée - pas un sujet');
}
});
function loadFriends() {
if (!document.getElementById('friends')) {
//var timer;
friends_retries++;
if (friends_retries < 10) {
//console.log('timeout reprogrammé, essai ' + friends_retries);
window.setTimeout(loadFriends, 100);
} else {
clearTimeout(friends_timeout);
// window.clearTimeout(loadFriends);
console.log('timeout effacé, abandon');
// loadFriends();
}
} else {
var bHTML = ' <!-- Barre latérale du sujet timeline HTD --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-7087907313091932" data-ad-slot="5067761793" data-ad-format="auto" data-full-width-responsive="true"></ins>';
// var bHTML = '<img src="https://via.placeholder.com/300x250?text=300x250+MPU" alt="Girl in a jacket">';
$("#friends").html(bHTML);
}
}
</script>
<!-- code de plugin pour afficher une publicité fixe -->
Voici son code CSS :
/* pour la publicité fixe */
/* correction de la mise en page timeline 2.6.0.beta5 */
@media screen and (min-width: 925px) {
.container.posts .topic-navigation {
margin-left: 7em;
}
}
#friends {
display:block;
//width:300px;
height:150px;
margin-left:-90px;
margin-top:-25px;
margin-bottom:90px;
}
/* pour la publicité fixe */
Parfois, ce code fonctionne, mais il ne fonctionne pas sur les pages où la Table des Matières (ToC) apparaît, par exemple, cela ne fonctionne pas sur How Many Grams In A Quarter Ounce? - How To Discuss
Quelqu’un peut-il corriger mon erreur dans mon code afin qu’il puisse s’afficher sur les pages avec ToC également ?
-
J’ai également remarqué un autre bug dans mon code et globalement dans le code du plugin publicitaire Discourse : lorsque je navigue d’une page à une autre, mon code publicitaire AdSense n’est jamais actualisé ni rechargé, il ne déclenche donc aucune impression publicitaire. Peut-être parce que Discourse ne recharge pas entièrement la page lors de la navigation. Je souhaite que les publicités soient actualisées et que la page entière soit rechargée à partir de n’importe quelle navigation par lien. Comment puis-je résoudre ce problème ?
-
Je reçois également de nombreuses erreurs de type frame-src sur mon site : https://howtodiscuss.com/t/how-mouthwash-rinse-become-a-necessary-step-in-oral-hygiene/30631
Le cadrage de 'https://pagead2.googlesyndication.com/' a été refusé car il viole la directive suivante de la Politique de sécurité du contenu (CSP) : "frame-src cm.g.doubleclick.net googleads.g.doubleclick.net www.google.com accounts.google.com pagead2.googlesyndication.com/pagead/s/cookie_push.html gmsg: https://tpc.googlesyndication.com/sadbundle/$csp=er3$/1522577804659956528/index.html".
Voici à quoi ressemblent mes paramètres CSP :
Mais je ne sais pas comment autoriser les requêtes de iframes Google Ads ? J’ai également essayé ce code, mais cela ne fonctionne pas bien ; je vois toujours les erreurs frame-src ci-dessus. Si j’ajoute des valeurs à côté de frame-src dans la balise meta, cela me donne l’erreur indiquant que nous ne pouvons pas utiliser frame-src dans la balise meta.
<!--<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' http://* 'unsafe-inline'; frame-src ; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'" />-->
Ce serait une aide considérable si quelqu’un pouvait m’aider à résoudre mes problèmes :
Je reçois même de telles erreurs sur ma page d’accueil : https://howtodiscuss.com/ (pour reproduire les erreurs, ouvrez la page en mode incognito, ou utilisez un VPN, ou rafraîchissez simplement plusieurs fois ou naviguez vers d’autres pages ; vous trouverez les erreurs dans la console JS et verrez également la publicité Google Vignette disparaître sans donner à l’utilisateur la chance de cliquer dessus).
J’espère que quelqu’un pourra m’aider.
Mon site est hébergé sur Cloudflare, j’utilise la dernière version de Discourse 2.6.0.beta6. J’ai mis à jour tous les plugins et j’ai également reconstruit Docker à l’instant. Pourtant, je vois toujours ces erreurs.


















