1 Einleitung

1.1 Über diese Anleitung

Das vorliegende Dokument beschreibt eine Sonderform der Integration der Messung hybrider Apps in Umgebungen, in denen die Nutzung der nativen Libraries nicht durchgängig erfolgen kann.
Das Dokument beschreibt plattformübergreifend ausschliesslich die Spezifikationen der Alternativlösung der Integration der Messung hybrider Apps. Alle weiteren Informationen sind den plattformspezifischen Integration Guides und den ergänzenden Dokumentationen der ÖWA zu entnehmen.

1.1.1 Gültig für MEWs und stationäre Websites

Hybride Apps beziehen den externen Web-Content i.d.R. von Websites, die für die Nutzung von mobilen Endgeräten optimiert sind. Diese Websites werden in diesem Dokument als MEW (=mobile enabled Website) bezeichet.
Sollte Ihre hybride App Content aus einer stationären Website (optimiert für die Nutzung von PCs und Notebooks) beziehen, gelten alle Bedingungen, die im Dokument für die MEWs beschrieben sind, gleichlautend für die stationäre Website.

1.2 Messung hybrider Apps (Standardlösung)

Die ÖWA-Library ist in der Lage, die Nutzung von Hybrid Apps zu messen, d.h. auch Nutzeraktionen innerhalb mobiler Inhalte, welche in sog. WebViews dargestellt werden, können erfasst und mit den Messdaten des nativen App-Rahmens zusammengeführt werden.
Nachfolgendes Schaubild zeigt eine Übersicht mobiler Nutzung:

Voraussetzung für die Zusammenführung der Nutzungsmessung aus App-Rahmen und Webseiten ist, dass die über den WebView aufgerufenen Webseiten ebenfalls mit dem ÖWA-Tag 3.0 für Websites vertaggt sind. Die App und die aus der App aufgerufenen MEWs müssen unterschiedliche, von ÖWA vergebene Angebotskennungen verwenden. Eine weitere Voraussetzung ist, dass der Aufruf des WebView aus dem App-Code angepasst und über die IOLWebView-Klasse aufgerufen wird, um die App-Identifikationsmerkmale (derzeit vor allem Client ID und Angebotskennung der App) im WebView bereitzustellen.
In den plattformspezifischen Integration Guides wird beschrieben, wie die Nutzungsmessung hybrider Apps unter durchgängiger Nutzung der nativen Libraries realisiert werden kann (Standard-Lösung).

1.3 Alternativlösung zur Messung hybrider Apps

Neben der nativen Programmierung von Apps stehen in der Praxis weitere Optionen zur Verfügung eine App zu entwickeln. So unterstützen z.B. Entwicklungsframeworks wie PhoneGap oder Titanium die plattformübergreifende Entwicklung mit einem hohen Anteil an Web-Inhalten. Gleichzeitig beschränken diese Plattformen die Einfluss-Möglichkeiten im Bereich des nativen App-Codes, indem sie z.B. die Anpassung des WebView-Aufrufs untersagen. Dies führt dazu, dass die hybrid-Messung nach dem Standard-Verfahren unter Verwendung der App-Libraries nicht vollständig möglich ist.
Im folgenden Kapitel wird beschrieben, wie die Messung hybrider Apps ohne Verwendung des von der Library bereitgestellten, angepassten WebView-Aufrufs („IOLWebView“) realisiert werden kann (Alternativlösung).

2 Integration Alternativlösung

2.1 Unterschiede Integration Standard / Alternativlösung

Die Alternativlösung der Integration der Messung hybrider Apps beruht auf dem unter 1.2 beschriebenen Verfahren, bei dem

  • die App-Identifikationsmerkmale aus dem App-Rahmen in den WebView übertragen
  • und dort beim Aufruf des ÖWA-Tags mit an das Messsystem übermittelt wird

Damit ist es möglich, die Nutzeraktionen im App-Rahmen mit denen der Webseiten-Nutzung zu einem Nutzungsvorgang zusammenzuführen.
Im Vergleich zur Standardlösung weicht die Alternativlösung zur  Integration in einem Punkt ab:

  • die Übergabe der App-Identifikationsmerkmale aus dem App-Rahmen in den WebView erfolgt manuell (Standard-Lösung: erfolgt automatisch über den Aufruf des IOLWebView)

2.2 Voraussetzungen

