Top Banner
CCT Consulting June 2015 Camille Chaudet Mobile Analytics Tagging mobile apps Let's share our REX to become Mobile Analytics Heroes
25
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

CCT Consulting

June 2015 Camille Chaudet

Mobile Analytics Tagging mobile apps

Let's share our REX to become Mobile Analytics Heroes

Page 2: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

Mobile Analytics and you

June 15 CCT Consulting - @camillechaudet 2

Page 3: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

MOBILE APPS DEVELOPMENT

Page 4: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

3 ways to develop mobile apps Native

Native code

Hybrid

Native code

HTML

Web view

HTML

Native container

June 15 CCT Consulting - @camillechaudet 4

Page 5: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

June 15 CCT Consulting - @camillechaudet 5

Page 6: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

June 15 CCT Consulting - @camillechaudet 6

Page 7: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

June 15 CCT Consulting - @camillechaudet 7

Page 8: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

MOBILE ANALYTICS TOOLS

Page 9: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

 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

Page 10: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

Mobile Analytics solutions

June 15 CCT Consulting - @camillechaudet 10

Page 11: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

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

Page 12: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

Tag plan

June 15 CCT Consulting - @camillechaudet 12

Page 13: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

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

Page 14: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

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

Page 15: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

What about your experience?

Page 16: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

TESTING & QA

Page 17: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

Testing mobile apps

audience analytics

crash analysis

performance analysis

June 15 CCT Consulting - @camillechaudet 17

Page 18: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

Different ways to test

Real devices Emulators Crowdtesting (beta testers)

June 15 CCT Consulting - @camillechaudet 18

Page 19: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

Real devices testing

Wifi

STEP 1 : Connect the PC and the mobile device to the same wifi network

June 15 CCT Consulting - @camillechaudet 19

Page 20: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

Real devices testing

STEP 2 : Set proxy Use the same IP adress than your computer

June 15 CCT Consulting - @camillechaudet 20

Page 21: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

Real devices testing

STEP 3 : Catch server calls with Charles Proxy/Fiddler

June 15 CCT Consulting - @camillechaudet 21

Page 22: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

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

Page 23: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

What about your experience?

Page 24: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

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

Page 25: Camille chaudet   measure camp-tagguing_mobile_apps_june15_v1.0

+33 6 25 06 26 46

[email protected]

@camille.chaudet

Contact : Camille CHAUDET