Erste Schritte für die Datenerfassung mit Android

Aufbau in Android Studio

Hinweis: Ab Android Studio 3.5 ist die Funktion Änderungen anwenden standardmäßig aktiviert und kann nicht deaktiviert werden.Wir empfehlen dir, dein APK über die Gradle-Aufgabe in der Befehlszeile anstatt in Android Studio aufzubauen.Beim Aufbau in Android Studio können wir nicht garantieren, dass die Fullstory-Aufgaben ordnungsgemäß ausgeführt werden. Dies kann in der Folge zu Abstürzen in der App führen.

Während du die folgenden Anweisungen implementierst, findest du es möglicherweise hilfreich, auf eine Beispiel-App mit integriertem Fullstory zu verweisen. Wir haben hier ein Beispiel dafür, wie das SDK in eine Adroid-App implementiert wird.

Für moderne Android-Apps

In der Architektur moderner Android-Anwendungen gibt es normalerweise zwei build.gradle-Dateien, die geändert werden müssen, wenn Gradle-Plug-ins hinzugefügt werden. Diese Dateien sind:

  • Das Root-Projekt build.gradle (standardmäßig im Root-Ordner) und
  • Die App/das Modul build.gradle (standardmäßig im Ordner app/).

Das Root-Projekt build.gradle deklariert Speicherorte für Skript-Plug-ins und Klassenpfade. Du änderst diese Datei so, dass sie auf das Repository von Fullstory verweist, und fügst den classpath des Fullstory-Plug-ins hinzu (ähnlich wie bei der Deklarierung des Gradle-Plug-ins für Android).

Im App-spezifischen build.gradle wendest du das Plug-in an und deklarierst dann einen fullstory-Skriptblock, um einige zusätzliche Eigenschaften zu konfigurieren. Dies funktioniert analog zum Einsatz des Anwendungs-Plug-ins für Android und der Nutzung des android-Konfigurationsblocks für die Deklaration von Eigenschaften.


Während du die folgenden Anweisungen implementierst, findest du es möglicherweise hilfreich, auf eine Beispiel-App mit abgeschlossener Fullstory-Installation zu verweisen. Wenn du gerne eine moderne Beispiel-App zur Durchsicht hättest, wende dich bitte an den Fullstory-Support und verweise auf dieses Dokument.

Für veraltete Android-Apps

Veraltete Android-Apps, die von Eclipse zu Android Studio migriert wurden, haben eine einzige monolithische build.gradle-Datei und keine separaten build.gradle-Dateien für Root und App.Daher ist der Installationsprozess für Fullstory identisch mit dem Prozess für moderne Apps, mit der Ausnahme, dass hier alle Änderungen in der einzelnen build.gradle-Datei stattfinden. Wenn du gerne eine veraltete Beispiel-App zur Durchsicht hättest, wende dich bitte an den Fullstory-Support und verweise auf dieses Dokument.

Füge im Root-Projekt build.gradle das Fullstory-Plug-in hinzu

Paste the highlighted lines into the buildscript section, ensure that you replace <PLUGIN VERSION> with the latest version of the Fullstory Android plugin. You can find the latest release notes here (this is currently 1.37.0).

buildscript {
  repositories {
... maven { url "https://maven.fullstory.com" } } dependencies { ... classpath 'com.fullstory:gradle-plugin-local:<PLUGIN VERSION>'
}
}


Wende im App/Modul build.gradle das Fullstory-Plug-in an

Füge die hervorgehobenen Zeilen ein:

Wenn deine Gradle-Datei Plug-ins über die Plug-in-ID hinzufügt:

plugins {
id 'com.android.application' id 'fullstory'
}

