Autore: igorfelluga

Web & Mobile Developer and Web Marketing passionate. Continuous looking for new trend. Good Wine, Diving, SPA and wellness fan.

About igorfelluga

Web & Mobile Developer and Web Marketing passionate. Continuous looking for new trend. Good Wine, Diving, SPA and wellness fan.

Find more about me on:

Here are my most recent posts

Settare CakePHP per il multilingua

Spesso mi sono trovato nella situazione di realizzare dei progetti multilingua, per Cake c’è un plug-in che potete utilizzare, sviluppato dal CakeDC, che personalmente uso in tutti i nuovi progetti.

Il vostro sito passerà dall’indirizzo http://www.miosito.it/articoli all’URL http://www.miosito.it/eng/articoli.
Questa modifica da diversi benefici al vostro progetto:

  1. gli URL sono seguibili dai motori di ricerca e vengono indicizzate tutte le pagine con URL diversi per ogni lingua
  2. quando un utente condivide la pagina che sta visionando passa un URL completo e nella lingua corretta

Il plug-in i18n lo trovate nel repository https://github.com/CakeDC/i18n

Vediamo come installarlo ed iniziare ad utilizzare il multi lingua.

Prima di tutto dovete scaricare o clonare la repo nella cartella app/Plugin, verificate di creare la cartella i18n e che tutti i file siano presenti al suo interno.

Ora bisogna aprire il file app/Config/bootstrap.php ed inserire queste righe:

define('DEFAULT_LANGUAGE', 'ita'); // le 3 lettere che definiscono la vostra lingua di default
Configure::write('Config.languages', array('ita','eng', 'deu', 'fre', 'jpn', 'spa', 'rus')); //lista delle lingue che volete utilizzare nel sito
CakePlugin::load('I18n', array('routes' => true)); //caricamento del plugin

Queste righe servono per definire la lingua di default usata, le lingue usate nel sito e dice a CakePHP di caricare il plugin i18n ed utilizzare la classe I18nRoute che si trova nel plugin.

Bene, spieghiamo a CakePHP come deve utilizzare i nostri nuovi URL. Aprite il file app/Config/routes.php e modificatelo in questo modo:

App::uses('I18nRoute', 'I18n.Routing/Route');
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'), array('routeClass' => 'I18nRoute'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'), array('routeClass' => 'I18nRoute'));

Ricordate che ogni nuova direttiva che andrete ad aggiungere in questo file dovrà avere come parametro array(‘routeClass’ => ‘I18nRoute’).

Assicurati di avere questa riga:

CakePlugin::routes();

dovresti trovarla verso la fine della pagina, e commenta o cancella la riga:

require CAKE . 'Config' . DS . 'routes.php';

Abbiamo quasi finito, ora insegniamo a come creare i nuovi URL, apri il file app/View/Helper/AppHelper.php e modificalo così:

class AppHelper extends Helper {
public function url($url = null, $full = false) {
if (empty($url) || (is_array($url) && !array_key_exists('lang', $url))) {
$url['lang'] = Configure::read('Config.language');
}
return parent::url($url, $full);
}
}

Ottimo, abbiamo finito, ora ti spiegherò ancora due cosette.

Come creare lo switcher per le lingue

Se vuoi creare in modo semplice uno switcher per cambiare la lingua, CakePHP ha già “tutto pronto”. Nel tuo layout devi solamente inserire queste poche righe e magicamente vedrai comparire le bandiere per la selezione della lingua.

Aggiungi nell’AppController l’helper dell’i18n, apri app/Controller/AppController.php e modifica così:

class AppController extends Controller {
public $helpers = array('I18n.I18n', ...);
}

nel tuo layout, in questo caso quello di default, app/View/Layouts/default.ctp

<?php echo $this->I18n->flagSwitcher(array('class' => 'languages', 'id' => 'language-switcher')); ?>

Come usare il requestAction

Ti capiterà di utilizzare il requestAction all’interno del tuo progetto, cerca di usarlo quando è strettamente necessario, quando fai una chiamata con questa funziona purtroppo CakePHP ha bisogno di un aiuto, gli devi specificare in che lingua ti servono i risultati, questo si fa così:

