Sledujte nás na YouTube

Ako na analytiku Windows Phone 7 aplikácií

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 APIkľúč, 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.

  1. private static string _flurryCode = „….“;

 

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

  1. private void Application_Launching(object sender, LaunchingEventArgs e)
  2. {
  3. FlurryWP7SDK.Api.StartSession(_flurryCode);
  4. }
  1. private void Application_Activated(object sender, ActivatedEventArgs e)
  2. {
  3. FlurryWP7SDK.Api.StartSession(_flurryCode);
  4. }

 

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

  1. private void Application_Deactivated(object sender, DeactivatedEventArgs e)
  2. {
  3. FlurryWP7SDK.Api.EndSession();
  4. ….
  5. }
  1. private void Application_Closing(object sender, ClosingEventArgs e)
  2. {
  3. FlurryWP7SDK.Api.EndSession();
  4. ….
  5. }

 

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

  1. private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
  2. {
  3. try
  4. {
  5. FlurryWP7SDK.Api.LogError(„App failed: „ + e.ExceptionObject.ToString(), e.ExceptionObject);
  6. FlurryWP7SDK.Api.EndSession();
  7. } catch { }
  8. ….
  9. }

 

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

  1. 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

  1. FlurryWP7SDK.Api.LogEvent(„Level“, true, new List() { new Parameter(„Level“, level.ToString()) });
  2. 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á. 

O autorovi – Igor Kulman

-Som absolventom softvérového inžinierstva na MFF UK v Prahe a aktuálne pracujem ako Windows Phone 7 vývojár vo firme Inmite. V minulosti som pôsobil v oblasti systémovej integrácie pre korporátnych zákazníkov. Mám skúsenosti s vývojom aplikácií na platformách .NET a PHP a v súčasnosti smerujem k Azure a Windows 8. Svoje názory publikujem na blogu, zopár článkov nájdete aj na Zdrojáku alebo v starších číslach magazínu PC Revue.

Igor Kulman

3 komentáře

  1. Tomáš Slavíček (neregistrovaný)

    Díky za pěkný článek na SmartManii. Pro hru v XNA by šlo zalinkovat třídu PhoneApplicationService, pomocí ní se dá dostat k přesně těm událostem Launching, Activated apod. a do nich potom doplnit ten kód. Viz moje prezentace, od stránky 42: [odkaz]

  2. V navodu mi chybi informace o tom, jak tato knihovna odesila data na server – pri kazdem spusteni, jen obcas, nebo to lze nakonfigurovat? Stejne tak jak velky overhead znamena mereni casu a logovani commandu, nez kdyz tam ta knihovna neni? Ale jinak dik za navod, vyzkousim :)

  3. miramares (neregistrovaný)

    Umí to i bufferovat data nebo to bez připojení akce ignoruje?

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *