📲 ZVV App Banner

Dieses Projekt liefert ein einzelnes, selbst‑ausführendes IIFE‑Bundle banner.js für die Integration auf zvv.ch.

Integration – Keep it simple:

Deutsch

DE erzwingen (Snippet ist autark, keine URL‑Parameter nötig):

<div id="zvv-app-banner-root" data-lang="de"></div>
<script defer src="https://appbanner.zvv.ch/banner.js?lang=de"></script>

English

EN erzwingen (Snippet ist autark):

<div id="zvv-app-banner-root" data-lang="en"></div>
<script defer src="https://appbanner.zvv.ch/banner.js?lang=en"></script>

Kampagnen‑Tracking pro Seite (iOS ct)

Apple App Analytics „Campaign Token". Pro Einbindung überschreibbar, ohne separates Bundle. Default ohne Konfiguration: AppBanner. Android utm_campaign bleibt zvv_app.

Variante A: Mount‑Attribut (empfohlen für AEM — pro Page direkt im Template setzbar):

<div id="zvv-app-banner-root" data-ct="AppBannerFahrplanLandingPage"></div>
<script defer src="https://appbanner.zvv.ch/banner.js"></script>

Variante B: Script‑URL‑Parameter:

<div id="zvv-app-banner-root"></div>
<script defer src="https://appbanner.zvv.ch/banner.js?ct=AppBannerFahrplanLandingPage"></script>

Kombinierbar mit data-lang bzw. ?lang=. Resultierender iOS‑Link nach Klick (Beispiel):

https://apps.apple.com/app/apple-store/id1446767437?pt=340714&ct=AppBannerFahrplanLandingPage&mt=8&utm_source=appbanner&utm_medium=ios&utm_campaign=zvv_app

Auflösungsreihenfolge: URL‑Param ?ct= → Mount‑Attribut data-ct → Script‑URL‑Param ?ct= → Default AppBanner. Beispiel‑Slugs nach Page:

Demo EN Demo (erzwingen) Demo mit ct=AppBannerDemo
Bundle anzeigen (banner.js) GitHub