&lt;?=$this-&gt;requestAction('/'.Configure::read('Config.language').'/menus/generate/1',array('return'));?&gt;

oppure, questo è il metodo che uso io, in AppController:

public function beforeFilter() {
$this-&gt;set('language',Configure::read('Config.language'));
}

così ho la lingua disponibile in tutto il sito e per il requestAction:

&lt;?=$this-&gt;requestAction('/'.$language.'/menus/generate/1',array('return'));?&gt;

tutto questo naturalmente nella view.

Aumentare le prestazioni, Javascript alla fine del codice HTML

Per aumentare le prestazioni di una pagina HTML ci sono varie tecniche che si possono utilizzare, dall’utilizzo della cache alla compressione delle pagine lato server con gzip, all’ottimizzazione delle immagini, ed altre ancora che se applicate con criterio possono ridurre in modo consistente il caricamento e la visualizzazione della pagina web.

Una tecnica che sta prendendo sempre più piede è di spostare tutto o quasi il codice Javascript a fondo pagina, prima della chiusura dei tag </body></html>. Questa tecnica porta diversi vantaggi:

  1. nel caso ci sia un errore nel vostro Javascript la pagina viene comunque caricata completamente senza essere interrotta
  2. si crea all’utente l’illusione di aver caricato la pagina molto velocemente perché gli script devono essere ancora scaricati ed eseguiti

Spostare il Javascript a fondo pagina ha anche anche degli aspetti negativi:

  1. tutti gli script che inserite “inline” dovranno essere eseguiti al caricamento di tutto
  2. le eventuali modifiche grafiche fatte tramite Javascript saranno eseguite “solamente” a caricamento completato

Un esempio pratico:

