Solutia Just Eat pentru a gestiona mai bine urmarirea analitica pe iOS si pentru a imbunatati relatia cu echipa dvs. de BI.

  • Just Eat Tech blog

Prezentare generala

La Just Eat , urmarirea evenimentelor este o parte fundamentala a analizei noastre de afaceri, iar informatiile pe care le colectam informeaza deciziile noastre tehnice si strategice. Pentru a colecta informatiile necesare, aveam nevoie de un sistem de urmarire flexibil, rezistent la viitor si usor de utilizat, care ne permite sa adaugam, sa eliminam si sa schimbam integrarile subiacente cu sisteme si servicii analitice cu impact minim asupra codului aplicatiilor noastre. De asemenea, am dorit sa rezolvam problema actualizarii metadatelor de eveniment solicitate ori de cate ori se modifica cerintele.

JustTrack este solutia de urmarire a evenimentelor pe care am creat-o pentru asta.

Pentru orice cerere de caracteristica, raport de eroare sau intrebare, va rugam sa utilizati pagina Probleme si eticheta corespunzatoare.

Caracteristici:

  • Evenimentele sunt declarate intr-un fisier .plist si codul Swift este generat automat la momentul construirii din acesta.
  • Evenimentele pot fi trimise in mai multe destinatii (numite Trackers ) in acelasi timp.
  • Trackerele personalizate sunt usor de creat si de utilizat.

Instalare

JustTrack este disponibil prin CocoaPods. Pentru ao instala, pur si simplu adaugati urmatoarea linie in Podfile:

Importati-l in fisierele dvs. astfel:

// import rapid JustTrack
// Obiectiv-C @import JustTrack;

In fazele de constructie vizate adaugati acest script

xcrun –sdk macosx swift “$ {PODS_ROOT} /../../ JustTrack / EventsGenerator / main.swift” “$ {SRCROOT} /JustTrack/Events.plist” “$ {SRCROOT} /JustTrack/TrackingEvents.swift”

Obiectivul C (versiuni anterioare 4.0)

xcrun –sdk macosx swift “$ {PODS_ROOT} /../../ JustTrack / JEEventsGenerator / main.swift” “$ {SRCROOT} /JustTrack/Events.plist” “$ {SRCROOT} /JustTrack/TrackingEvents.swift”

Unde:

  • $ {SRCROOT} /JustTrack/Events.plist este calea catre plistul declaratiei de evenimente care poate fi oriunde in proiect.
  • „$ {SRCROOT} /JustTrack/TrackingEvents.swift” Este fisierul de destinatie pentru codul Swift generat automat.

NOTA: Luati in considerare acordarea acestui script unui nume semnificativ (de exemplu, „Nume: JustTrack Events Generation”)

Utilizare

Sa vedem cum folosim JustTrack:

Configurare JustTrack