Für die Messung der Nutzung hybrider Apps nach dem alternativen Verfahren müssen folgende Voraussetzungen erfüllt sein:

  • die plattformspezifische App-Library (ab Version 2.0) muss in den App-Rahmen integriert sein und beim Start der App initialisiert werden.
  • die im WebView aufgerufenen Inhalte müssen mit der Version des ÖWA-Tag 3.0 für Websites vertaggt sein, welcher die hybride Messung unterstützt
  • die Parameterübergabe zwischen dem App-Rahmen und dem eingesetzten WebView muss wie unter 2.3.3 beschrieben erfolgen

Die Nutzung der App-Library (ab Version 2.0) im App-Rahmen ist obligatorisch, da

  • über die App-Library Klassifizierungsmerkmale der App gebildet und für die Einordnung des Nutzungsvorgangs an das Messsystem übermittelt werden
  • die App-Identifikationsmerkmale werden nach den Vorgaben der ÖWA Messung gebildet und für die weitere Verwendung bereitgestellt (siehe 2.3.2)

2.3 Technische Integration

2.3.1 App-Library

Die Implementierung der plattformspezifischen App-Library muss nach den Vorgaben des zugehörigen Integration Guides erfolgen. Die Library muss beim Start der App initialisiert werden. Es muss mindestens die Version v2.0 der App-Library eingesetzt werden.

2.3.2 Ermittlung der App-Identifikationsmerkmale

Für die Ermittlung der App-Identifikationsmerkale stellt die Library eine dedizierte Getter-Funktion zur Verfügung, die aus dem Code der App aufgerufen werden kann. Das Ergebnis ist ein JSON-String, welcher in einer geeigneten String-Variable zu speichern und beim Aufruf der setMultiIdentifier-Methode zu verwenden ist (siehe 2.3.3). Das Ergebnis von getMultiIdentifier() ist ein JSON-Object als String, dessen Anführungszeichen escaped sind.

Beispiele für den Aufruf der Methode:
iOS:
Ab der App-Library v2.0.0 gibt es die Klasse IOLWebView in zwei Varianten, welche in Bezug auf das Ergebnis als identisch anzusehen sind:
empfohlen:      [IOLWKWebView multiIdentifierString];
alternativ:          [IOLUIWebView multiIdentifierString];
Empfohlen ist die Verwendung des IOLWKWebView (welcher die SDK Basis-Klasse “WKWebView” referenziert), da ab iOS 12 die SDK Basis-Klasse “UIWebView” (welche dem IOLUIWebView zugrunde liegt) als deprecated markiert ist und damit in Zukunft entfallen wird.
HINWEIS: Der SFSafariViewController kann für die Messung nicht verwendet werden, da dieser keine Möglichkeit zur JavaScript-Injection bietet!

Android:
Messung:

IOLSession.getSessionForType(IOLSessionType.SZM).requestMultiIdentifier
(IOLSession.MultiIdentifierCallback multiIdentifierCallback);

Das MultiIdentifierCallback ist ein Interface, welches über die Methode onMultiIdentifier(String identifier) den "MultiIdentifier" zurückgibt, sobald dieser verfügbar ist. Gemäß Google Richtlinien muss die Erhebung des AdvertisingIdentifiers asynchron erfolgen.
Bei Android muss man zusätzlich sicherstellen, dass JavaScript und Dom-Storage aktiviert sind, was in einem Standard WebView nicht zwingend der Fall ist:

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);


Es ist darauf zu achten, dass vor dem Aufruf dieser Methoden eine Session der jeweiligen App-Library initialisiert wurde!

2.3.3 Übergabe der App-Identifikationsmerkmale in die WebView Nutzung

Für die Übergabe der App-Identifikationsmerkmale aus dem App-Rahmen in die WebView Nutzung stellt ÖWA die JavaScript-Funktion
     iom.setMultiIdentifier(identifier:string)
bereit.
identifier:string bezeichnet die String-Variable, in die das Ergebnis des unter 2.3.2 beschriebenen Funktionsaufrufes gespeichert wurde.  
Diese Funktion muss bei jedem Aufruf einer URL im WebView aufgerufen werden.

2.3.4 Einrichtung Webseiten zur Erfassung der hybriden Nutzung

Die Webseiten, die im Nutzungsvorgang der hybriden App mit dem WebView aufgerufen werden und deren Nutzung erfasst werden soll, müssen mit dem im Dokument Implementierung Tag 3.0 im Kapitel "Konfiguration des ÖWA-Tags 3.0 für die hybride App-Messung" beschriebenen Tag versehen werden.