Printer Friendly, PDF & Email

Zusätzliche Vorgaben Apps

Beim Mitmessen von Apps sind zusätzliche Vorgaben umzusetzen.

7.1 User Agent

Der User Agent der gemessenen App muss die Identifizierung der Dimensionen Operating System (OS) und Device ermöglichen.

OS

Device

User Agent

Android (Google)

Phone

Mozilla/5.0 (Linux; U; Android-phone)

Android (Google)

Tablet

Mozilla/5.0 (Linux; U; Android-tablet)

Android (Google)

TV

Mozilla/5.0 (Linux; U; Android-tv)

Android (Google)

Universal

Mozilla/5.0 (Linux; U; Android-universal)

iOS (Apple)

Phone

Mozilla/5.0 (iOS-phone; U; CPU iPhone OS like Mac OS X)

iOS (Apple)

Tablet

Mozilla/5.0 (iOS-tablet; U; CPU iPad OS like Mac OS X)

iOS (Apple)

Universal

Mozilla/5.0 (iOS-universal; U; CPU OS  like Mac OS X)

tvOS (Apple)

TV

Mozilla/5.0 (tvOS-tv; U; CPU Apple TV OS like Mac OS X)

Windows (Microsoft)

Phone

Mozilla/4.0 (compatible; Windows OS; Windows-phone)

Windows (Microsoft)

Tablet

Mozilla/4.0 (compatible; Windows OS; Windows-tablet)

Windows (Microsoft)

Desktop

Mozilla/4.0 (compatible; Windows OS; Windows-desktop)

Windows (Microsoft)

Universal

Mozilla/4.0 (compatible; Windows OS; Windows-universal)

7.2 Zusammenspiel User Agent und Sektionen

Es muss sichergestellt sein, dass der User Agent jeweils mit der entsprechenden Sektion korrespondiert. Dabei sind folgende Kombinationen erlaubt:

Sektion (schematisch)

Erlaubter User Agent

/apps/[name]/android/phone

Mozilla/5.0 (Linux; U; Android-phone)

/apps/[name]/android/tablet

Mozilla/5.0 (Linux; U; Android-tablet)

/apps/[name]/android/watch

mit NET-Metrix zu klären

/apps/[name]/android/tv

Mozilla/5.0 (Linux; U; Android-tv)

/apps/[name]/android/universal

Mozilla/5.0 (Linux; U; Android-universal)

Mozilla/5.0 (Linux; U; Android-phone)

Mozilla/5.0 (Linux; U; Android-tablet)

Mozilla/5.0 (Linux; U; Android-tv)

  1. /apps/[name]/android/universal/phone
  2. /apps/[name]/android/universal/tablet
  3. /apps/[name]/android/universal/watch
  4. /apps/[name]/android/universal/tv
  1. Mozilla/5.0 (Linux; U; Android-phone)
  2. Mozilla/5.0 (Linux; U; Android-tablet)
  3. mit NET-Metrix zu klären
  4. Mozilla/5.0 (Linux; U; Android-tv)

/apps/[name]/ios/phone

Mozilla/5.0 (iOS-phone; U; CPU iPhone OS like Mac OS X)

/apps/[name]/ios/tablet

Mozilla/5.0 (iOS-tablet; U; CPU iPad OS like Mac OS X)

/apps/[name]/ios/universal

Mozilla/5.0 (iOS-universal; U; CPU OS  like Mac OS X)

Mozilla/5.0 (iOS-phone; U; CPU iPhone OS like Mac OS X)

Mozilla/5.0 (iOS-tablet; U; CPU iPad OS like Mac OS X)

  1. /apps/[name]/ios/universal/phone
  2. /apps/[name]/ios/universal/tablet
  1. Mozilla/5.0 (iOS-phone; U; CPU iPhone OS like Mac OS X)
  2. Mozilla/5.0 (iOS-tablet; U; CPU iPad OS like Mac OS X)

/apps/[name]/tvos/tv

Mozilla/5.0 (tvOS-tv; U; CPU Apple TV OS like Mac OS X)

/apps/[name]/watchos/watch

mit NET-Metrix zu klären

/apps/[name]/windows/phone

Mozilla/4.0 (compatible; Windows OS; Windows-phone)

/apps/[name]/windows/tablet

Mozilla/4.0 (compatible; Windows OS; Windows-tablet)

/apps/[name]/windows/desktop

Mozilla/4.0 (compatible; Windows OS; Windows-desktop)

/apps/[name]/windows/universal

Mozilla/4.0 (compatible; Windows OS; Windows-universal)

Mozilla/4.0 (compatible; Windows OS; Windows-phone)

Mozilla/4.0 (compatible; Windows OS; Windows-tablet)

Mozilla/4.0 (compatible; Windows OS; Windows-desktop)

  1. /apps/[name]/windows/universal/phone
  2. /apps/[name]/windows/universal/tablet
  3. /apps/[name]/windows/universal/desktop
  1. Mozilla/4.0 (compatible; Windows OS; Windows-phone)
  2. Mozilla/4.0 (compatible; Windows OS; Windows-tablet)
  3. Mozilla/4.0 (compatible; Windows OS; Windows-desktop)

7.3 Cookie

Die Client-Identifizierung erfolgt auch über Cookies. Aus diesem Grunde ist darauf zu achten, dass die App Cookies akzeptiert. Dabei darf in der gesamten App nur eine Cookie-Kennung akzeptiert werden. Die identische Cookie-Kennung muss erhalten bleiben bei

  • gesamter App-Nutzung für alle gemessenen Content-Bereiche inkl. Partnerangebote
  • Neustart der App
  • Update der App
  • Update des Device-OS

