2012-05-31 16 views
12

Ho letto this, this e this, ma penso che la mia situazione sia diversa. Non ho bisogno di aggiornare gli annunci ogni volta che effettuo una chiamata AJAX.Adsense con AJAX

Ho una pagina chiamata "mypage.php". Carico la pubblicità di Adsense in primo div, quando la pagina è aperta. Il mio secondo div è vuoto.

Dopo aver caricato completamente DOM, faccio un post AJAX. E metti il ​​risultato nel div "lower_content". Questa interruzione di TOS Adsense?

<body> 
    <div id="adSense_content> 
    <script> adsense script </script> 
    </div> 

    <div id="lower_content"> 
    empty in start 
    </div> 
</body> 

Il mio file js:

$(document).ready(function() { 
    $.ajax({ 
    type: "POST", 
    url: "/getit", 
    success: function(data) { 
      $("#lower_content").html(data); 
     } 
    }); 
} 

Nota: Perché non caricare secondo contenuto quando la pagina si apre? Perché le chiamate AJAX rispondono in 6-7 secondi. Quando il carico del server è alto, la risposta arriva anche in 10-15 secondi. Per non fare aspettare il visitatore con una pagina vuota, o addirittura rimbalzare dalla pagina. Io mostro il layout al visitatore all'inizio e carico il contenuto quando arriva la risposta della chiamata AJAX.

modifica: Mettere un annuncio a una pagina vuota è againts TOS di Adsense. Ma la pagina che ho citato è vuota durante il caricamento dei dati della tabella. Dopo aver caricato l'intera tabella con AJAX, la pagina viene caricata con il contenuto. Ma l'annuncio viene inserito durante il caricamento della pagina html.

risposta

5

Ha fatto qualche ricerca in più .. non esiste una soluzione facile al tuo problema.

Se il tuo sito utilizza AJAX per la maggior parte del contenuto, puoi provare a implementare le specifiche di Google Ajax-Crawling (alias Hash-Bang). Ciò garantirà che il bot di Google e il bot di Adsense eseguano la scansione del tuo contenuto AJAX. Questo aiuterà sia con annunci pertinenti sia con risultati di ricerca. https://developers.google.com/webmasters/ajax-crawling/docs/specification

o si deve attendere che il programma AdSense per Ajax ricominciare. https://developers.google.com/adsense-for-ajax/

Aggiornamento: Risposta modificata dopo ulteriori ricerche.

+0

Punto interessante Hmm .. Ma faccio call AJAX dopo document.ready, perché a volte diventa 10-15 secondi quando viene richiesta la richiesta AJAX. (A causa del carico del server, ecc.) Quindi, per non far aspettare o rimbalzare il visitatore dalla pagina, mostro lo schizzo della pagina al visitatore e compilo le parti dei dati dopo la risposta di AJAX. – trante

+0

Risposta modificata dopo ulteriori ricerche. –

+1

AdSense per AJAX è stato interrotto. –

5

Il codice AdSense di Google di default è qualcosa di simile:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> 
<!-- banner-name --> 
<ins class="adsbygoogle" 
    style="display:inline-block;width:728px;height:90px" 
    data-ad-client="ca-pub-123456789" 
    data-ad-slot="987654321"></ins> 
<script> 
(adsbygoogle = window.adsbygoogle || []).push({}); 
</script> 

Spit il codice fino in 3 parti per renderlo lavorare su contenuti caricati con Ajax.

Includi lo script di Google da qualche parte nella tua pagina (nella tua <testata> per esempio) solo una volta.

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> 

Inserire il codice di Google nel suo sito web (Ajax) dove si vuole il banner (s)

<ins class="adsbygoogle" 
    style="display:inline-block;width:728px;height:90px" 
    data-ad-client="ca-pub-123456789" 
    data-ad-slot="987654321"></ins> 

trigger questa funzione dopo che il contenuto è stato modificato tramite la tecnologia AJAX. (Non dimenticate di attivare questo il caricamento della pagina troppo, per visualizzare gli annunci quando le pagine non viene caricato tramite la tecnologia AJAX.)

function displayGoogleAds(){ 
    $('ins').each(function(){ 
     (adsbygoogle = window.adsbygoogle || []).push({}); 
    }); 
} 

Ps.Non sono sicuro che Google lo consentirà, poiché modifichi/modifichi il codice un po '. Ma attualmente sto usando in questo modo.

+0

Grazie mille ... Sto usando la tua attuale soluzione ma a volte risponde con "cattiva richiesta" a qualche idea? – UrielUVD

+0

@UrielUVD potrebbe essere utile rimuovere la parte "asincrona" dal