<html>
<head>
<link rel="stylesheet" href="css/main.css" type="text/css" media="screen" />
</head>
<body>
<div id="content">Hello World!</div>
<script type="text/javascript" src="js/script1.js"></script>
<script type="text/javascript" src="js/script2.js"></script>
<script >function abc(){ alert(&#039;ready&#039;);} abc()</script>
</body>
</html>

Impostare gli obiettivi sul tuo sito web con Google Analytics

Se vuoi capire come sta andando il tuo sito web devi “misurare” cosa fanno i tuoi visitatori. Sul mercato ci sono diversi strumenti che ti permettono di fare questo, io personalmente preferisco ed uso Google Analytics (GA). GA è uno strumento gratuito che serve per avere il controllo sulle statistiche di accesso al tuo sito web, ma sopratutto possiamo usarlo per misurare gli obiettivi raggiunti. Cosa sono gli “obiettivi”? Gli obiettivi sono le azioni che gli utenti del nostro sito compiono e che per noi hanno un certo valore. Tra gli obiettivi più comuni possiamo elencare:

  • iscrizione alla newsletter;
  • invio del form di richiesta informazioni/preventivo;
  • visualizzazione o download di un allegato;
  • registrazione al sito

Perché devo definire degli obiettivi? Come ho scritto sopra, se vogliamo capire cosa sta succedendo sul nostro sito, dobbiamo misurare. Gli obiettivi ci aiutano a misurare l’eficacia delle nostre pagine, dei pulsanti, dei banner o altri strumenti che stiamo utilizzando. Impostando gli obiettivi oltretutto possiamo cercare di capire qual’è la fonte di promozione migliore per quella determinata azione/obiettivo e convogliare di conseguenza le nostre energie verso questa rispetto le altre. Per esempio gli obiettivi possono dirvi:

  • quanti utenti hanno cliccato sulla call-to-action della pagina
  • quanti si sono iscritti alla nostra newsletter
  • quanti hanno scaricato un pdf

Come impostare un obiettivo in Google Analytics Dando per scontato che il sito in questione è già presente nel tuo pannello di amministrazione di Analytics e che tu sia un amministratore, i passaggi sono semplici. 1. Dal menu principale fai clic su Amministrazione; 2. Clicca sul nome dell’account e poi sulla proprietà del sito che ti interessa; 3. Seleziona il profilo al quale vuoi aggiungere l’obiettivo; 4. Ora entra nella tab della scheda Obiettivi analytics-obiettivi-01 5. Per creare un nuovo obiettivo, clicca su + Obiettivo; 6. Inserisci il Nome obiettivo che ti servirà per riconoscerlo nei rapporti; (ti suggerisco un nome semplice e breve) analytics-obiettivi-02 7. Seleziona il Tipo obiettivo:

  1. Destinazione URL: è l’url di una specifica pagina, per esempio quando un utente completa un form potrebbe essere la pagina di ringraziamento. Ricorda che quando un utente entra in questa pagina fa scattare la conversione. L’opzione Canalizzazione obiettivo serve per definire i vari passaggi che l’utente dovrebbe fare per completare l’obiettivo, su usa molto in siti di e-commerce o per le richieste di preventivo che hanno bisogno di azioni divise in più step.
  2. Durata della visita: bisogna definire un periodo di tempo. La conversione viene generata quando l’utente rimane sul sito per il tempo che avete stabilito.
  3. Pagine/visita: dovete definire il numero minimo di pagine viste per generare la conversione.
  4. Evento: si usa questo evento quando si deve tracciare un click, un download oppure nel caso in cui il vostro form non rimanda ad una nuova pagina.

8. Salva.

L’obiettivo più complesso da impostare è l’Evento.
Di seguito quindi ti faccio vedere come impostarlo per l’invio di un form e per il download di un file. La prima parte del settaggio è comune ad entrambi gli esempi. Completa i campi Categoria e Azione (color rosso), che sono obbligatori, ed i campi Etichetta e Valore (color verde) inserendo i valori a te più consoni e facili da riconoscere.
Il Valore Obiettivo sta ad indicare quanto vale per te quel obiettivo, per esempio puoi utilizzare una scala da 1 a 10 per indicare quanto valgono per te i vari obiettivi che imposterai nel tuo sito.

analytics-obiettivi-03

A questo punto dobbiamo modificare il codice all’interno del tuo sito web.

Per il download di un file devi impostare il link in questo modo:

<a onclick="_gaq.push(['_trackEvent', 'Categoria', 'Azione', 'Etichetta', Valore]);" href="http://www.miosito.it/url-del-file">Link al file</a>

La parte da aggiungere al classico link html è:

onclick="_gaq.push(['_trackEvent', 'Categoria', 'Azione', 'Etichetta', Valore]);"

io per rendere le voci più chiare le ho lasciate con lo stesso nome della label usata da Google Analytics, voi sostituitele con quelle usate nel parametri del vostro obiettivo.

Per tracciare un invio del form, aggiungete queste poche righe vicino alla stringa di ringraziamento:

<script type="text/javascript">// <![CDATA[
_gaq.push(['_trackEvent', 'Categoria', 'Azione', 'Etichetta', Valore]);
// ]]></script>

Bene! Il lavoro è finito ora dovete solamente attendere che qualche obiettivo venga portato a termine e potrai visualizzarli nella pagina dedicata di Google Analytics che si trova sotto Rapporti > Conversioni > Obiettivi > Panoramica
obiettivi-4
Della sezione Conversioni i dati che ti interessano di più e che devi analizzare per bene sono:

  • il CTR (Click Through Rate) che ti indica il tasso di conversione
  • il numero di clicks per sapere quanti utenti hanno cliccato sul link
  • il tasso di abbandono che indica la percentuale di utenti che hanno iniziato l’azione ma poi non l’hanno portata a termine
  • il numero di conversioni cioè il numero di utenti che hanno portato a termine l’azione

Spero che questa piccola guida ti sia d’aiuto, io personalmente uso molto gli obiettivi per cercare di capire perché gli utenti iniziano un’azione ma non la terminano, per esempio cliccano il pulsante “contatta ora” ma poi non inviano il modulo/form di contatto.

Ciao, a presto!

Unire più pagine Fan di Facebook in una sola

Come dice il titolo, questo trucco serve per unire più Facebook Fan Page in una unica Fan Page, lo scopo è di poter gestire in modo semplice la nostra pagina aziendale.

IMPORTANTE: quando unite le vostre pagine la pagina che fa da master è quella che ha più fan, fisicamente i fan delle altre pagine vengono uniti alla pagina master e vengono “perse” tutte le informazioni delle pagina secondarie.

Per unire le vostre pagine avete due possibilità:

Unione Fan Page FB1. Usare il form dalla Fan Page

Entrate nella vostra Fan Page e fate questi passaggi: dal menu in alto della pagina Modifica Pagina > Aggiorna informazioni. A questo punto dal menu a sinistra: Risorse. Ora se avete delle pagine che hanno un nome MOLTO simile oppure e la stessa categoria (la trovate in Informazioni di base) troverete la voce “Unisci Pagine doppie” (vedi nell’immagine qui a destra). Seguite i vari passaggi e se tutto filerà liscio in pochi minuti le vostre pagina saranno unite. Se, come a me, non funziona e vi viene dato errore 500 passate al secondo metodo.

 

 

 

Facebook Unione Fan Pages

2. Pagina di richiesta unione fan pagine multiple.

Prima di tutto provate ad andare a questo indirizzo: https://www.facebook.com/help/contact/?id=238908726149664, si apre una pagina come quella qui a destra? Se si saltate il paragrafo successivo.

Non ti si è aperta, devi fare delle semplici operazioni:

  1. Cambia la lingua in Inglese (US), e riprova.
  2. Apri/Installa Firefox e installa questo add-on, è un proxy che fa sembrare una connessione dagli USA. Lo trovi qui.
  3. Installato l’add-on di Firefox riprova e come per magia vedrai questa pagina un po’ nascosta da Facebook.

Ora nel primo menu a tendina seleziona la tua fan page principale, mentre negli altri menu seleziona le fan page secondarie. Ricorda però che Facebook al 99% prenderà come pagina principale quella che ha più fan anche se gli hai proposto un’altra pagina come master, inoltre prima di inviare il form assicurati che le pagine abbiano la stessa categoria!

Ora devi attendere un po’ di tempo, in teoria fino a 3 giorni ma so di qualcuno che in qualche ora gli sono state unite le pagine.

Mi raccomando, sopratutto con il secondo metodo controlla spesso la posta, sopratutto la cartella dello SPAM!!

Spero ti sia stato utile questa mini guida!

Utilizzare LC_TIME con CakePHP

Il grande team di CakePHP dalla versione 1.3 ha implementato il supporto alle traduzioni LC_TIME. Siccome ho investito un po’ di tempo nella ricerca dei vari elementi che servono ad impostare CakePHP e a capire il suo funzionamento ho pensato di scrivere qui queste informazioni in modo da risparmiare tempo a chi dovrà utilizzarlo dopo di me.

Prima di iniziare dovete sapere come funziona l’internazionalizzazione di CakePHP (Internazionalizzare le tue applicazioni) ed un piccolo appunto sull’i18n qui

Prepariamo CakePHP per LC_TIME

Prima di tutto abbiamo bisogno di un file con i parametri giusti per la nostra lingua, io naturalmente preparo tutto per l’italiano, ma lo potete fare per tutte le lingue che vi servono. Per avere i parametri se avete una macchia Linux a disposizione copiatevi il file /usr/share/i18n/locales/it_IT (it_IT nel mio caso) sul desktop oppure nel caso non avete una macchina a Linux a disposizione scaricatevi questo zip dove trovate tutti i file che erano presenti nel mio server.

Bene! Fatto questo, per far funzionare __ c (), $this->Time->format () e $this->Time->i18nFormat () abbiamo dobbiamo:

  1. creare un file denominato /app/Locale/ita/LC_TIME (ita nel mio caso per l’italiano)
  2. aprite il vostro file i18n di Linux, il mio it_IT
  3. copiate tutto quello che trovate tra LC_TIME  ed END LC_TIME, incollatelo nel file creato nel passaggio 1 e salvate

Attenzione: assicuratevi di aggiungere le definizioni “escape_char” e “comment_char” all’inizio del file LC_TIME appena modificato oppure rischiate di perdere delle ore alla ricerca del perché non funziona la vostra configurazione (come il sottoscritto):

comment_char %
escape_char /

Testiamo LC_TIME appena impostato

Aggiungiamo le seguenti linee ad una delle nostre viste ed aggiungiamo l’helper “Time” nel controller:

$timestamp = time();
 $timestring = $this-&gt;Time-&gt;format('Y-m-d H:i:s', $timestamp);
 $months = __c('mon',LC_TIME);
 pr("Timestamp = $timestamp");
 pr("Timestring = $timestring");
 pr("strftime() tradotto = " . strftime("%A %e %B %Y", strtotime($timestring)));
 pr("i18nFormat  tradotto = " . $this-&gt;Time-&gt;i18nFormat($timestring, "%A %e %B %Y"));
 pr("Time::format tradotto = " . $this-&gt;Time-&gt;format($timestring, '%A %e %B %Y'));
 pr($months);

Il risultato che dovremmo ottenere è questo:

Timestamp = 1353682742
Timestring = 2012-11-23 15:59:02
strftime() tradotto = Friday 23 November 2012
i18nFormat  tradotto = venerd 23 novembre 2012
Time::format tradotto = venerd 23 novembre 2012
Array
(
    [0] =&gt; gennaio
    [1] =&gt; febbraio
    [2] =&gt; marzo
    [3] =&gt; aprile
    [4] =&gt; maggio
    [5] =&gt; giugno
    [6] =&gt; luglio
    [7] =&gt; agosto
    [8] =&gt; settembre
    [9] =&gt; ottobre
    [10] =&gt; novembre
    [11] =&gt; dicembre
)

Per imparare ad utilizzare il formato di LC_TIME leggetevi questa pagina di PHP: strftime()

Estendere le viste in CakePHP

In questi giorni ho preso in mano una nuova feature in CakePHP che prima avevo sottovaluta. Dalla versione 2.1 CakePHP ha introdotto Extending Views che permettere di richiamare una view da un’altra. Per chi usa Jquery si può dite che si avvicina al convetto di Jqeury Templating. Lo scopo di questa feature è di ridurre la duplicazione del codice HTML nelle varie view, per esempio la nostra pplicazione ha un header che si ripete nelle varie pagina ma abbiamo bisogno che il menu contenuto cambi a seconda della pagina in cui ci troviamo? Niente di più semplice, vediamo come si fa. Creiamo la nostra view:

//app/View/Common/header.ctp
<header>
<nav>
<?php echo $this->fetch('menu'); ?>
</nav>
<div id="breadcrumb">
<?php echo $this->fetch('breadcrumb'); ?>
</div>
</header>
<h1><?php echo $this->fetch('title'); ?></h1>
<?php echo $this->fetch('content'); ?>

Questa vista può essere usata come parte di un’altra vista. Quello che balza subito all’occhio sono i vari $this->fetch(), e capiremo subito come a cosa servono. Quando creeremo una nuova vista, che estenderà questa, sarà la nuova vista a riempire di dati il nostro header.ctp. Tutto questo lavoro ci permetterà di avere menu, breadcrumb, title sempre diversi mentre il content verrà riempito con il resto del contenuto della nostra vista principale.

Ora creiamo la nostra vista che estenderà quella appena creata e la riempirà con i nostri dati.

//app/View/MioController/MiaVista.ctp
<?php 
$this->extend('/Common/header'); 
$this->assign('title', $title); 
$this->assign('breadcrumb', 'Home > User > View'); 
$this->start('menu'); ?> 
<li><?php echo $this->Html->link('Home', array('action' => 'index', 'controller' => 'home')); ?></li> 
<li><?php echo $this->Html->link('Profile', array('action' => 'view', 'controller' => 'user')); ?></li> 
<li><?php echo $this->Html->link('Edit Profile', array('action' => 'edit', , 'controller' => 'user')); ?></li> 
<li><?php echo $this->Html->link('Logout', array('action' => 'logout', , 'controller' => 'user')); ?></li> 
<?php $this->end(); ?> 
<?php // Display the remaining content ...

Di questa vista la funzione più importante che fa funzionare tutto è $this->extend(), questa funzione dice a CakePHP quale vista dev’essere estesa. Penso sia molto intuibile l’uso della funzione $this->assign(), questa serve per assegnare un valore alle chiavi tipo title e breadcrumb mentre $this->start() e $this->end() ha lo stesso utilizzo di $this->assign() ma permette di assegnare un valore molto più complesso e formato da diverse dighe di codice come si vede nell’esempio.

Io fino a quando non ho iniziato ad usare questa feature di CakePHP non avevo realizzato il tempo ma sopratutto codice che si risparmia. Provate anche voi!

PostgreSQL su Mac

Ieri ho preso il nuovo Macbook Pro e ho trasferito tutti i dati dal vecchio, devo dire niente di più facile con l’Assistente Migrazione, fa tutto lui. Però ci sono alcune cose che non vengono migrate, vedi PostgreSQL e i suoi dati …. purtroppo me ne sono accorto alla fine….
Come sempre cerchiamo il lato positivo. Nel vecchio MBP avevo installato PostgreSQL attraverso MacPorts oggi invece per caso mi sono imbattuto in due applicazioni per il Mac che mi hanno salvato tempo ed installazioni di Sistema.
Postgres.appLa prima app è Postgres.app che come dice il claim del sito “the easiest way to run PostgreSQL on the Mac” e devo confermare che è proprio così! Non installa nulla sul vostro Mac ma quando la lanciate vi trovate un bel database pronto all’uso. Unico neo (ma forse è capitato solo a me), la prima volta che l’ho lanciata non mi ero accorto che l’icona della app appare nella toolbar e non nel Dock come al solito e per chiudere il database l’ho fatto dal terminale 🙂 … Comunque dopo aver lanciato la app per chiudere il db basta chiudere la app (dalla toolbar).

L’altra app che probabilmente conoscete già è pgAdmin ottima interfaccia per la gestione di PostgreSQL.

Consiglio all’uso

Quando lanciate Postregs.app lei crea un utente con il vostro username ($USER), nel mio caso igorfelluga ed anche un database con lo stesso nome, di conseguenza in pgAdmin ricordatevi di inserire questi dati e non cercate l’utente che solitamente si usa in PostgreSQL di default.

Buon lavoro!

Il tempo è tiranno

Purtroppo il tempo negli ultimi mesi ha fatto da padrone, dico purtroppo ma anche per fortuna se ripenso a tutto quello che sono riuscito a fare in questo periodo.

Oltre a due belle e meritate settimane di ferie via in camper con la mia splendida famiglia, ho avuto l’occasione di sviluppare alcune applicazioni web & mobile molto interessanti, che mi hanno dato l’opportunità di costruirmi delle librerie riutilizzabili nel breve, ma sopratutto di vedere alcune sfumature del business da un punto di vista diverso dal solito, penso che quello che ho imparato in questi mesi abbia incrementato di molto il mio bagaglio di esperienza e porterà molti vantaggi al mio lavoro nei prossimi mesi.

Titanium Certified Application Developer (TCAD)

Dopo tanto tempo mi sono deciso di partecipare al test online per prendere la certificazione Titanium Certified Application Developer (TCAD).

Non ho mai dato tanto valore a certe cose ma mi rendo conto che a molti clienti piace vedere che tu sei/fai e non solo sentirlo a voce, ed ecco qui, inizio con questo .

Il test della certificazione (in inglese) era composto da 60 domande da completare in 90 minuti, devo confessare che su alcune domande un po’ di panico mi è venuto, ma alla fine tutto è andato bene. Per essere certificati bisognava avere una valutazione superiore al 75%, sono stato molto soddisfatto di essere andato ben oltre.

 

Come tracciare una campagna marketing OFFLINE (OOH)

Tante volte si dice che la pubblicità su web è meglio di quella offline perché è tutto tracciabile, oggi con la crescita vertiginosa dell’utilizzo degli SmartPhone e qualche strumento gratuito online possiamo tracciare anche le nostre campagne pubblicitari offline.

Questo sistema dal mio punto di vista è molto utile per le attività che fanno volantinaggio, inviti, o pubblicità su qualche giornale.

Partiamo con elencare gli “ingredienti” di cui abbiamo bisogno:

  1. Landing Page. La pagina che glu utenti vedranno quando arriveranno sul vostro sito web.
  2. Un account Google (opzionale)
  3. Le statistiche di Google Analytics sulla vostra Landing Page

Prima di tutto andiamo su questa pagina dove si trova un bel tool di google (http://goo.gl/9sI65) che serve per la creazione URL di Google Analytics. Seguite pure le istruzioni sulla pagina che sono molto chiare, quando avrete premuto “Generate URL” copiatelo e salvatelo da qualche parte, ci servirà fra poco.
Questo URL con dei parametri nuovi, a molti sconosciuti, serve per evidenziare all’interno delle statistiche del vostro sito gli utenti che sono arrivati tramite la vostra campagna.

Quando avete generato l’URL aprite questa pagina http://goo.gl/ , inserite l’URL generato prima nel campo vuoto all’interno del box grigio e premete “Shorten URL”, questo fa si che Google generi un URL molto corto e con tutti i parametri a noi necessari per la nostra campagna “nascosti” e non modificabili. Questo nuovo URL è importante per voi, non perdetelo! Sarà un URL simile a questo http://goo.gl/lXyK8.

 

Se avete creato il vostro “Shorten URL” ora a questo indirizzo http://goo.gl/#analytics/goo.gl/vostro_codice/all_time potrete vedere delle statistichedi utilizzo dell’url stesso, nel mio caso l’indirizzo corretto è http://goo.gl/#analytics/goo.gl/lXyK8/all_time. La cosa più importante è il QR code che Google genera in automatico. Il QR Code è quel francobollo quadrato in alto sulla destra (qui a fianco vedete il mio). Ora salvate questo quadratino sul vostro computer (sopra il quadrato > tasto destro > salva immagine con nome) e inviatelo al vostro grafico che lo deve inserire nel vostro volantino o pubblicità che sia.

TIP: se al grafico serve un formato più grande, nessun problema
http://chart.googleapis.com/chart?cht=qr&chs=vostre_dimensioni&choe=UTF-8&chld=H&chl=http://goo.gl/vostro_codice
potete generare il QR Code delle dimensioni che volete, alcuni esempi basati sul mio URL:

150×150
http://chart.googleapis.com/chart?cht=qr&chs=150×150&choe=UTF-8&chld=H&chl=http://goo.gl/lXyK8

300×300
http://chart.googleapis.com/chart?cht=qr&chs=300×300&choe=UTF-8&chld=H&chl=http://goo.gl/lXyK8

Bene con questo strumento potete sapere se la vostra campagna marketing offline ha dato dei risultati, tenete presente che non tutti gli utenti hanno uno SmartPhone e non tutti sanno che cosa è un QR Code (per ora), ma vista l’incredibile crescita nell’utilizzo di questi strumenti i risultati si vedranno sicuramente.
Proprio ieri ho letto un articolo di POPAI Italia (RICERCA: il mobile in Italia e i QR code) dove si parla proprio della diffusione del mobile in Italia e dei QR Code, per i più pigri riporto di seguito un piccolo paragrafo.

In 97 paesi nel mondo ci sono più cellulari che popolazione, in Italia un italiano su due (nella fascia tra i 18 e i 65 anni) possiede uno smartphone, e questo numero è cresciuto a ritmi vertiginosi se si pensa che solo a novembre erano uno su tre.

Spero che questo articolo sia utile a tutti quelli che vogliono almeno provare a tracciare una campagna offline.

OOH sta per Out Of Home