Upload
measurecampparis
View
152
Download
2
Tags:
Embed Size (px)
Citation preview
CCT Consulting
June 2015 Camille Chaudet
Mobile Analytics Tagging mobile apps
Let's share our REX to become Mobile Analytics Heroes
Mobile Analytics and you
June 15 CCT Consulting - @camillechaudet 2
MOBILE APPS DEVELOPMENT
3 ways to develop mobile apps Native
Native code
Hybrid
Native code
HTML
Web view
HTML
Native container
June 15 CCT Consulting - @camillechaudet 4
June 15 CCT Consulting - @camillechaudet 5
June 15 CCT Consulting - @camillechaudet 6
June 15 CCT Consulting - @camillechaudet 7
MOBILE ANALYTICS TOOLS
MOBILE ANALYTICS WEB ANALYTICS
Javascript <TAG> SDK
Web Analytics server
Mobile App Web & Mobile Site
Cookie Device ID
≠
Internet
Local offline database
Real-time Server Call
Web Analytics server
Internet
Server Call
June 15 CCT Consulting - @camillechaudet 9
Mobile Analytics solutions
June 15 CCT Consulting - @camillechaudet 10
Deploying a Mobile Analytics solution
Business needs + technical
constraints Write tag plan Deploy tag
plan + settings Tests
STEP 1 STEP 2 STEP 3 STEP 4
June 15 CCT Consulting - @camillechaudet 11
Tag plan
June 15 CCT Consulting - @camillechaudet 12
Mobile Apps Tagging AT Internet native tagging code
Guide de marquage | Applications
4
//build an object and convert to json NSDictionary* info = [NSDictionary dictionaryWithObjectsAndKeys: @"my_label", @"pname", [NSNumber numberWithInteger:1234], @"vid", [NSDictionary dictionaryWithObjectsAndKeys: @"key1", @"kw", [NSNumber numberWithInteger:1], @"resultPage",nil], @"internal_search", nil]; ATParams *tag = [[ATParams alloc] init]; NSString *xtcustom = [info JSONRepresentation]; [tag put:@"stc" andValue:xtcustom]; [tag xt_sendTag]; [tag release]; Le résultat sera ceci : &stc={"pname":"my_label","vid":1234,"internal_search":{"kw" :"key1","resultPage" :1}}
iOS5 et ultérieurs
iOS 5 intègre nativement une librairie JSON , voir documentation ici : http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html Note : il est aussi possible d’utiliser un framework externe comme vu dans la partie pour iOS 4 Exemple simple : //build an info object and convert to json NSDictionary* info = [NSDictionary dictionaryWithObjectsAndKeys: @"my_label", @"pname", [NSNumber numberWithInteger:1234], @"vid", [NSDictionary dictionaryWithObjectsAndKeys: @"key1", @"kw", [NSNumber numberWithInteger:1], @"resultPage",nil], @"internal_search", nil]; //convert object to data NSError* error; NSData* jsonData = [NSJSONSerialization dataWithJSONObject:info options:NSJSONWritingPrettyPrinted error:&error]; ATParams *tag = [[ATParams alloc] init]; NSString * xtcustom = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; [tag put:@"stc" andValue:xtcustom]; [tag xt_sendTag]; [tag release]; [xtcustom release]; Le résultat sera ceci : : &stc={"pname":"my_label","vid":1234,"internal_search":{"kw" :"key1","resultPage" :1}}
iOS Android
Guide de marquage | Applications
4
//build an object and convert to json NSDictionary* info = [NSDictionary dictionaryWithObjectsAndKeys: @"my_label", @"pname", [NSNumber numberWithInteger:1234], @"vid", [NSDictionary dictionaryWithObjectsAndKeys: @"key1", @"kw", [NSNumber numberWithInteger:1], @"resultPage",nil], @"internal_search", nil]; ATParams *tag = [[ATParams alloc] init]; NSString *xtcustom = [info JSONRepresentation]; [tag put:@"stc" andValue:xtcustom]; [tag xt_sendTag]; [tag release]; Le résultat sera ceci : &stc={"pname":"my_label","vid":1234,"internal_search":{"kw" :"key1","resultPage" :1}}
iOS5 et ultérieurs
iOS 5 intègre nativement une librairie JSON , voir documentation ici : http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html Note : il est aussi possible d’utiliser un framework externe comme vu dans la partie pour iOS 4 Exemple simple : //build an info object and convert to json NSDictionary* info = [NSDictionary dictionaryWithObjectsAndKeys: @"my_label", @"pname", [NSNumber numberWithInteger:1234], @"vid", [NSDictionary dictionaryWithObjectsAndKeys: @"key1", @"kw", [NSNumber numberWithInteger:1], @"resultPage",nil], @"internal_search", nil]; //convert object to data NSError* error; NSData* jsonData = [NSJSONSerialization dataWithJSONObject:info options:NSJSONWritingPrettyPrinted error:&error]; ATParams *tag = [[ATParams alloc] init]; NSString * xtcustom = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; [tag put:@"stc" andValue:xtcustom]; [tag xt_sendTag]; [tag release]; [xtcustom release]; Le résultat sera ceci : : &stc={"pname":"my_label","vid":1234,"internal_search":{"kw" :"key1","resultPage" :1}}
June 15 CCT Consulting - @camillechaudet 13
Our REX
• Chaos when there is no analytics skills : lot of screens and clicks are not
taggued
• Mobile analytics is easier than web analytics because screens and clicks
are technically the same (events)
• Less errors and less constraints (no javascript conflict, no click to
transform into virtual page, etc.)
June 15 CCT Consulting - @camillechaudet 14
What about your experience?
TESTING & QA
Testing mobile apps
audience analytics
crash analysis
performance analysis
June 15 CCT Consulting - @camillechaudet 17
Different ways to test
Real devices Emulators Crowdtesting (beta testers)
June 15 CCT Consulting - @camillechaudet 18
Real devices testing
Wifi
STEP 1 : Connect the PC and the mobile device to the same wifi network
June 15 CCT Consulting - @camillechaudet 19
Real devices testing
STEP 2 : Set proxy Use the same IP adress than your computer
June 15 CCT Consulting - @camillechaudet 20
Real devices testing
STEP 3 : Catch server calls with Charles Proxy/Fiddler
June 15 CCT Consulting - @camillechaudet 21
Issues faced during QA • Too many or too few mobile devices to run tests
• Lack of time, especially to test non-regressions
• Don't know what/how to test
• Lack of tools to test
• Too many environments (DEV, INT, UAT, PRP, PROD)
• Lack of quality due to manual tests (risks of human errors)
• Lack of autonomy (need other people to run tests)
June 15 CCT Consulting - @camillechaudet 22
What about your experience?
Attendees' REX • Ask logs to developers to help debug
• Use Google Analytics first for real-time tests
• Some testing tools : Charles Proxy, Tag inspector, WASP, Hubscan,
ObservePoint, run a macro on browser consoles, Screaming Frog
• Set alerts on conversion rate drop by browser
June 15 CCT Consulting - @camillechaudet 24