7.4 App-Referrer

Anhand des Referrers kann der Traffic schneller analysiert und plausibilisiert werden. Wir empfehlen allen Kunden, welche Apps mitmessen, den App-Referrer gemäss folgender Logik umzusetzen.

7.4.1 Zwei Varianten von App-Referrern

Bei den App-Referrern unterscheiden wir:

  • Page-Referrer (r= Parameter): Herkunft des Aufrufs
  • Skript-Referrer: Einbauort des Zählpixels

Fiktives Beispiel:

  • Kennung: nmx
  • Locallist: Hauptangebot: *net-metrix.ch*, *netmetrix.ch*; Partnerangebot: *wemf.ch*
  • App: Netmetrix, iOS, Phone
  • Sektionsvorgabe: /apps/netmetrix/ios/phone
  • User Agent: Mozilla/5.0 (iOS-phone; U; CPU iPhone OS like Mac OS X)

7.4.2 App-Referrer-Vorgaben

Navigationsbeispiel 1: App-Start, keine weiteren Aktionen

Navigationsbeispiel 2: nach App-Start Klick auf Service

Navigationsbeispiel 3: innerhalb Service Klick auf Glossar

Navigationsbeispiel 4: innerhalb Glossar Klick auf das mitgemessene Partnerangebot https://www.wemf.ch

7.5 Sprachinformation bei Apps

Für die korrekte Messung einer App im Rahmen der NET-Metrix-Studien müssen eine Vielzahl von Parametern übergeben und einige Header Information gesetzt werden, die standardmässig nicht übergeben werden. Auch für ein korrektes Cookie-Handling sind speziell auf Android-Devices einige Besonderheiten zu beachten. Die folgenden Code-Fragmente demonstrieren die korrekte Übergabe aller benötigten Parameter und Header-Variablen.

7.5.1 Code-Fragment für iOS-Apps in Objective C

// Random Number
int randomInt = arc4random() % 1000000;
NSString *randomString = [NSString stringWithFormat:@"%d",randomInt];

// URL String
NSString *offerKey = @"[offer]";
NSString *appname = @"[name]";
NSString *platform = @"[platform]";
NSString *device = @"[device]";
NSString *urlString = [NSString stringWithFormat:@"http://%@.wemfbox.ch/cgi-bin/ivw/CP/apps/%@/%@/%@?d=%@", offerKey, appname, platform, device, randomString];

// NS-URL
NSURL * url = [NSURL URLWithString:urlString];

// Request
NSMutableURLRequest * request = [[NSMutableURLRequest alloc] initWithURL:url];

// Create client with custom useragent i.E. Mozilla/5.0 (iOS-phone; U; CPU iPhone OS like Mac OS X)
[request setValue:@"[useragent]" forHTTPHeaderField:@"User-Agent"];

// Set Accept-Language Header i.E. de
[request setValue:@"[language_iso]" forHTTPHeaderField:@"Accept-Language"];

NSURLConnection * theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:nil];

[request release];

[theConnection release];

7.5.1.1 Variablen und Werte

Variable

Beispielwert

[offer]

netmx

[useragent]

Mozilla/5.0 (iOS-phone; U; CPU iPhone OS like Mac OS X)

[name]

news

[platform]

iOS

[device]

phone

[language_iso]

de

7.5.2 Code-Fragment für Android-Apps in Java

// Create a local instance of cookie store
CookieStore cookieStore = new BasicCookieStore();

// Create local HTTP context
HttpContext localContext = new BasicHttpContext();

// Bind custom cookie store to the local context
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);

// Create client with custom useragent i.E. Mozilla/5.0 (Linux; U; Android-phone)
AndroidHttpClient client = AndroidHttpClient.newInstance("[useragent]");

// Create get request for NetMetrix-Tag
HttpGet getRequest = new HttpGet("[offer].wemfbox.ch/cgi-bin/ivw/CP/apps/[name]/[platform]/[device]?d="+ MathUtils.random(1000000000, Integer.MAX_VALUE));
( oder alternativ: HttpGet getRequest = new HttpGet("http://[offer].wemfbox.ch/cgi-bin/ivw/CP/apps/[name]/[platform]/[device]?d="+ System.currentTimeMillis()); )

// Set Accept-Language Header i.E. "de"
getRequest.setHeader("Accept-Language", "[language_iso]");

// execute the request with localContext (cookie store)
HttpResponse response = client.execute(getRequest, localContext);

7.5.2.1 Variablen und Werte

Variable

Beispielwert

[offer]

netmx

[useragent]

Mozilla/5.0 (Linux; U; Android-phone)

[name]

news

[platform]

Android

[device]

phone

[language_iso]

de

7.5.2.2 Anmerkungen zum Android-Code-Fragment

Der Cookie Store muss einen globalen/statischen Context haben und beim Beenden und Starten der App serialisiert und gespeichert werden.

7.5.3 Anmerkungen

Der Sprachcode entspricht der RFC Definition des „Accept-Language“ Headers und besteht aus einem ISO 639 Sprachcode mit optionalem ISO 3316 Ländercode für nationale Varianten. Zum Beispiel "en-UK" für britisches Englisch oder "de" für eine beliebige Variante von Deutsch. Bitte beachten Sie, dass der ISO 3316 Ländercode vom aktuellen System NICHT verwendet wird. Die Angabe des reinen ISO 639 Sprachcodes ist daher völlig ausreichend.