Igor Kulman

Ako na analytiku Windows Phone 7 aplikácií

· Igor Kulman

Používanie analytických nástrojov typu Google Analytics na webových stránkach za účelom získania rôznych užitočných dát je dnes úplne bežné. Podobné dáta je možné získavať aj z mobilných aplikácií, na platforme Windows Phone 7 napríklad pomocou Flurry.

Flurry je bezplatný analytický nástroj, ktorý môžete integrovať do aplikácií na platformách J2ME, Blackberry, Android, iOS a Windows Phone. Flurry sa skladá z dvoch častí; webového rozhrania a SDK. Vo webovom rozhraní je potrebné sa zaregistrovať, pridať aplikáciu a tým získať unikátny API kľúč, ktorý použijete v SDK (rôzne aplikácie majú rôzne kľúče).

Integrácia Flurry to aplikácií na platforme Windows Phone je jednoduchá. SDK pozostáva z jediného súboru (FlurryWP7SDK.dll), ktorý je potrebné prilinkovať k projektu. V Silverlight aplikácií si potom definujte API klúč v App.xaml.cs

private static string _flurryCode = "....";

A zavolajte spustenie Flurry pri spustení a aktivácií aplikácie

private void Application_Launching(object sender, LaunchingEventArgs e) 
{ 
  FlurryWP7SDK.Api.StartSession(_flurryCode); 
  ... 
}

private void Application_Activated(object sender, ActivatedEventArgs e) 
{ 
  FlurryWP7SDK.Api.StartSession(_flurryCode); 
  ... 
}

Pri ukončení a deaktivácií aplikácie je potrebné Flurry session ukončiť

private void Application_Deactivated(object sender, DeactivatedEventArgs e) 
{ 
  FlurryWP7SDK.Api.EndSession(); 
   
}

private void Application_Closing(object sender, ClosingEventArgs e) 
{ 
  FlurryWP7SDK.Api.EndSession(); 
   
}

Flurry umožňuje aj loggovanie chýb pri páde aplikácie

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) 
{ 
  try 
  { 
    FlurryWP7SDK.Api.LogError("App failed: " + e.ExceptionObject.ToString(), e.ExceptionObject); 
    FlurryWP7SDK.Api.EndSession(); 
  } catch { } 
  . 
}

Ak vám evidencia spustení aplikácie a používateľov nestačí, Flurry umožňuje zaevidovať akúkoľvek udalosť s ľubovoľným počtom parametrov

FlurryWP7SDK.Api.LogEvent("Level", new List() { new Parameter("Level", level.ToString()) });

a pre každú udalosť je možné taktiež merať, ako dlho bola v platnosti

FlurryWP7SDK.Api.LogEvent("Level", true, new List() { new Parameter("Level", level.ToString()) }); 
... 
FlurryWP7SDK.Api.EndTimedEvent("Level", new List() { new Parameter("Level", level.ToString()) });

Pre XNA aplikácie neexistuje odporúčanie, kam umiestniť volania StartSession(...) a EndSession(), ja umiestňujem StartSession(...) do LoadContent(...) a EndSession(...) do UnloadContent() aj keď nie je zaručené, že sa táto metóda zavolá.