Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Key Concepts of App Tracking for Developers - UnConference edition

The Key Concepts of App Tracking for Developers - UnConference edition

Slides from my talk at DevFest Baltics Unconference 2017.

See also:
- My blog post about app tracking: https://medium.com/@sergii/the-key-concepts-of-app-tracking-for-developers-a11bebf1e65e#
- Github repo with tracking examples:
https://github.com/sergiiz/GroceryStore

More Android stuff:
https://twitter.com/sergiizhuk
https://proandroiddev.com

Sergii Zhuk

November 18, 2017
Tweet

More Decks by Sergii Zhuk

Other Decks in Programming

Transcript

  1. T H E K E Y C O N C

    E P T S O F A P P T R A C K I N G F O R D E V E L O P E R S S E R G I I Z H U K @ D E V F E S T B A L T I C S 1 8 - 1 1 - 2 0 1 7
  2. 2 GUTEN TAG! My name is Sergii Zhuk • Born

    & raised in Kiev, moved to Berlin in 2015 • Freelance Software Engineer • Founder & Editor of ProAndroidDev.com • On twitter @sergiizhuk
  3. 3 AGENDA • What is the app tracking and why

    do you need it • When to track the data • Which tools you can use • Dev challenges and patterns
  4. 10 WHEN TO TRACK: INTERACTION • Open the app, different

    entry points • Screen View • Click/swipe etc. • User sessions
  5. 14 TRACKING TOOLS: GOOGLE ANALYTICS • Mobile & Web •

    Free for not high load projects • Google BigQuery is available for enterprise projects • No significant mobile SDK updates since the end of 2015
  6. 15 TRACKING TOOLS: GOOGLE ANALYTICS FOR FIREBASE • Mobile only

    • Active development, new features • Google BigQuery is available • Free, but limited amount of custom types • Does not officially support devices without Play Services
  7. 16 TRACKING TOOLS: OTHERS • AppSee • Flurry • AppAnnie

    • Localytics • Mixpanel • and more…
  8. 17 TRACKING TOOLS: SELF-MADE • Custom data formats • Integration

    with other systems • Realtime data (complex!)
  9. 19 DEFINE TRACKING STANDARDS • Minimum amount of tracking events

    • Proper constants to indicate empty value and other states • Estimate app release to include tracking
  10. 20 SOMETHING YOU SHOULD KNOW ABOUT TOOLS • Most of

    tools send data in batches • Data is not always visible immediately after it was sent • Documentation doesn’t suggest any design patterns
  11. 21 “SIMPLE” SCREEN VIEW TRACKING • Don’t expect automagical tracking

    from modern tools • Think about screen rotation contract
  12. CHECK TRACKING PERFORMANCE • Check batching configuration • Minimize the

    amount of data being sent • Set a separate token/configuration for debug • Check threading 22
  13. 25 CUSTOM TRACKING CASE EXAMPLE • Detecting List Items Observed

    by User • Find solution at my blog post
  14. 26 CUSTOMER PRIVACY • Don’t send data that allows to

    identify the user • Mask the IP address of user • User should have an option to switch off tracking
  15. 27 CUSTOMER PRIVACY • Don’t send data that allows to

    identify the user • Mask the IP address of user • User should have an option to switch off tracking • BTW, why the most of tracking tools are free?
  16. 29

  17. 30 TRACKING OUTPUT: PRINT LOGS • May be convenient for

    the debug • Not always consistent with data sent to the server (enriching!) • Not for the release app build
  18. 32 DEBUG LOGS FOR GOOGLE TOOLS Google Analytics: adb shell

    setprop log.tag.GAv4 DEBUG adb shell setprop log.tag.FA-SVC VERBOSE Google Analytics for Firebase:
  19. 34 SUMMARY • Cover every new app feature with tracking

    • One tracking tool is never enough • Debug & QA is the most complex part of tracking • Respect customer’s privacy