Available for the following Plan types:
FullStory Enterprise*
FullStory Advanced*
FullStory Business*
Die FullStory ist kostenlos.
*with the following add-on:
FullStory für mobile Apps
Available to the following User roles:
Admin
Architekt:in
Standard
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 Ordnerapp/
).
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: Optionen: variiert |
Gib an, welche Build-Varianten angewandt werden sollen |
logcatLevel |
Standard: Optionen: |
Erfasse Logcat-Meldungen auf oder über der angegebenen Ebene |
logLevel |
Standard: Optionen: |
Erfasse FS.log() -Meldungen auf oder über der angegebenen Ebene |
recordOnStart (optional) |
Standard: Optionen: |
Verhindere, dass FullStory beim App-Start mit der Datenerfassung beginnt |
addDependencies (optional) |
Standard: Optionen: |
Verhindere, dass das Gradle-Plug-in von FullStory automatisch Gradle-Abhängigkeiten hinzufügt |
serverUrl (optional) |
Default: 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.xml
unter 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.xml
unter dem Tag <application>
auf folgende Weise android:name="App"
hinzu:
<application
android:name="App"
...
Berechtigungsvoraussetzungen
Füge deinem AndroidManifest.xml
die 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.