###### tags: `Stolpersteine NRW` `App`
# Tracking Stolpersteine App mit AT Internet
Als WDR wollen wir die Nutzung der Stolpersteine NRW Produkte mit AT Internet (WDR Währung) messen, um den Erfolg der App zu messen und eine Entscheidungsgrundlage für weitere Content-Typ Produktionen zu haben.
**WICHTIG** Außerdem ist parallel zu den _page.display_-Events ein statisches Pixel an InfOnline zu übermitteln, um im Währungssystem der ARD erfasst zu werden.
### Konfiguration
Die Level1-ID gibt an, in welchen Datentopf die Tracking-Daten fließen.
Für die Entwicklung ist die Dev Umgebung zu wählen. Jeder Entwickler, (jede Agentur) bekommt Zugang zur Dev-Umgebung, um die Implementierung zu Testen.
| Level1-ID | Name - Einsatzgebiet |
| -------- | ------------ |
| 624801 | Stolpersteine NRW App |
| 624843 | stolpersteine.wdr.de |
| 621455 | Dev Umgebung für Staging und Testing|
[Data Collection Portal](https://collection.atinternet-solutions.com/#/dashboard) mit allen Level1-IDs
HINWEIS: Die Tracking Domain muss in den nächsten Monaten auf Grund der Einrichtung von CDDC umgestellt werden (["put: Domain"](https://developers.atinternet-solutions.com/as2-tagging-en/android-en/getting-started-android-en/configuration-android-en/#editing-the-configuration_1))
### Opt-Out
Die Nutzerin muss innerhalb der App (unter Einstellungen) die Möglichkeit haben, das Tracking zu deaktivieren.
Mit dem deaktivieren des Trackings ist das Senden von Tags vollständig zu unterbinden.
Vorschlag zum vorgehen in der Implementierung:
1. Einbau SDK
2. Triggern der vereinbarten Events mit Basis-Properties
3. Events mit vollständigen Property-Set anreichern
**Jeder Schritt ist zu auditieren.**
## Events
Folgene Events sind zu setzen:
- page.display
- click.action
- story.display
- ar-Anwendungen
- ar.start
- ar.stop
- av-Insight Events
- av.start
- av.pause
- av.pause
- av.resume
Zum Versenden des Events wird die sogenannte [_Custom-Event-Tagging_](https://developers.atinternet-solutions.com/delta-tagging-en/event-tagging-delta-en/send-events-en/)-Methode des SDK genutzt.
### page.display
Jeder Screen-Aufruf eines Nutzers löst ein page.display-Event aus.
Dabei sind Produkt-, Page- und falls vorhanden Content-Properties zu senden.
### click.action
Folgende Aktionen sind mit einem click.action Event zu belegen.
- Ausklappen des (Premium-)Text auf Stolpersteinen
### story.display
Mit dem aufrufen einer Graphic Story sind ZWEI Events zu senden, denn
Ein page.display Event, dass die "Seite" Klassifiziert. Dabei sind folgende Chapter anzugeben: "Home" - "Graphic Story" - "Arthur May" ODER "Stolperstein" - "Arthur May" - "Graphic Story", jenachdem wo die Nutzerin sich befindet.
Zusätzlich ist für jede Slide das Event "slide.display" zu senden.
Dies ist notwendig, um eine Vergleichbarkeit mit der Website herzustellen und die durchschaue-Rate der Graphic Stories zu analysieren.
### ar-Events
Bei Start einer AR-Anwendung ist das Event **ar.start** und bei der erfolgreichen Rückkehr in die App das Event **ar.stop** zu senden.
### av-Insight Events
|Event|Trigger|Details|
|---|---|---|
|av.start| Tatsächlicher Start des Videos |
|av.pause| Pausieren des Videos |
|av.resume| Fortsetzen des Videos (nach Pausieren) |
|av.stop| Ende des Videos / Schließen des Players / Schließen der App | Dieses Event wird im Idealfall immer gesendet|
## Properties
Mit jedem Event sind Properties zu übergeben.
Die Präfixe der Properties geben den Typ an (s: String, b: boolean, n:integer, d: datetime)
### Product-Properties --> Jedes Event
Dieses Property-Set definiert das Produkt und die Einordnung in die WDR Produktwelt
| Property | App| Website |
|---| ---| ---|
|s:level2 |Stolpersteine NRW App| stolpersteine.wdr.de|
|s:brand|Stolpersteine NRW|Stolpersteine NRW|
|s:editorial_department|PB Internet|PB Internet|
|s:plattform|App| Web|
Die App-Version wird vom SDK erkannt und übermittelt.
### Page-Properties --> Jedes Event
| Property | Wert |
|---| ---|
|s:page_title | Offensichtliches Label des Screens, meist die Überschrift oder der Name der Person des Stolpersteines |
|s:page | \${level2}\_\${page_chapter1}_\${page_title}|
|s:page_chapter1| "Home", "Routen", "Karte", "Profil", "Infos", "Stolpersteine" |
s:page_chapter2 | "Graphic Story" |
[Liste mit allen Page-Propert Property-Werten](https://docs.google.com/spreadsheets/d/1m0lN4wZw9kQTKDrtrUgit7JwJrqKwXLqtdFUdkzdD_E/edit?usp=sharing)
### Content-Properties --> tbd
Content-Properties werden im nächsten Schritt auf Basis der Swagger-Dokumentation befüllt.
Vgl. [Property-Werte](https://docs.google.com/spreadsheets/d/1m0lN4wZw9kQTKDrtrUgit7JwJrqKwXLqtdFUdkzdD_E/edit?usp=sharing)
### Story-Properties --> zusätzlich bei Graphic Story
| Property | Wert |
|---| ---|
|s:story | \${story_title}_\${story_slide} |
|s:story_title | _Name der Person_ |
|n:story_slide |
|n:story_slides_total|
### Click-Properties --> zusätzlich bei click.action
| Property | Wert |
|---| ---|
|s:click | "Text anzeigen" |
|s:click_chapter1 | "Mehr Info" |
### AR-Properties --> zusätzlich bei ar-Events
| Property | Wert |
|---| ---|
|s:ar | "Anteil nehmen", "Stolperstein" |
### AV-Properties
| Property | Beispiel | Details |
| -------- | -------- | -------- |
| **s:av_content_id** | | "externalId" |
| **s:av_session_id** | "ea08fc56-cfe1-4e4e-9f84-ba1af743466f" | uuid type requires a version 5 (random) or version 5 (named) RFC 5122-compliant UUID, Event av_stop und wechseln des AV-Content endet eine av_session und damit die Gültigkeit der ID|
| s:av_content | "Titel des Audios" | |
| s:av_content_type | "Audio", "Video" | |
| s:av_broadcasting_type | "ondemand" | |
| n:av_content_duration | 29847 | integer, in Milliseconds |
| **n:av_position** | 15000 | integer, Current event cursor position |
| **n:av_previous_position** | 10000| integer, Previous event cursor position, muss vorgehalten werden |
| **n:av_duration** | 5000 | integer, Vergange Zeit zwischen zwei Events |
| **av_previous_event** | "av.pause" | Previous event name, leer bei av.start, muss entsprechend vorgehalten werden |
_Für eine korrekte Auswertung auf Seiten von ATI ist die korrekte Befüllung der *fett gedruckten* Properties wichtig!_
# InfOnline
InfOnline ist ein weiteres Tracking, dass in der Stolperstein-App implementiert werden muss.
InfOnline ist die Währung für Vergleichbarkeit in der ARD. Hier werden lediglich Visits und Page-Impressions ausgewertet.
### Opt-Out
Analoge Behandlung wie bei Piano (ATI) und kann entsprechend mit dem deaktivieren des Trackings via Piano gekoppelt werden.
### Konfiguration
|Konfigurations-Parameter | App | Website |
|---|---|---|
|st | wdr | tba.|
|cp | aadstolp | tba.|
Hinweis: Für die Website gibt es einen eigene st-Parameter.
### Implementierung
Mit jedem _page.display_-Event ist das folgende statische Pixel als get-Request zu übermitteln:
https://de.ioam.de/tx.io?st=aadstolp&cp=Seite%2FApp&sc=yes&pt=CP&ps=lin&er=N22&rf=www1.wdr.de&r2=https%3A%2F%2Fwww1.wdr.de%2Findex.html&ur=www1.wdr.de
In der Regel ist die Implementierung damit abgeschlossen.
Außnahme: InfOnline hat in der Vergangenheit den User-Agent nicht aktzeptiert. Hier kann eine Anpassung des User-Agend notwendig werden.
Hinweis: Wir nehmen die entstehenden Ungenauigkeiten durch Offline-Nutzung an dieser Stelle bewusst in Kauf.