Annunci AdSense Disabilitati: La Guida Definitiva Alla Risoluzione Del Problema
Il Problema.
Un bellissimo giorno di Agosto mi arriva una mail dallo staff di Google Adsense di questo tenore:
OGGETTO:
la pubblicazione degli annunci di Google AdSense sul tuo sito è stata disattivata.
Gentile publisher,
Con la presente email le comunichiamo che uno dei suoi siti web non è attualmente conforme alle norme del programma AdSense e pertanto la pubblicazione degli annunci è stata sospesa sul suo sito web.
N. ID problema: XXXXXXXXXX
La pubblicazione degli annunci è stata disattivata per: xxx.xxx
Pagina di esempio in cui si è verificata la violazione: http://www.xxxxxxxxx.html
Azione richiesta: controlla tutti gli altri siti rimanenti nel tuo account per verificarne la conformità.
Stato dell'account corrente: Attivo
Spiegazione della violazione
Apro il pannello di controllo AdSense e vedo:
Ed, in Particolare:
Controllo sul mio sito web ed, effettivamente, gli annunci risultavano disabilitati su tutto il sito.
NOTA BENE: Fate attenzione a non confondere questo genere di segnalazioni di AdSense, dove in pratica ti viene detto "ripulisci e ti non succede nulla", con quelle di ban da Adsense definitivo e inappellabile, solitamente per "clic e/o impressioni non validi " (dove Google invia una email del tipo "Ai publisher il cui account è stato disabilitato per clic non validi non è consentita un’ ulteriore partecipazione al programma AdSense e non verranno inviati ulteriori pagamenti"). Sono due cose profondamente diverse!
OK: NIENTE PANICO.
L' articolo che mi veniva contestato era un articolo su Oliviero Toscani e parlava dei suoi manifesti. Non ci trovai assolutamente nulla di male quando lo pubblicai ( non erano fra i suoi manifesti più "cruenti", anzi ).
Ho quindi subito trovato questa contestazione da parte di AdSense assolutamente esagerata.
Ma si sà: Google è il capo ( monopolista ) e comanda.
OK. DEVO ADEGUARMI IO.
Penso: sarà sufficiente rimuovere l' articolo incriminato dal sito e tutto sarà ripristinato a dovere!
Ottimo.
Lo faccio e, subito dopo, invio un ricorso per la violazione delle norme, all' indirizzo:
https://www.google.com/adsense/app#policy-appeal
Aspetto quindi fiducioso una loro risposta.
LA ( BRUTTA ) SORPRESA
Il team AdSense mi risponde ( devo dire in maniera molto molto veloce ) ma si tratta della solita mail automatica.
Capisco che, ancora una volta parlando di Google AdSense, non riceverò mai nessun contatto umano.
La mail che mi arriva è la seguente:
OGGETTO:
In riferimento al suo ricorso sulla violazione del regolamento di Google AdSense
MAIL:
Gentile publisher,
Ti ringraziamo per averci inviato un ricorso. Tuttavia, dopo avere esaminato attentamente il sito web xxx.xx e le argomentazioni del tuo ricorso, per il momento abbiamo deciso di non riattivare la pubblicazione degli annunci sul tuo sito in quanto questo non è ancora conforme al regolamento.
VIOLENZA/CONTENUTI CRUENTI: come stabilito dal regolamento del programma, ai publisher AdSense non è consentito pubblicare annunci Google su pagine con contenuti violenti o perturbanti, compresi siti con testi o immagini cruenti. Ulteriori informazioni su questa norma sono disponibili nel Centro assistenza alla pagina (https://www.google.com/adsense/support/bin/answer.py?hl=it&answer=105954).
Gli annunci Google non possono essere inseriti in contenuti per adulti o destinati a un pubblico adulto. Questo include tutti i siti contenenti:
Nudità integrale
Immagini, video o giochi pornografici
Cartoni animati porno o "anime" (hentai)
Per ulteriori informazioni su come preservare i contenuti adatti ai minori, consulti le nostre linee guida del programma e questi suggerimenti forniti dal team delle norme.
Può anche guardare il nostro breve video animato e i promemoria sulle norme relativi a questo argomento.
Gli annunci Google non possono essere inseriti in pagine per adulti o destinate a un pubblico adulto. Questo include, a titolo esemplificativo, pagine con immagini o video contenenti:
Nudità coperta strategicamente
Indumenti trasparenti o sexy
Pose volgari o provocanti
Primi piani di seno, glutei o genitali
Per ulteriori informazioni su come preservare i contenuti adatti ai minori, consulti le nostre linee guida del programma e questi suggerimenti forniti dal team delle norme.
Può anche guardare il nostro breve video animato e i promemoria sulle norme relativi a questo argomento.
VIOLENZA: come stabilito dal regolamento del programma, ai publisher AdSense non è consentito pubblicare annunci Google su pagine con contenuti violenti, tra cui i siti con contenuti che riguardano rottura delle ossa, incidenti con treni o auto o gravi lesioni personali. Ulteriori informazioni su questa norma sono disponibili nel Centro assistenza alla pagina (https://www.google.com/adsense/support/bin/answer.py?hl=it&answer=105954).
Verifichi nuovamente la conformità del suo sito web. Quando apporta le modifiche, tenga presente che l'URL citato nella notifica di violazione delle norme può essere solo un esempio e che violazioni simili possono essere presenti su altre pagine del suo sito web. Deve adoperarsi per conformare tutto il sito web per potervi ripristinare la pubblicazione degli annunci.
Per sottoporre il sito a una nuova verifica di idoneità di partecipazione ad AdSense, consulti le norme del programma e apporti le modifiche necessarie sulle sue pagine web.
Non appena avrà risolto tutti i problemi del sito web, consulti questo articolo del Centro assistenza per sapere come elaborare un ricorso efficace.
La ringraziamo per la collaborazione.
Cordiali saluti,
Il team di Google AdSense
Caspita, penso io, ho rimosso del tutto l' articolo che mi avevano segnalato.
Che cosa altro vorranno?
Vado allora a spulciarmi il pannello di controllo AdSense in cerca di indizi o di ulteriori dettagli e scopro una cosa che mi ha fatto raggelare il sangue:
vedo, con orrore, che esiste una scritta minuscola:
(+altri 3)
Ok, ok: ci sono altri 3 articoli sul mio sito che non gli piacciono oltre a quello INNOCENTISSIMO ( voglio ripeterlo ) su Oliviero Toscani.
Altri tre... TRE
Si.. MA QUALI?
Scopro, infatti, che loro nella mail e nel pannello di controllo mi segnalano sì un articolo in violazione ( sempre secondo loro, perchè alla fine si tratta di valutazioni umane di regole scritte da terzi ) ma ne segnalano UNO ED UNO SOLO ( e solo a titolo di esempio ).
Gli altri non te li specificano proprio nè ti danno nessun indizio su come trovarli: te li devi trovare da solo e sono sostanzialmente affaracci tuoi.
Il loro principio, verosimilmente, è che tu debba ricontrollarti tutto il sito ed eliminare tutto ciò che a loro non va.
Questa cosa non sarebbe nemmeno un grosso problema se hai un sito di 5, 10, 15 o 100 pagine.
GIA'.
Ma se hai un sito composto da 22.000 articoli che cosa fai?
OK: PANICO.
LA SOLUZIONE:
Avevo di fronte sostanzialmente 3 possibilità, due delle quali decisamente splatter.
- 1. Spulciarmi a manina santa 22.000 articoli e cercare di capire - senza per altro averne certezza alcuna - cosa gli dava fastidio ( SOLUZIONE SCARTATA )
- 2. ELIMINARE fisicamente dal sito 22.000 articoli e ricominciare da capo ( SOLUZIONE SCARTATA )
- 3. Ingegnarmi ( non poco ) e daje giò di reverse engineering
Ho scelto la soluzione 3.
Partiamo da quello che ho, dalle informazioni in mio possesso.
Quello che so è che :
-
1. Spulciarmi a manina santa 22.000 articoli e cercare di capire - senza per altro averne certezza alcuna - cosa gli dava fastidio ( SOLUZIONE SCARTATA )
-
2. ELIMINARE fisicamente dal sito 22.000 articoli e ricominciare da capo ( SOLUZIONE SCARTATA )
-
3. Ingegnarmi ( non poco ) e daje giò di reverse engineering
E' molto?
E' sufficiente?
Non è poco.
In definitiva, mi basta aspettare che Assenzio vada a controllare il primo articolo a me noto, quello di Oliviero Toscani, e che io individui il suo IP.
Poi andrò a vedere in quali altri articoli del mio sito il suo IP compare e... BOOM beccati tutti gli articoli incriminati.
Già ma ci sono dei problemi non di poco conto che bisogna per forza tenere in considerazione.
Vediamoli:
- 1. Non so quando Assenzio effettuerà il controllo.
- 2. Il sito ha migliaia di visitatori al giorno e quindi, magari, parecchie persone potrebbero vedere quello stesso articolo. Chi fra di loro è Assenzio?
- 3. Non ho un accesso ssh al server e quindi non posso consultare i log di Apache per identificarne l' ip. Ho solo un acesso FTP.
- 4. Assenzio controllerebbe l' articolo su Oliviero Toscani e, vedendo che è stato "pulito", passerebbe a controllare l' articolo incriminato successivo ( che non conosco ).
Vedendo che questo secondo articolo non è stato "pulito" ( perchè - appunto - non lo conosco ) potrebbe anche smettere di controllare i successivi dato che, in fin dei conti, basta che anche uno solo non sia conforme per rigettare la mia richiesta.
In questo caso, quindi, potrebbe bocciarmi subito il nuovo ricorso senza che io possa venire a conoscenza delle ultime due url rimanenti considerato il fatto che Assenzio non le aprirebbe del tutto, queste non verrebbero loggate dal sistema ed io non potrei dedurle in alcun modo. Sob.
IL PIANO
Il piano è davvero molto semplice: consiste nel risolvere i problemi ed oltrepassare gli ostacoli.
I problemi vanno risolti. Sempre.
Risoluzione del problema 1:
Ho notato che quando ho fatto un ricorso per la violazione delle norme, Adsense mi ha risposto molto molto in fretta. Diciamo nel giro di qualche ora.
BENE.
Allora ciò vuol dire che il controllo di Assenzio avverrà in un tempo preciso e limitato e cioè da quando io manderò il ricorso sino a quando Adsense mi manderà una mail di risposta.
Qualche ORA quindi: tempo limitato e breve.
ll problema 1 è risolto.
Risoluzione del problema 2:
Chi, tra coloro che visiteranno ( in quell' arco di tempo ) l' articolo su Oliviero Toscani, è davvero Assenzio?
Qui si gioca a "Indovina Chi?", cari signori, se non lo avete ancora capito.
Abbiamo detto che Google non ha sedi "tecniche" in Italia. I loro "controller" sono in Irlanda o per lo meno non in Italia.
Questa è un' ottima notizia.
E' un' ottima notizia perchè il mio sito è in italiano e quindi saranno davvero pochi gli IP NON italiani che visiteranno in poche ore un articolo scritto in italiano su Oliviero Toscani e per giunta parecchio datato.
Quindi passiamo al setaccio tutti gli ip dei visitatori dell' articolo su Oliviero Toscani e buttiamo via tutti gli ip italiani.
http://www.ip2nation.com/
è un ottimo sito che offre un database di ip associati ad una nazione corrispondente. Decido quindi di installare sul mio server il db ip2nation e, dopo qualche prova, scopro che funziona alla grandissima e ci becca sempre ( o quasi ).
Adesso ho modo, via script php, di filtrare gli ip italiani e quindi di monitorare, di riflesso, solo quelli che non lo sono.
Come?
Semplice:
$db = mysql_connect($server, $username, $password) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
$sql = 'SELECT
country
FROM
ip2nation
WHERE
ip < INET_ATON("'.$_SERVER['REMOTE_ADDR'].'")
ORDER BY
ip DESC
LIMIT 0,1';
list($country) = mysql_fetch_row(mysql_query($sql));
if ($country != 'it'){
//eccoci qui: abbiamo filtrato tutti gli ip NON italiani!
}
Se siete un minimo skillati vi starete probabilmente chiedendo:"perchè filtri i non italiani invece di andarti a beccare direttamente gli irlandesi?"
Perchè se è vero che sono sicuro che i "controller" non sono fisicamente in Italia non sono altrettanto STRA CERTO che si trovino proprio in Irlanda. Lo suppongo, ma non lo so.
Inoltre, nel caso in cui ip2nation non riuscisse nel suo compito, non perderei comunque un IP potenzialmente utile, IP che invece sicuramente perderei nel caso di un filtro inverso e cioè del tipo "solo gli irlandesi".
Terzo motivo: non escludo che usino dei proxy.
Il problema n.2 è risolto.
Risoluzione del problema 3:
Non ho un logger stile quello di Linux Debian / Apache, che sarebbe davvero il massimo della vita ( Analytics non basta ASSOLUTAMENTE per una cosa del genere ).
Questo è un bel problema.
Ma il grande e saggio maestro Pai Mei diceva: "se non hai un logger, createne uno".
Seguirò il suo consiglio. Creo una dir sul server che chiamo "logadsense" e poi mi creo il mio bel logger integrandolo con i dati del db ip2nation ed applicando qualche altro bel filtro:
$sql = 'SELECT
country
FROM
ip2nation
WHERE
ip < INET_ATON("'.$_SERVER['REMOTE_ADDR'].'")
ORDER BY
ip DESC
LIMIT 0,1';
list($country) = mysql_fetch_row(mysql_query($sql));
if ($country != 'it' && isHuman()){
//Da qui ho a che fare con un ip NON ITALIANO e che inoltre è quasi certamente un essere umano e NON UN BOT: filtro infatti con la funzione isHuman() - una funzione che ho scritto tempo fa e che pubblicherò in qualche mio futuro post - e che serve proprio a filtrare chi è un essere umano da chi è un robot
// Setto la folder che ho creato per i log
$logFolder = "logadsense";
//Mi salvo la uri
$uri = $_SERVER['REQUEST_URI'];
//Recupero informazioni utili: ip, data e ora
$today = getdate();
$ip = $_SERVER['REMOTE_ADDR'];
$month = $today['mon'];
$day = $today['mday'];
$year = $today['year'];
$hours = $today['hours'];
$minutes = $today['minutes'];
// decido il formato della mia stringa di log
$stringToLog = $year . "-" . $month . "-" . $day . " " . $hours . ":" . $minutes . " " . $ip . " " . $uri . "\r\n";
// creo tanti file di log quanti sono i giorni in cui lo script rimarrà attivo
$file = $logFolder.'/'.$year."-".$month."-".$day.".txt";
//pulisco i log antiquati ( del mese prima )
if ($month == 1){
$precMon = 12;
$precYear=$year-1;
}else{
$precMon = $month -1;
$precYear=$year;
}
$oldFile = $logFolder.'/'.$precYear."-".$precMon."-".$day.".txt";
if (file_exists($oldFile)){
delete($oldFile);
}
//Se non esiste il file di log di oggi, lo creo
if (!file_exists($file)){
touch($file);
}
//ancora filtri: voglio loggare solo le pagina con estensione html
if (preg_match("/.html/i", $uri)){
//Tutto come da copione: scrivo.
file_put_contents($file, $stringToLog, FILE_APPEND | LOCK_EX);
}
}
Ok, il codice non è bellissimo, ne convengo ( l' ho scritto di fretta e servirà solo per qualche ora) ma funziona.
Ecco cosa viene fuori:
I file, al loro interno, sono fatti così ( notate che il log parte da mezzanotte in punto di ogni giorno ):
Ora: dove mettere questo codice?
In una parte del sito che viene richiamata ogni volta che compare un articolo o una pagina 404 ( dopo capirete perchè anche le 404 ).
Nel mio caso nel file footer.php.
So cosa vi state chiedendo, mascherine: "con Wordpress e Joomla come faccio, dove lo metto?"
Potete metterlo nel file del template, per esempio.
Il problema n.3 è risolto.
Risoluzione del problema 4:
Devo fare in modo che Assenzio apra fisicamente tutti, ma proprio TUTTI, gli articoli incriminati ( così che io possa loggarli e scoprire quali sono ).
Come fare?
Perchè io sia sicuro che li apra tutti fino all' ultimo devo fare in modo che tutti, sino almeno al penultimo, siano OK.
La soluzione che ho trovato è stata quella di metterli quasi tutti offline per qualche ora, il tempo tra la mia richiesta di ricorso e la loro risposta.
Ne ho lasciati online solo un centinaio, i più recenti, nella speranza di non essere così sfortunato che uno degli articoli incriminati fosse proprio fra questi 100 ( ma le probabilità erano davvero minime: 100 su 22.000 ).
Nel mio caso ho fatto così:
if ($id_articolo <= 21900){
header("HTTP/1.0 404 Not Found");
header ("Location:http://www.xxxxx.xxx/errore/");
die();
}
NB Se mettete questo ultimo script prima del logger siete abbastanza ciucci.
Se l' id dell' articolo è minore o uguale a 21900 restituisci un 404.
Ho schiacciato il tasto "SPENG", insomma.
Come dicevo più in alto, però, si è trattato solo di qualche ora.
Pensandoci bene, col senno di poi, avrei potuto usare una soluzione decisamente più elegante e meno traumatica ( che non vi dirò ;-P ) ma ormai quel che è fatto è fatto.
Soprattutto: ho risolto così e ve la racconto così.
Anyway, Google non si è arrabbiato poi tanto, anzi: non si è arrabbiato per niente.
Le scansioni sono continuate e tutto è tornato alla normalità in pochissimo tempo sia a livello di indicizzazione che di utenza.
Alla fine un piccolo "blackout" ci può stare ogni tanto.
Il problema n. 4 è risolto.
BENE BENE BENE....
E' TUTTO PRONTO!
Scriviamo un nuovo ricorso a Google Adsense
https://www.google.com/adsense/app#policy-appeal
ed aspettiamo.
Passa qualche ora ( circa 5 ) e mi arriva la seguente mail:
Gentile publisher,
La ringraziamo di avere apportato le modifiche richieste per conformare il sito alle nostre norme. Dopo un'attenta analisi di xxxx.xxx, abbiamo riattivato la pubblicazione degli annunci sul sito.
Poiché la pubblicazione degli annunci sul sito è stata temporaneamente interrotta, la riattivazione potrebbe richiedere più di 48 ore. Apprezziamo la sua comprensione e la sua collaborazione.
Cordiali saluti,
Il team di Google AdSense
WOW! Il galleggiante si muove.
Ma non è mica finita qui.
Adesso bisogna pulire PER BENE quello che non gli andava a genio PRIMA di tornare online.
Nella rete ci è finito qualcuno ma ora bisogna vedere che cosa abbiamo davvero pescato oggi.
Mi vado a vedere il file di log corrispondente al giorno del controllo ed elimino tutti i log precedenti alla mia richiesta di ricorso e successivi alla loro mail di risposta.
Adesso faccio un CTRL+F e cerco "oliviero" ( l' articolo su Oliviero Toscani, ricordate? )
e...TANA PER ASSENZIO!
Compare un solo indirizzo ip.
Facciamo una verifichina: andiamo su
http://www.iplocation.net/
e vediamo un po' che cosa sà dirmi di quell' ip.
And the winner is...IRLANDA!
Perfetto: ho trovato l' ip di Assenzio ( che mi salvo :) ).
Adesso un secondo CTRL+F sul file di log e questa volta cerco il suo IP.
Cosa scopro?
Compare 4 volte in tutto, guarda caso esattamente quanti erano gli articoli che mi contestavano.
E' fatta!
A questo punto:
-
Mi tiro giù gli URI degli articoli, li cancello, e rimetto tutti gli altri articoli "buoni" online.
-
Stoppo il mio logger, tanto non serve più. Buon viaggio, Aquarius. E grazie di cuore.
-
Anzi, a dir la verità, ho scritto un programma php che mi logga solo le pagine aperte da quell' ip e mi manda una mail ogni volta che quell' IP mi visita.. non si sa mai. Il nemico va sempre tenuto d' occhio.
Il caso è chiuso: ciao Assenzio, chiunque tu sia.
Alla prossima!