Questo post non vuole essere l’ennesima guida su come creare un blog di successo, su come si scrive un post su di un blog, su cosa è un blog o su come si guadagna con un blog. Parto dall’assunto che voi tutti sappiate già di cosa sto parlando, anche se non è ho parlato in uno dei miei post precedenti.
Diversamente voglio soffermarmi su un micro aspetto della blogosfera legato in particolare alla piattaforma di blogging che sto usando, SubText, e ad AsSense.
Credo che AdSense sia il sistema più diffuso tra i blogger “casalinghi” per monetizzare con il proprio blog ospitando degli annunci pubblicitari tramite banner, annunci di testo e referral. Vi è poi un altro sistema dello stesso AdSense, che è l’AdSense per la ricerca, cioè la possibilità di ospitare il form di Google tramite il quale i vostri visitatori possono interrogare il motore di ricerca per trovare qualcosa nel Big Motore o focalizzando la ricerca solo per il vostro sito.
Una integrazione che non si potrebbe fare
Google ha fatto (e continuerà a fare) un ottimo lavoro prevedendo che alla fine di ogni configurazione si possa copiare il codice HTML da inserire all’interno delle proprie pagine per essere pronti da subito. Tuttavia il codice HTML proposto non sempre funziona, ma non per una carenza del codice proposto, quanto per delle impossibilità di integrazione.
Nella fattispecie se si volesse rimpiazzare il search box di SubText con quello di Google, la cosa non è del tutto immediata. Vediamo il perchè, scendendo anche un pò sul lato tecnico.
Per funzionare il form di ricerca, è previsto per l’appunto l’uso del tag form con un metodo get che punta alla pagina di google. Un utente normale, con la piattaforma SubText, avrebbe come unica possibilità quella di mettere questo codice all’interno dell’area Opzioni -> Configurazione -> Annunci statici. L’aggiunta del codice però, se qualcuno ha provato, non funziona, perchè da un punto di vista di output il form di Google verrebbe inserito all’interno di un ulteriore altro form generato dalla piattaforma di blogging, il cui metodo post fa un postback su stesso e che - senza entrare troppo nel merito - non permette al form con metodo get di Google di indirizzare correttamente la richiesta.
Come integrare AdSense per la ricerca in SubText
Rinunciare all’AdSense per la ricerca non mi pareva una scelta plausibile. Ecco quindi la soluzione per questa integrazione:
- Avere accesso alla macchina che ospita la piattaforma di blogging, e quindi al codice apsx
- Saper lavorare sia in HTML che in ASP.Net
Vediamo in maniera semplice come si può ovviare al problema.
Si deve lavorare esclusivamente su di un file, contenuto per ciascuno skin, nell’apposita cartella controls. Il file in questione è il controllo ASPX SubtextSearch.ascx. Questo file è quello del controllo utilizzato per il rendering del box di ricerca del blog. La zona di nostro interesse è quella dove c’è scrito:
Per prima cosa si deve procedere ad un commento HTML dei due controlli ASP.Net. Il commento HTML consentirà al motore ASP.Net di effettuare correttametne il rendering dei due controlli che hanno comunque delle dipendenze all’interno delle classi richiamate, ma di non venire visualizzati nell’output finale, ottenendo quello che vogliamo cioè che il form standard non venga mostrato. A questo punto dobbiamo aggiungere il form di Google. Si dovrà allora prendere il codice generato dall’AdSense per la ricerca e metterlo immediatamente sotto i due tag appena commentati, aggiustando l’HTML come più si ritiene opportuno, ma senza andare a togliere i campi input necessari.
Nel mio caso ho proceduto così:
input <span class="attribute-name"> type</span>=<span class="attribute-value">"text" </span><span class="attribute-name">name</span>=<span class="attribute-value">"q" </span><span class="attribute-name">size</span>=<span class="attribute-value">"31" </span><span class="attribute-name">maxlength</span>=<span class="attribute-value">"255" </span><span class="attribute-name">value</span>=<span class="attribute-value">"" </span><span class="attribute-name">id</span>=<span class="attribute-value">"sbi" </span><span class="attribute-name">class</span>=<span class="attribute-value">"searchterm"</span>>input> input<span class="attribute-name"> type</span>=<span class="attribute-value">"submit" </span><span class="attribute-name">name</span>=<span class="attribute-value">"sa" </span><span class="attribute-name">value</span>=<span class="attribute-value">"Cerca" </span><span class="attribute-name">id</span>=<span class="attribute-value">"sbb" </span><span class="attribute-name">onclick</span>=<span class="attribute-value">"noPostBack()" </span><span class="attribute-name">class</span>=<span class="attribute-value">"searchButton"</span>
Se notate ho aggiunto al pulsante di Submit della form di ricerca un evento onclick - <span class="attribute-name">onclick</span>=<span class="attribute-value">"noPostBack()</span>
- che viene azionato quando la form è sottomessa.
A che pro? Dentro a quell’evento il cui semplice codice Javascript è quello qui sotto riportato, non faccio altro che catturare il post della form, trasformare il metodo generale della form inserita dal motore di blogging dal metodo post in get, cambiare l’action passando l’indirizzo fornitomi da google e cancellando parametri che a Google non servono, tipo il ViewState.
function noPostBack() {
document.forms[0].method = "get";
document.forms[0].action = "http://www.google.it/custom";
document.forms[0].__VIEWSTATE.name = '';
document.forms[0].__EVENTVALIDATION.name = '';
}
Risultato? Adesso anche AdSense per i contenuti può lavorare con Subtext. Certo a Google verrà inviato qualche parametro di troppo (dovuto al fatto che si usa il metodo get) ma questo non inficia sul funzionamento, permettendo anche a voi di monetizzare il vostro blog tramite l’AdSense per la ricerca.