Die Campaign Library liefert neben den Funktionen welche automatisch durch das Einbinden des Skripts getriggered werden noch zusätzlliche Möglichkeiten auf diese hier kurz eingegangen werden soll.
Die Bibliothek ermöglicht den Einsatz von Default-CID Werten. Sollte ein Nutzer auf eine Seite mit eingebundener Campaign Lib gelangen ohne irgendwelche CID Werte in der URL oder im Cookie mit sich zu bringen kann eine Standard-CID definiert werden welche in diesem Falle genutzt wird.
Die Default-CID wird wie auf der Startseite beschrieben per globalem Window LxoCampaignDefaults Objekt definiert. Es wird hier zwischen bei verschiedenen Defaults unterschieden:
domainCid: Domainspezifische Fallback-CID die genutzt wird falls keine URL spezifische vorhanden ist.pageCid: URL-spezifische Fallback-CID für eine einzelne URL. Sie hat eine höhere Gewichtung als die domainCid und wird immer als Fallback CID genommen sollte sie gesetzt sein.Generell macht es Sinn eine domainspezifische Fallback-CID mit der Initialisierung des Skript zusammen auf jeder Seite wo die Funktionalität der Campaign-Lib gewünscht ist zu setzen. Wird zusätzlich eine URL-spezifische Fallback-CID benötigt kann dies durch eine zusätzliche Definition ermöglicht werden (s. Beispiel).
Beispiel
//Initialisierung und setzen der Domainspezifischen Fallback-CID
<script src='https://app.lexoffice.de/lxo-campaign/lxoCampaign.js'></script>
<script type='text/javascript'>
window.LxoCampaignDefaults = window.LxoCampaignDefaults || {};
window.LxoCampaignDefaults.domainCid = 'domain-fallback-123';
</script>
//
// Eventuell weiteres HTML
//
//Setzen der URL-spezifischen Fallback CID
<script type='text/javascript'>
window.LxoCampaignDefaults = window.LxoCampaignDefaults || {};
window.LxoCampaignDefaults.pageCid = 'page-fallback-123';
</script>
Die Fallback-CID kann regelbasiert über eine Fallback-Tabelle ermittelt werden. Die Tabelle muss dabei als JavaScript-Array vor dem Laden der Campaign-Library
unter window.lxoCampaignFallbackTable bereitgestellt werden.
Die Regeln werden der Reihe nach ausgewertet — der erste Treffer gewinnt. Folgende Priorität gilt insgesamt:
?fcid= URL-Parameter (höchste Priorität)lxCmpFllb Cookie (zuvor gespeicherte Fallback-CID)pageCid / domainCid)1. URL — einzelner Parameter mit Wert
Trifft zu, wenn die URL ?searchparam=value enthält.
{ "source": "URL", "searchparam": "em_src", "value": "affiliate", "cid": "lxappaff" }
2. URL — einer von mehreren Parameternamen
Trifft zu, wenn mindestens einer der aufgelisteten Parameter in der URL vorhanden ist (Wert egal).
{ "source": "URL", "searchparams": "gclid,msclkid,dclid,wbraid,gbraid,gclsrc,yclid", "cid": "lxappsea" }
3. REFERER — Domain-Liste
Trifft zu, wenn der HTTP-Referrer-Hostname in der kommaseparierten Liste enthalten ist. Mit "domains": "*" wird jeder nicht-leere Referrer abgefangen.
{ "source": "REFERER", "domains": "google.com,google.de,bing.com,duckduckgo.com", "cid": "lxappseo" }
{ "source": "REFERER", "domains": "*", "cid": "lxappref" }
4. DIRECT — Standard-Fallback
Trifft zu, wenn keine andere Regel greift. Pflichtfeld und muss immer die letzte Regel sein.
{ "source": "DIRECT", "cid": "lxappdir" }
Die Library validiert die Tabelle beim Laden. Fehler werden geworfen bei:
DIRECT-RegelDIRECT-Regel ist nicht die letzte Regel^[a-z]{1,20}$ (nur Kleinbuchstaben, max. 20 Zeichen)| Marketingkanal | www.lexware.de | office.lexware.de | app.lexware.de |
|---|---|---|---|
| Affiliate | lxwdeaff | lxodeaff | lxappaff |
| Kampagne | lxwdecmp | lxodecmp | lxappcmp |
| Paid Search | lxwdesea | lxodesea | lxappsea |
| Paid Social | lxwdepsm | lxodepsm | lxapppsm |
| Social Media | lxwdesom | lxodesom | lxappsom |
| lxwdenl | lxodenl | lxappnl | |
| Display | lxwdedis | lxodedis | lxappdis |
| Retargeting | lxwderet | lxoderet | lxappret |
| Video | lxwdevid | lxodevid | lxappvid |
| lxwdepri | lxodepri | lxapppri | |
| Kooperation | lxwdekoo | lxodekoo | lxappkoo |
| Produkte | lxwdepro | lxodepro | lxapppro |
| Organisch | lxwdeseo | lxodeseo | lxappseo |
| KI | lxwdeai | lxodeai | lxappai |
| Referrer | lxwderef | lxoderef | lxappref |
| Direkt | lxwdedir | lxodedir | lxappdir |
Beispiel — Seitenintegration
<!-- 1. Fallback-Tabellen-Artefakt (domainspezifisch) vor der Campaign Library laden. In diesem Fall wird die Tabelle via JavaScript eingebunden. Auf anderen Seiten kann dies serverseitig gerendert werden oder anderweitig zur Verfügung gestellt werden.
Wichtig ist nur, dass die Tabelle als JavaScript-Array vor dem Laden der Campaign-Library-Script zur Verfügung steht. In diesem Fall für Lexware.de wird -->
<script src="path/to/fallbackTableAppLexwareDe.js"></script>
<!-- 2. Campaign Library -->
<script src='https://app.lexoffice.de/lxo-campaign/lxoCampaign.js'></script>
Die Library liest window.lxoCampaignFallbackTable automatisch beim Init aus. Keine weitere Konfiguration notwendig.
In manchen Fällen ist es sinnvoll Kampagnenparameter zu erzwingen. Für diesen Fall bietet die Campaign Lib die LxoCampaignEnforced
Das globale Window Objekt funktioniert analog zu den LxoCampaignDefaults. Ist LxoCampaignEnforced gesetzt, ist es gleichgültig ob ein Nutzer bereits Kampagnendaten mit sich trägt oder Fallbacks gesetzt sind, es werden immer die forcierten Werte genutzt. Die Kampagnenparameter (cid|pid|pdata) müssen nicht alle gesetzt werden. Es kann auch zB nur die pid gesetzt werden.
Beispiel
//Kampagnenparameter erzwingen
<script type='text/javascript'>
window.LxoCampaignEnforced = window.LxoCampaignEnforced || {};
window.LxoCampaignEnforced.cid = 'enforced-cid';
window.LxoCampaignEnforced.pid = 'enforced-pid';
window.LxoCampaignEnforced.pdata = 'enforced-pdata';
</script>
Die Campaign Lib bietet zwei wertvolle Tools zum Debuggen. Beide können über die JS Console des Browsers genutzt werden.
lxoCampaignEnableLog als Parameter an die URL hängen zB https://www.lexoffice.de/funktionen/?lxoCampaignEnableLogLxoCampaign.getCampaignData(); in der JS Console können die aktuell genutzten Kampagnenparameter abgerufen werden.