Swift func configureJustTrack () -> EventTracking {// configure Tracking Singleton with settings and trackers let eventTracker: EventTracking = EventTracking.sharedInstance eventTracker.deliveryType = .batch eventTracker.logClosure = {(logString: String, logLevel: String, logLevel in print (“[EventTracker] [\ (logLevel.rawValue)] \ (logString)”)} // incarcati tracker-ul implicit, in acest caz tracker-ul consolei eventTracker.loadDefaultTracker (.consoleLogger) // activati JustTrack eventTracker.enable ( ) return eventTracker}

Definitia evenimentelor

Una dintre problemele pe care le-am gasit cu solutiile existente este ca evenimentele sunt declarate in cod si, prin urmare, pot fi intretinute doar de dezvoltatori.

colegialas cachondas abuelas porno españolas
peliculas porno de viejas follando a mi compañera de piso
zofilia vende a su novia por dinero
tetonas en la playa viejas anales
porno espania me follo a mi madre
maduritas corriendose porno espania
porno sin censura follando en el monte
ver peliculas de incesto mujeres maduras corriendose
violacion real porno tetas amaters
corrida en el culo follando con mi amante
pajas caseras videos chicas gratis
abuelas ardientes amas de casa infieles
vecinasxxx le pilla masturbandose
follándosela intercambio amateur
jovencitas muy calientes videos ponos
española follando porno loco
masajes porno en español jovencitas muy calientes
mia kalifa putasfollando
videos incesto online porno libre
lesbianas scat porno caliente

In mod similar, solutiile existente ofera facilitati de urmarire foarte generice pentru dezvoltatori. Din acest motiv, ori de cate ori metadatele necesare asociate cu un eveniment se modifica din orice motiv, dezvoltatorul trebuie sa caute in baza de cod si sa actualizeze toate instantele evenimentului cu implementarea corecta. Desigur, acesta este un proces foarte fragil si este predispus la erori.

JustTrack incearca sa rezolve aceste probleme declarand evenimente intr-un fisier plist care este utilizat pentru a genera automat definitii echivalente ale evenimentelor din Swift care pot fi utilizate in aplicatie. Aceasta ofera mai multe avantaje:

  • Fiecare eveniment este identificat in mod unic
  • Metadatele asociate fiecarui eveniment sunt verificate de tip
  • Cand se schimba cerintele pentru un eveniment, dezvoltatorii il pot vedea prin erori de constructie si avertismente care vor aparea in mod natural
  • Plisturile pot fi editate ca XML, ceea ce inseamna ca oricine din companie le poate edita
  • Este usor sa cautati evenimente care nu mai sunt utilizate, iar evenimentele sterse nu vor fi compilate

Anatomia unui eveniment

Un eveniment este format din:

  • Nume : identificatorul unic
  • Urmaritori inregistrati : lista destinatiilor evenimentelor (de exemplu, Google Analytics)
  • Sarcina utila : metadatele asociate evenimentului (in acest moment sunt acceptate doar perechile sir-cheie-valoare)
Formatul Plist

<key> Utilizator </key> <dict> <key> inregistratTrackers </key> <array> <string> consola </string> <string> Firebase </string> </array> <key> payloadKeys </key> <array> <string> action </string> <string> response </string> <string> extra </string> </array> </dict>
Clasa Swift generata
public class EventUser: NSObject, Event {public let name: String = “User” public var load: Payload {return [kAction: action == “”? NSNull (): actiune ca NSString, kResponse: raspuns == “”? NSNull (): raspuns ca NSString, kExtra: extra == “”? NSNull (): extra ca NSString]} public var registeredTrackers: [String] {return [“console”, “Firebase”]} private let kAction = “action” private let kResponse = “response” private let kExtra = “extra” public var action: String = “” public var raspuns: String = “” public var extra: String = “” public init (action: String, response: String, extra: String) {super.init () self.action = action self .response = raspuns self.extra = extra}}

Utilizarea evenimentelor

// Swift let trackingService: EventTracking = configureJustTrack () trackingService.trackEvent (EventUser (actiune: “UserLogIn”, raspuns: “succes”, extra: “Informatii suplimentare”))
// Objective-C JETracking * trackingService = [self configureJustTrack]; [trackingService trackEvent: [[JEEventUser alloc] initWithAction: @ “UserLogIn” raspuns: @ “success” extra: @ “Informatii suplimentare”]];
Evenimente codificate

De asemenea, puteti crea evenimente „codate” prin implementarea protocolului Event. Cu toate acestea, va recomandam sa utilizati exclusiv un fisier plist.

Urmaritori

Un Tracker este un obiect care implementeaza protocolul Tracker si este incarcat folosind functia: tracker.loadCustomTracker (…). Puteti implementa orice tracker doriti si JustTrack ofera cateva trackere implicite:

  • TrackerConsole – imprimati evenimente pe consola sistemului
  • FacebookTraker (neimplementat inca)
  • GoogleAnalyticsTraker (neimplementat inca, pod-urile Google nu pot fi utilizate ca dependenta intr-un pod)
  • TrakerFirebase (neimplementat inca, podurile Google nu pot fi folosite ca dependenta intr-un pod)

Actualizarea la v4.0

In versiunea 4.0 JustTrack a fost refactorizat pentru a-l actualiza la standardele actuale Swift. Ca atare, JustTrack nu mai accepta implementari Objective-C. Va rugam sa luati in considerare actualizarea oricaror aplicatii care consuma aceasta caracteristica. Ca urmare, modul in care evenimentele sunt denumite si trebuie apelate a fost ajustat substantial. Va rugam sa luati in considerare urmatoarele puncte atunci cand faceti upgrade.

Adoptand Swift

Aceasta actualizare a JustTrack elimina atributele si prefixele Objective-C, modernizand implementarea in conformitate cu standardele Swift, eliminand totodata interoperabilitatea Objective-C.

De exemplu, o clasa de evenimente generate anterior definita ca:

va adopta acum schema de denumire:

Efectele acestei modificari asupra evenimentelor dvs. predefinite pot fi determinate in fisierul generat TrackingEvents.swift.

Va rugam sa retineti ca orice programe care adopta aceasta versiune va trebui sa adopte aceasta noua schema de denumire.

Denumire actualizata

Denumirea evenimentelor si sarcina utila asociata au fost, de asemenea, ajustate pentru a se asigura ca conventia de numire camelCase este adoptata pe tot parcursul.

Pastrarea ordinii pe parcursuri

O alta modificare facuta in versiunea 4.0 este pastrarea ordinii in fisierele TrackingEvents.swift generate automat. Acest lucru permite o mai mare claritate atunci cand se compara modificarile.

Facilitarea unei game de obiecte

JustTrack permite acum implementarea unei matrice de obiecte ca parte a sarcinii utile. Pentru a implementa astfel de evenimente, creati un nou element de tip Dictionar si respectati notatia objectPayloadKeys asa cum este detaliat de exemplul evenimentului.

Actualizarea la v3.0

In versiunea 3.0 a JustTrack , clasa Configurare a fost eliminata din protocolul JETracker.

Daca codul dvs. client utilizeaza Objective-C, atunci codul dvs. ar trebui sa continue sa functioneze fara modificari la actualizare.

Daca codul dvs. de client utilizeaza Swift, atunci aveti doua optiuni.

Optiunea 1) Cel mai simplu mod de a face upgrade la v3.0 din SDK este reintroducerea tiparelor de configurare in codul clientului dupa cum urmeaza:

tipare publice Configurare = [Sir: Sir]

Optiunea 2) Inlocuiti initializatorii cu un echivalent in cazul in care argumentele dvs. sunt transmise intr-o maniera puternic tastata. De exemplu, aceasta metoda initiala veche ….

public init (configuratie: Configurare) {super.init () self.token = conifigurare [TokenKey]}

ar putea deveni…

public init (token: String) {super.init () self.token = token}

Licenta

JustTrack este disponibil sub licenta Apache, versiunea 2.0. Consultati fisierul LICENTA pentru mai multe informatii.

  • Doar mananca echipa iOS