Slide 1

Slide 1 text

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 R O I D C O N B E R L I N 0 4 - 0 9 - 2 0 1 7

Slide 2

Slide 2 text

2 GUTEN TAG! My name is Sergii Zhuk • Android Engineer @ Zalando SE • In Berlin since 2015 • Founder & Editor of ProAndroidDev.com • @sergiizhuk

Slide 3

Slide 3 text

3 ZALANDO SE • Europe’s leading online fashion platform • 13,000+ employees in Europe • ~ EUR 3.6bn revenue in 2016 • ~ 55% of orders come from mobile • 10M+ downloads Android app

Slide 4

Slide 4 text

4 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

Slide 5

Slide 5 text

5 TRACKING: WHY?

Slide 6

Slide 6 text

6 WHY TRACKING: BACK TO 2015 Do users know about FAB?

Slide 7

Slide 7 text

7 WHY TRACKING: DATA-DRIVEN 2017

Slide 8

Slide 8 text

8 TRACKING VS ANALYTICS • Application • Tracking Tools • Analytics Tools & Dashboards

Slide 9

Slide 9 text

9 WHEN TO TRACK

Slide 10

Slide 10 text

10 WHEN TO TRACK: INTERACTION • Open the app, different entry points • Screen View • Click/swipe etc. • User sessions

Slide 11

Slide 11 text

11 WHEN TO TRACK: APPLICATION • Install/uninstall/reinstall • System info • Exceptions, crashes

Slide 12

Slide 12 text

12 WHEN TO TRACK: APPLICATION • Install/uninstall/reinstall • System info • Exceptions, crashes and bread crumbs

Slide 13

Slide 13 text

13 TRACKING TOOLS

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

16 TRACKING TOOLS: OTHERS • AppSee • Flurry • AppAnnie • Localytics • Mixpanel • and more…

Slide 17

Slide 17 text

17 TRACKING TOOLS: SELF-MADE • Custom data formats • Integration with other systems • Realtime data (complex!)

Slide 18

Slide 18 text

18 PATTERNS & CHALLENGES

Slide 19

Slide 19 text

19 DEFINE TRACKING STANDARDS • Dev and Marketing teams should never be “blind” • Minimum amount of tracking events for every feature • Proper constants to indicate empty value and other states • Estimate app release to include tracking

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

21 “SIMPLE” SCREEN VIEW TRACKING • Don’t expect automagical tracking from modern tools • Think about screen rotation contract

Slide 22

Slide 22 text

CHECK TRACKING PERFORMANCE • Check batching configuration • Minimize the amount of data being sent • Set a separate token/configuration for debug • Check threading 22

Slide 23

Slide 23 text

23 BE READY TO SCALE: TRACKING FACADE

Slide 24

Slide 24 text

24 CUSTOM TRACKING CASE EXAMPLE Detecting List Items Observed by User

Slide 25

Slide 25 text

25 CUSTOM TRACKING CASE EXAMPLE Detecting List Items Observed by User • Find solution at my blog post

Slide 26

Slide 26 text

26 CUSTOMER PRIVACY • Make sure you don’t send data that allows to identify the user • Make sure you mask the IP of user • Make sure that user has an option to switch off tracking

Slide 27

Slide 27 text

27 CUSTOMER PRIVACY • Make sure you don’t send data that allows to identify the user • Make sure you mask the IP of user • Make sure that user has an option to switch off tracking • Why the most of tracking tools are free?

Slide 28

Slide 28 text

28 HOW TO TEST TRACKING OUTPUT

Slide 29

Slide 29 text

29

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

31 TRACKING OUTPUT: PROXY NETWORK TRAFFIC

Slide 32

Slide 32 text

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:

Slide 33

Slide 33 text

33 TRACKING OUTPUT: FIREBASE DEBUGVIEW

Slide 34

Slide 34 text

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 privacy

Slide 35

Slide 35 text

35 THANKS! @sergiizhuk https://proandroiddev.com https://jobs.zalando.com/tech/