IEEE Consumer Electronics Magazine - March/April 2020 - 60
Mobile Applications
Figure 1. Approach for in-app user tracking based on AOP.
in Table 1, determining a seamless client-server
communication for real-time track, resulting a
less effort-consuming solution.
Dynamic User Behavior Tracking Within Mobile
Apps: Our Approach
Our approach is based on a two-element combination: a server-client communication based
on JSON file exchange, and an in-app library for
tracking management, called MANTRA (Mobile
ANalytics TRAcking).
Architecture of the Solution Based on the
AOP concepts from Table 1, our approach architecture can be seen in Figure 1 and it is composed by the following elements.
1) Aspect: each users' action delivered from the
client side to the trackers. It is not an intrinsic
app function but a common activity for them.
2) Advice: the code that sends the info to the
trackers. The advice is injected in run time
into the code, as defined in AOP.
3) Jointpoints: the entire set of methods from
the app where an advice can be executed.
4) Pointcuts: the list of events to be detected
inside the app where the library is included.
These elements will be dynamically defined
and sent to the app within a JSON file by
means of a push notification or via HTTP.
Workflow The aforementioned elements can be
properly combined in order to define a new workflow that is composed by three main phases. The
first one is related to the integration of the MANTRA library within the app and to the JSON initial
configuration (which contains the events to be
detected). The second phase is related to the
acquisition of the data from the user's activity
60
inside the app and the reconfiguration of the
JSON in order to change the events to be
detected. This updated JSON can be accessed by
the app through different options: push notification, via a direct delivery within a static frequency
model, etc. The final phase is related to the data
compilation and delivery to the analytics trackers, which will be in charge of analyzing them and
obtaining results about user's behavior.
Considering this workflow, the need for direct
changes in the code app is reduced to only once at
the beginning of the cycle. This implies that there
is only one compilation of the app and one publication in the market related to this issue, reducing
the time and effort to obtain it. Thereafter, the
dynamic change of the events to be detected is
done via a JSON file delivery from the server to the
app, processing it inside the app thanks to the
AOP capabilities. This JSON can be updated as
many times as needed, and the changes are processed in real time without recoding the app.
Tracking Parametrization and Integration
To configure the app, the MANTRA library provides different methods to set up the trackers
credentials and the JSON url. Moreover, the
exchanged JSON file mainly includes the set of
events to be detected, but it can also comprise
two more elements.
1) A list with the different analytics providers
that may be enabled in the application.
2) A set of static and dynamic variables for the
tracking execution to be send to the library
before the pointcut execution starts again.
Concerning the integration, an event configuration requires to specify the name of the class
and the function where the event is located.
Finally, we have made use of two specific open
code solutions for AOP paradigm implementation within the MANTRA library: MOAspects for
iOS and AspectJ for Android.
SOLUTION ANALYSIS AND
DISCUSSION
Experimental Setup
We have designed a simple experimental
mobile app for applying the proposed solution
that comprises two main screens. The first one
IEEE Consumer Electronics Magazine
IEEE Consumer Electronics Magazine - March/April 2020
Table of Contents for the Digital Edition of IEEE Consumer Electronics Magazine - March/April 2020
Contents
IEEE Consumer Electronics Magazine - March/April 2020 - Cover1
IEEE Consumer Electronics Magazine - March/April 2020 - Cover2
IEEE Consumer Electronics Magazine - March/April 2020 - Contents
IEEE Consumer Electronics Magazine - March/April 2020 - 2
IEEE Consumer Electronics Magazine - March/April 2020 - 3
IEEE Consumer Electronics Magazine - March/April 2020 - 4
IEEE Consumer Electronics Magazine - March/April 2020 - 5
IEEE Consumer Electronics Magazine - March/April 2020 - 6
IEEE Consumer Electronics Magazine - March/April 2020 - 7
IEEE Consumer Electronics Magazine - March/April 2020 - 8
IEEE Consumer Electronics Magazine - March/April 2020 - 9
IEEE Consumer Electronics Magazine - March/April 2020 - 10
IEEE Consumer Electronics Magazine - March/April 2020 - 11
IEEE Consumer Electronics Magazine - March/April 2020 - 12
IEEE Consumer Electronics Magazine - March/April 2020 - 13
IEEE Consumer Electronics Magazine - March/April 2020 - 14
IEEE Consumer Electronics Magazine - March/April 2020 - 15
IEEE Consumer Electronics Magazine - March/April 2020 - 16
IEEE Consumer Electronics Magazine - March/April 2020 - 17
IEEE Consumer Electronics Magazine - March/April 2020 - 18
IEEE Consumer Electronics Magazine - March/April 2020 - 19
IEEE Consumer Electronics Magazine - March/April 2020 - 20
IEEE Consumer Electronics Magazine - March/April 2020 - 21
IEEE Consumer Electronics Magazine - March/April 2020 - 22
IEEE Consumer Electronics Magazine - March/April 2020 - 23
IEEE Consumer Electronics Magazine - March/April 2020 - 24
IEEE Consumer Electronics Magazine - March/April 2020 - 25
IEEE Consumer Electronics Magazine - March/April 2020 - 26
IEEE Consumer Electronics Magazine - March/April 2020 - 27
IEEE Consumer Electronics Magazine - March/April 2020 - 28
IEEE Consumer Electronics Magazine - March/April 2020 - 29
IEEE Consumer Electronics Magazine - March/April 2020 - 30
IEEE Consumer Electronics Magazine - March/April 2020 - 31
IEEE Consumer Electronics Magazine - March/April 2020 - 32
IEEE Consumer Electronics Magazine - March/April 2020 - 33
IEEE Consumer Electronics Magazine - March/April 2020 - 34
IEEE Consumer Electronics Magazine - March/April 2020 - 35
IEEE Consumer Electronics Magazine - March/April 2020 - 36
IEEE Consumer Electronics Magazine - March/April 2020 - 37
IEEE Consumer Electronics Magazine - March/April 2020 - 38
IEEE Consumer Electronics Magazine - March/April 2020 - 39
IEEE Consumer Electronics Magazine - March/April 2020 - 40
IEEE Consumer Electronics Magazine - March/April 2020 - 41
IEEE Consumer Electronics Magazine - March/April 2020 - 42
IEEE Consumer Electronics Magazine - March/April 2020 - 43
IEEE Consumer Electronics Magazine - March/April 2020 - 44
IEEE Consumer Electronics Magazine - March/April 2020 - 45
IEEE Consumer Electronics Magazine - March/April 2020 - 46
IEEE Consumer Electronics Magazine - March/April 2020 - 47
IEEE Consumer Electronics Magazine - March/April 2020 - 48
IEEE Consumer Electronics Magazine - March/April 2020 - 49
IEEE Consumer Electronics Magazine - March/April 2020 - 50
IEEE Consumer Electronics Magazine - March/April 2020 - 51
IEEE Consumer Electronics Magazine - March/April 2020 - 52
IEEE Consumer Electronics Magazine - March/April 2020 - 53
IEEE Consumer Electronics Magazine - March/April 2020 - 54
IEEE Consumer Electronics Magazine - March/April 2020 - 55
IEEE Consumer Electronics Magazine - March/April 2020 - 56
IEEE Consumer Electronics Magazine - March/April 2020 - 57
IEEE Consumer Electronics Magazine - March/April 2020 - 58
IEEE Consumer Electronics Magazine - March/April 2020 - 59
IEEE Consumer Electronics Magazine - March/April 2020 - 60
IEEE Consumer Electronics Magazine - March/April 2020 - 61
IEEE Consumer Electronics Magazine - March/April 2020 - 62
IEEE Consumer Electronics Magazine - March/April 2020 - 63
IEEE Consumer Electronics Magazine - March/April 2020 - 64
IEEE Consumer Electronics Magazine - March/April 2020 - 65
IEEE Consumer Electronics Magazine - March/April 2020 - 66
IEEE Consumer Electronics Magazine - March/April 2020 - 67
IEEE Consumer Electronics Magazine - March/April 2020 - 68
IEEE Consumer Electronics Magazine - March/April 2020 - 69
IEEE Consumer Electronics Magazine - March/April 2020 - 70
IEEE Consumer Electronics Magazine - March/April 2020 - 71
IEEE Consumer Electronics Magazine - March/April 2020 - 72
IEEE Consumer Electronics Magazine - March/April 2020 - 73
IEEE Consumer Electronics Magazine - March/April 2020 - 74
IEEE Consumer Electronics Magazine - March/April 2020 - 75
IEEE Consumer Electronics Magazine - March/April 2020 - 76
IEEE Consumer Electronics Magazine - March/April 2020 - 77
IEEE Consumer Electronics Magazine - March/April 2020 - 78
IEEE Consumer Electronics Magazine - March/April 2020 - 79
IEEE Consumer Electronics Magazine - March/April 2020 - 80
IEEE Consumer Electronics Magazine - March/April 2020 - 81
IEEE Consumer Electronics Magazine - March/April 2020 - 82
IEEE Consumer Electronics Magazine - March/April 2020 - 83
IEEE Consumer Electronics Magazine - March/April 2020 - 84
IEEE Consumer Electronics Magazine - March/April 2020 - 85
IEEE Consumer Electronics Magazine - March/April 2020 - 86
IEEE Consumer Electronics Magazine - March/April 2020 - 87
IEEE Consumer Electronics Magazine - March/April 2020 - 88
IEEE Consumer Electronics Magazine - March/April 2020 - 89
IEEE Consumer Electronics Magazine - March/April 2020 - 90
IEEE Consumer Electronics Magazine - March/April 2020 - 91
IEEE Consumer Electronics Magazine - March/April 2020 - 92
IEEE Consumer Electronics Magazine - March/April 2020 - 93
IEEE Consumer Electronics Magazine - March/April 2020 - 94
IEEE Consumer Electronics Magazine - March/April 2020 - 95
IEEE Consumer Electronics Magazine - March/April 2020 - 96
IEEE Consumer Electronics Magazine - March/April 2020 - 97
IEEE Consumer Electronics Magazine - March/April 2020 - 98
IEEE Consumer Electronics Magazine - March/April 2020 - 99
IEEE Consumer Electronics Magazine - March/April 2020 - 100
IEEE Consumer Electronics Magazine - March/April 2020 - 101
IEEE Consumer Electronics Magazine - March/April 2020 - 102
IEEE Consumer Electronics Magazine - March/April 2020 - 103
IEEE Consumer Electronics Magazine - March/April 2020 - 104
IEEE Consumer Electronics Magazine - March/April 2020 - 105
IEEE Consumer Electronics Magazine - March/April 2020 - 106
IEEE Consumer Electronics Magazine - March/April 2020 - 107
IEEE Consumer Electronics Magazine - March/April 2020 - 108
IEEE Consumer Electronics Magazine - March/April 2020 - 109
IEEE Consumer Electronics Magazine - March/April 2020 - 110
IEEE Consumer Electronics Magazine - March/April 2020 - 111
IEEE Consumer Electronics Magazine - March/April 2020 - 112
IEEE Consumer Electronics Magazine - March/April 2020 - 113
IEEE Consumer Electronics Magazine - March/April 2020 - 114
IEEE Consumer Electronics Magazine - March/April 2020 - 115
IEEE Consumer Electronics Magazine - March/April 2020 - 116
IEEE Consumer Electronics Magazine - March/April 2020 - Cover3
IEEE Consumer Electronics Magazine - March/April 2020 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20240102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20231112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20221112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20211112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202010
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202009
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202007
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202004
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202003
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202001
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201909
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201907
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201905
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201903
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201901
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201811
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201809
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201807
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201805
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201803
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_october2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_october2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2015
https://www.nxtbookmedia.com