{"id":2011,"date":"2010-01-28T16:09:48","date_gmt":"2010-01-28T15:09:48","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=2011"},"modified":"2010-02-16T09:11:23","modified_gmt":"2010-02-16T08:11:23","slug":"t023-aggiungiamo-google-analytics-alle-nostre-applicazioni-iphone","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/t023-aggiungiamo-google-analytics-alle-nostre-applicazioni-iphone\/","title":{"rendered":"T#023 &#8211; Aggiungiamo Google Analytics alle nostre applicazioni iPhone"},"content":{"rendered":"<p>Verificare la provenienza dei visitatori, le pagine visualizzate e tanti altri fattori risulta per il web di primaria importanza ed assume altres\u00ec, per lo sviluppatore, un elemento da non sottovalutare nella pianificazione di aggiornamenti o modifiche dell&#8217;applicazione.<\/p>\n<p>Vedremo quindi oggi come aggiungere Google Analytics alle nostra applicazioni iPhone.<br \/>\nIniziamo innanzitutto accedendo al nostro account Analytics.<!--more--><\/p>\n<p>In alto a destra nella pagina principale selezioniamo <em>Crea Nuovo Account<\/em> (nel menu a scelta <em>Account Personali Analytics<\/em>).<br \/>\nNella pagina successiva clicchiamo su <em>Registrati<\/em>, si aprir\u00e0 una nuova pagina in cui dovremo inserire:<\/p>\n<p><strong>Url sito web:<\/strong> inseriamo un nome fittizio<br \/>\n<strong>Nome account:<\/strong> nome della vostra applicazione<br \/>\nSettiamo il fuso orario con quello italiano.<\/p>\n<p>Procedendo alla pagina successiva accettiamo i vari Disclaimer  ed otterremo, al termine della procedura, un  codice del seguente formato <strong>UA-00000000-0<\/strong> che dobbiamo conservare perch\u00e9 successivamente dovremo utilizzarlo.<\/p>\n<p>Effettuiamo il <a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/GoogleAnalyticsIphone_0.7.tar.gz\" target=\"_blank\">download della libreria<\/a> e dopo averla &#8220;unzippata&#8221; aggiungiamola al progetto della nostra applicazione.<\/p>\n<p>Il <strong>google analytics tracker<\/strong> \u00e8 una istanza <em>singleton<\/em>, una volta che viene allocata resta in vita ed \u00e8 unica e fornisce un punto di accesso globale a tale istanza.<br \/>\nPer consentire il funzionamento di google analytics \u00e8 necessario aggiungere due framework al progretto (<em>CFNetwork.framework<\/em> e <em>libsqlite3.0.dylib<\/em>) in questo modo:<\/p>\n<p>Nel nostro progetto SDK accediamo alla sezione Target,  tasto destro sull&#8217;elemento contrassegnato con il nome del nostro progetto e selezioniamo <em>GET INFO<\/em>.<br \/>\nSelezioniamo quindi la pagina <em>General<\/em> ed in basso  noteremo la sezione <em>Linked Libraries<\/em> con la lista dei Framework che gi\u00e0 utilizziamo. Clicchiamo sul tasto + e dalla lista selezioniamo i framework mensionati in precedenza.<\/p>\n<p>Aggiungeremo ora del codice che ci permetter\u00e0 l&#8217;utilizzo di GOOGLE  Analytics.<\/p>\n<p>Accediamo al <em>Prefix<\/em> del nostro progetto e definiamo <strong>#define NOMEAPP_BUILD @&#8221;1.0&#8243;<\/strong><br \/>\nQuesta dichiarazione ci permetter\u00e0 quindi di individuare grazie a Google Analytics anche differenti versioni della nostra applicazione.<\/p>\n<p>Accediamo al Delegate della nostra applicazione <em>NomeapplicazioneAppDelegate.m<\/em> ed incolliamo, nel metodo <em>applicationDidFinishLaunching<\/em> il seguente codice:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n[[GANTracker sharedTracker] startTrackerWithAccountID:@\"UA-00000000-0\"\r\ndispatchPeriod:kGANDispatchPeriodSec delegate:nil];\r\nNSError *error;\r\nif (![[GANTracker sharedTracker] trackEvent:@\"usage_stats\"\r\naction:@\"app_loaded\"\r\nlabel:NOMEAPP_BUILD\r\nvalue:1\r\nwithError:&amp;error]) {\r\n}\r\n<\/pre>\n<p>Dopo aver dichiarato in precedenza una variabile globale in questo modo:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\nstatic const NSInteger kGANDispatchPeriodSec = 10;\r\n<\/pre>\n<p>che indica i secondi dopo i quali google analytics effettua il dispatch delle informazioni.<\/p>\n<p>Accediamo ora al file .h della pagina che vogliamo monitorare ed includiamo la classe:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n#import \"GANTracker.h\"\r\nmentre nel file .m inseriamo il seguente codice\r\nNSError *err;\r\n\r\n[[GANTracker sharedTracker] trackPageview:@\"\/NOMEPAGINA\" withError: &amp;err];\r\n\r\n[[GANTracker sharedTracker] dispatch];\r\n<\/pre>\n<p>che ci consentir\u00e0 di monitorare la pagina in oggetto e visualizzeremo su analytics con il nome <em>NOMEPAGINA<\/em>.<\/p>\n<p>Questo codice deve essere nel metodo<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n- (void) viewDidAppear:(BOOL)animated\r\n<\/pre>\n<p>Le <strong>informazioni saranno ovviamente disponibili<\/strong> sulla pagina generata al momento della creazione dell&#8217;account solitamente <strong>dopo circa 24 ore dalla visita<\/strong>.<\/p>\n<p>Un ringraziamento a <strong>Marco Musella<\/strong> che ci ha aiutati nella stesura di questo tutorial.<\/p>\n<p>Alla prossima \ud83d\ude09<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.av-shop.it\/vmchk\/Cavi-e-accessori-MAC\/View-all-products.html\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/AvShop_Banner.jpg\" alt=\"AvShop Banner\" title=\"AvShop_Banner\" width=\"400\" height=\"60\" class=\"aligncenter size-full wp-image-1917\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/AvShop_Banner.jpg 400w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/AvShop_Banner-300x45.jpg 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><br \/>\n<\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Verificare la provenienza dei visitatori, le pagine visualizzate e tanti altri fattori risulta per il web di&#8230;<\/p>\n","protected":false},"author":46,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[99,5,4,1],"class_list":["post-2011","post","type-post","status-publish","format-standard","hentry","category-tutorial-pratici","tag-google-analytics","tag-objective-c","tag-programmazione","tag-tutorial-pratici"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/46"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=2011"}],"version-history":[{"count":11,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2011\/revisions"}],"predecessor-version":[{"id":2158,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2011\/revisions\/2158"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=2011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=2011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=2011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}