fullstory {
org "<ORG ID>"
<PLUGIN PROPERTIES>
}
android { ...

Wenn deine Gradle-Datei Plug-ins anwendet:

apply plugin: 'com.android.application'
apply plugin: 'fullstory'

fullstory {
org "<ORG ID>"

<PLUGIN PROPERTIES>
}

android {
...

Füge die Plug-in-Eigenschaften hinzu

Ersetze <PLUGIN PROPERTIES> durch die folgenden verfügbaren Eigenschaften:

Eigenschaft Optionen Beschreibung
org

Erforderlich

Deine Organisations-ID
enabledVariants

Standard: release

Optionen: variiert

Gib an, welche Build-Varianten angewandt werden sollen
logcatLevel

Standard: off

Optionen: off, error, warn, info, debug, log

Erfasse Logcat-Meldungen auf oder über der angegebenen Ebene
logLevel

Standard: info

Optionen: off, error, warn, info, debug, log

Erfasse FS.log()-Meldungen auf oder über der angegebenen Ebene
recordOnStart (optional)

Standard: true

Optionen: true, false

Verhindere, dass Fullstory beim App-Start mit der Datenerfassung beginnt
addDependencies (optional)

Standard: true

Optionen: true, false

Verhindere, dass das Gradle-Plug-in von Fullstory automatisch Gradle-Abhängigkeiten hinzufügt
serverUrl (optional)

Default: https://fullstory.com

Optionen: variiert

Specify the server url to route Fullstory traffic through


Deine Organisations-ID

Füge deine Organisations-ID hinzu, die du erhältst, indem du dich bei Fullstory anmeldest. Navigiere zu Einstellungen > Datenerfassung und Datenschutz > Fullstory-Konfiguration. Hier solltest du eine Zeile sehen, die wie folgt aussieht: window['_fs_org'] = 'XXXXX';. Diese Zeichenfolge ist deine Organisations-ID. Weitere Hilfe beim Auffinden deiner Organisations-ID findest du in diesem Artikel.

Wenn du dich bei deinem Fullstory-Konto anmeldest, findest du deine Organisations-ID außerdem in der URL deines Browsers.

https://app.fullstory.com/ui/<ORG_ID>/home

Gib an, welche Build-Varianten angewandt werden sollen

Standardmäßig wird Fullstory nur auf die release-Variante deiner App angewendet. Wenn deine Build-Variante das Wort „release“ enthält, fügen wir unseren Instrumentierungscode dem APK hinzu, nachdem es erstellt wurde.

Um Fullstory auf alle Varianten anzuwenden, einschließlich derjenigen, die beim Debuggen verwendet wurden, füge die folgende Zeile unter der Organisationszeile hinzu:

enabledVariants 'all'

Wenn du möchtest, dass Fullstory auf bestimmte Varianten angewendet wird, kannst du auch einen regulären Ausdruck wie diesen verwenden:

enabledVariants 'debug|release'

Der Variantenname setzt sich aus dem Product Flavor und dem Build-Typ zusammen (ein Beispiel findest du hier). Das Build-Plug-in von Fullstory gleicht den Variantennamen ohne Berücksichtigung der Groß-/Kleinschreibung ab.

Erfassung von LogCat- und FS.log()-Meldungen

Standardmäßig erfasst Fullstory keine LogCat-Meldungen. LogCat-Meldungen können jedoch Frustrationssignale wie Error Clicks erfassen. Um dieses Verhalten zu ändern und Frustrationssignale zu erfassen, aktualisiere dein logcatLevel-Flag.

logcatLevel 'error'

Standardmäßig erfasst Fullstory alle Log-Statements, die über die API FS.log() über und auf der Ebene 'info' in deiner Anwendung gesendet werden. Um dieses Verhalten zu ändern, aktualisiere dein logLevel-Flag.

logLevel 'error'

Alle Meldungen, die unter der angegebenen Ebene gesendet werden, werden nicht an Fullstory weitergegeben. Wenn beispielsweise die Ebene 'info' angegeben ist, werden keine 'debug'- und 'log'-Meldungen gesendet. Dies sind die verfügbaren Optionen:

  • 'off' – kein Logging
  • 'error' – Fehler
  • 'warn' – Warnung
  • 'info' – Info
  • 'debug' – Debuggen
  • 'log' – ausführlich

Verhindere, dass Fullstory beim App-Start mit der Datenerfassung beginnt

Standardmäßig beginnt Fullstory mit der Datenerfassung beim Starten der App. Wenn du die Datenerfassung erst starten möchtest, wenn bestimmte Bedingungen erfüllt sind, kannst du das recordOnStart-Flag auf false setzen. Dadurch wird die Datenerfassung verhindert, bis die API FS.restart() explizit aufgerufen wird.

recordOnStart false

Verhindere, dass das Gradle-Plug-in von Fullstory automatisch Gradle-Abhängigkeiten hinzufügt

Standardmäßig fügt das Gradle-Plug-in von Fullstory dem Projekt automatisch die richtigen AAR-Dateien hinzu.Wenn das Plug-in dies nicht tun soll, kannst du das Flag addDependencies auf false setzen.

addDependencies false

When this is passed in, the Fullstory Plugin will output information to assist you in manually configuring the necessary pieces. For example, building with 1.37.0 will output:

FullStory: skipping auto-adding dependencies
FullStory: you must add `maven { url "https://maven.fullstory.com" }` manually to your root project's `allprojects.repositories`
FullStory: you must add `implementation 'com.fullstory:instrumentation-full:1.37.0@aar'` manually to your application project's `dependencies`

Wenn du eine Version von Fullstory verwendest, die älter als 1.23.0 ist, musst du -PfsAddGradleDependency=false in der Befehlszeile übergeben oder die Projekteigenschaft in gradle.properties als fsAddGradleDependency=false festlegen. 

Unterklasse der Anwendung

Fullstory erfordert, dass du MultiDex aktivierst.Wenn deine minSdkVersion auf 21 oder höher festgelegt ist, ist Multidex standardmäßig aktiviert. Erzeuge eine Unterklasse der Anwendungsklasse android.app.Application.

Wenn deine minSdkVersion niedriger als 21 ist, musst du stattdessen eine Unterklasse von androidx.multidex.MultiDexApplication erzeugen.

Wenn du Java verwendest:

Wenn du keine Anwendungsklasse hast, erstelle eine und füge Folgendes in App.java hinzu:

import android.app.Application;
public class App extends Application {
...
}

Füge in deinem AndroidManifest.xmlunter dem Tag <application> auf folgende Weise android:name="App" hinzu:

<application
android:name="App"
...

Wenn du Kotlin verwendest:

Wenn du keine Anwendungsklasse hast, erstelle eine und füge Folgendes in App.kt hinzu:

import android.app.Application
class App: Application() {
...
}

Füge in deinem AndroidManifest.xmlunter dem Tag <application> auf folgende Weise android:name="App" hinzu:

<application
android:name="App"
...

Berechtigungsvoraussetzungen

Füge deinem AndroidManifest.xmldie folgenden Berechtigungen hinzu, falls du dies noch nicht getan hast:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Verwendung von Fullstory in Bibliotheksmodulen

Das Android-Plug-in von Fullstory unterstützt Bibliotheken innerhalb von Anwendungen mit mehreren Modulen, kann jedoch nicht auf eine eigenständige Bibliothek angewandt werden. Wenn du APIs von Fullstory von einem Bibliotheksmodul innerhalb einer App mit mehreren Modulen referenzieren möchtest, lege das Repository und die Abhängigkeit wie folgt fest:

apply plugin: 'com.android.library'
repositories {
maven { url "https://maven.fullstory.com" }
...
}
dependencies {
implementation 'com.fullstory:instrumentation-full:<PLUGIN VERSION>@aar'
...
}

Zusätzliche Themen

Identifizieren von Benutzer:innen und Weitergabe benutzerdefinierter Daten an Fullstory

Im Web bietet Fullstory die JavaScript-Funktionen FS.identify und FS.setUserVars, mit denen du deine Fullstory-Daten mit zusätzlichen Variablen zur Verwendung in Suchen, Segmenten und Integrationen anreichern kannst. Diese Funktionalität wird auf Android repliziert, damit du Benutzerinformationen direkt von deiner nativen App an Fullstory übergeben kannst. Die Methoden verhalten sich identisch zu ihren oben verknüpften JavaScript-Pendants. Die Parameter sind einfach die Java-Äquivalente der ursprünglichen JavaScript-Parameter: FS.identify benötigt einen String und optional Map<String, Object>, während FS.setUserVars ein Map<String, Object>erfordert.

FSOnReadyListener

Du kannst FSOnReadyListener implementieren und onReady überschreiben, um über Session-Daten benachrichtigt zu werden, wenn Fullstory vollständig initialisiert und einsatzbereit ist.

Wenn du Java verwendest:

public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
FS.setReadyListener(new FSSessionReadyListener());
}

private static class FSSessionReadyListener implements FSOnReadyListener {
@Override
public void onReady(FSSessionData sessionData) {
String sessionUrl = sessionData.getCurrentSessionURL();
Log.d("FullStory", "Session URL is: " + sessionUrl);
}
}
}

