Kuidas analüüsi andmeid oma iOS-i rakendusest eraldada

Andmepõhise ettevõttena on vaja, et mõistaksime, kuidas meie kasutajad rakendust töötavad, et oma kogemusi paremaks muuta. Selles blogis selgitan, kuidas me rakenduse iOS-i versioonist analüütilisi andmeid ekstraheerime ja kasutame.

Mobiilianalüüs | allikas: tatvic.com

Siin Revolutis kasutame paljudest andmepunktidest ülevaate koondamiseks kahte peamist platvormi (Google Analytics ja Amplitude). Täna näitame teile, kuidas luua mobiilianalüütika jaoks laiendatav, usaldusväärne ja kontrollitav lahendus.

Rakendamine

Alustame protokolli määratlemisega meie rakenduses esineda võivate sündmuste jälgimiseks. Nimetagem seda TrackingEventType'iks.

Sellel protokollil on kaks atribuuti: kordumatu identifikaator, mida kasutatakse ühe sündmuse eristamiseks teisest, ja atribuudid, mida kasutame andmete jagamiseks analüüsiplatvormidega.

Järgmisena loome enumi, kus iga juhtum esindab ühte sündmust.

Nüüd peame rakendama programmi TrackingEventType, et luua seos iga juhtumi ning selle identifikaatorite ja atribuutide vahel.

Tore, nii et nüüd teame, milliseid sündmusi jälgida, kuid me ei tea, kuidas neid tegelikult jälgida. Peame määratlema ühe või mitu pakkujat; Pakkuja on klass, mis esindab sellist analüütikasüsteemi nagu Google Analytics või Amplitude. Vaatame protokolli, millele kõik pakkujad peavad vastama:

Pakkuja teeb 4 toimingut:

  • Seadistab ennast sündmuste jälgimiseks
  • Aktsepteerib sündmusi ja jälgib neid aktiivselt
  • Seostab seansi jälgimise antud kasutajaga
  • Jälgimisseansi eraldamine kasutajalt

Kuna kasutame nii GA kui ka Amplitude, peame meie jaoks iga analüüsisüsteemi jaoks looma eraldi pakkujad. Amplituudis toimuvate sündmuste jälgimiseks loome AmplitudeProvideri. Vaatame selle rakendamist.

Ehkki rakendamine on üsna sirgjooneline, tasub kõik sammud kiiresti läbi teha.

  • Seadistamismeetodi puhul loome ühenduse Amplitude'iga. Tavaliselt tähendab see, et me peame andma mingisuguse võtme analüütikasüsteemile.
  • Rajalt (sündmus: TrackingEventType) võtame identifikaatori koos sündmuse atribuutidega ja saadame selle otse Amplituudile.
  • Seotud ettevõttes (kasutajaga: kasutaja) seadistasime kasutaja seansid õigeks logimiseks kasutajapõhised muutujad. Pange tähele, et peate selle meetodi kasutama kohe pärast kasutaja sisselogimist.
  • disassociateUser on koht, kus peate katkestama lingi praeguse jälgimisseansi ja kasutaja vahel. Pärast kasutaja väljalogimist peate sellele helistama.

Viimane klass, mida vajame, on klient, kes teeb kahte asja. See salvestab kõik pakkujad ja edastab sündmused pakkujatele. Vaatame protokolli:

TrackingClientType pärib ettevõttelt TrackingProviderType, kuna see suunab kõik kõned pakkujatele. Vaatame lähemalt, kuidas saaksime klienti rakendada.

Nagu näete, salvestab klient lihtsalt pakkujad ja edastab sündmused neile kõigile. Ülejäänud rakenduses töötate peaaegu eranditult kliendi eksemplariga.

Kasutamine

Parim viis meie analüüsisüsteemiga tegelemiseks on luua TrackingClienti eksemplar ja toita seda koos kõigi nõutavate pakkujatega. Hea koht selleks on didFinishLaunchingWithOptions meetod. Järgmisena helistage häälestusmeetodile (), et pakkujad saaksid end korralikult seadistada.

Kui on aeg hakata sündmusi jälgima, peate sündmuse jälgimiskliendile lihtsalt edastama järgmiselt:

See selleks - teil on hea minna!

Boonus - testitavus

Tõenäoliselt mõtlete, miks oleme kõik klassid protokollide taha peitnud. Tegime seda eesmärgi nimel - kontrollitavus. Kuna me ei sõltu konkreetsest rakendusest, saame hõlpsasti luua TrackingClientType spetsiaalse rakenduse, mis annab meile võimaluse oma koodi testida.

Kujutage ette, et töötate lehel, kus kasutajad saavad teie tooteid osta ja soovite näha kõiki Google Analyticsis tehtud oste.

Selle võimaldamiseks loome mannekeeni pakkuja, kes paljastab kõik jälgitavad sündmused.

Nüüd saate tavalise kliendi asendada mannekeeniga ja proovida!

Kuna TestTrackingClient paljastab kõik jälgitavad sündmused sündmuste atribuudi kaudu, on tõesti lihtne kontrollida, mida meie kood jälgib.

Järeldus

Nüüdseks peaksite saama ehitada iOS-i rakendusele omaenda laiendatava, usaldusväärse ja kontrollitava lahenduse. Lahendus põhineb protokollidele orienteeritud programmeerimisel ja sellega seotud väärtustega enumidel - tutvuge lähtekoodiga.

Nagu alati, tervitame teie tagasisidet, kommentaare ja ettepanekuid.