Wenn du Kotlin verwendest:

class App : Application() {
override fun onCreate() {
super.onCreate()
FS.setReadyListener(FSSessionReadyListener())
}

private class FSSessionReadyListener : FSOnReadyListener {
override fun onReady(sessionData: FSSessionData) {
Log.d("FullStory", "Session URL is: ${sessionData.currentSessionURL}")
}
}
}

Datenschutzbestimmungen von Fullstory für mobile Apps

Weitere Informationen zum Konfigurieren von Datenschutzregeln und zur Maskierung findest du in unserem Leitfaden mit dem Titel Datenschutzbestimmungen von Fullstory für mobile Apps.

Ein- oder Ausschalten der mobilen Datenerfassung

Die mobile Datenerfassung kann unter Einstellungen > Datenerfassung und Datenschutz > Mobile Datenerfassung ein- oder ausgeschaltet werden. Dies gilt für dein gesamtes Fullstory-Konto.

Konfigurieren des Domain-Allowlisting für WebViews

Wenn deine Anwendung WebViews verwendet, musst du jede Domain, die du innerhalb eines WebView erfassen möchtest, ausdrücklich in die Allowlist aufnehmen. Aus Sicherheits- und Datenschutzgründen solltest du nur Domains in die Allowlist aufnehmen, die unter deiner Kontrolle stehen. Platzhalter und Subdomains werden nach demselben Schema wie Webdomaineinstellungen unterstützt. Der Hauptunterschied zwischen den Web- und Mobil-Einstellungen besteht darin, dass das Domain-Allowlisting im Web zwar optional, für Mobilgeräte jedoch obligatorisch ist, wenn du Inhalte in WebViews erfassen möchtest. Wenn deine Anwendung WebViews nicht verwendet oder du keine Erfassung innerhalb von WebViews vornehmen möchtest, kannst du diesen Abschnitt getrost ignorieren.

Diese Einstellungen können unter Einstellungen > Datenerfassung und Datenschutz > Mobile Datenerfassung konfiguriert werden.

Need to get in touch with us?

The Fullstory Team awaits your every question.

Ask the Community Technical Support