Pages & URL-Targeting
Lege fest, auf welchen URLs ein Experiment läuft, wann ABlyft sie prüft und wie eine Page wieder deaktiviert wird.
Eine Page sagt ABlyft, wo ein Experiment laufen soll. Sie besteht aus URL-Regeln und, falls nötig, einem Stück JavaScript. Du legst eine Page einmal an und weist sie beliebig vielen Experiments zu.
Ein Experiment läuft auf der aktuellen Seite eines Visitors nur, wenn mindestens eine seiner zugewiesenen Pages passt. Ohne Page kann ein Experiment nicht gestartet werden.
Eine Page anlegen
Es gibt zwei Wege:
- Aus einem Experiment: Klicke in der Card Pages („WHERE should it run?“) auf +. Die neue Page wird dem Experiment automatisch zugewiesen.
- Über die Navigation: Gehe zu Targeting & Goals → Pages und lege eine neue Page an. Weise sie später über den Auswahl-Button in der Card Pages einem Experiment zu (das Fenster heißt „Attach pages to experiment“).
Das Page-Formular hat diese Bereiche:
| Bereich | Zweck |
|---|---|
| General | Name (klar und aussagekräftig, eindeutig im Project) und eine optionale Description. |
| Targeting | Die URL-Regeln und unter Advanced Targeting die JavaScript-Regeln. |
| Trigger | Wann ABlyft das Targeting prüft. |
URL-Regeln
Füge unter Targeting mit Add new URL pro Zeile eine Regel hinzu. Jede Regel hat drei Teile:
| Spalte | Beschreibung |
|---|---|
| Type | Include oder Exclude. |
| URL | Die Adresse oder der Text, der geprüft wird. |
| Match | Wie die URL verglichen wird, siehe unten. |
Wie Regeln kombiniert werden
- Die Page passt, wenn mindestens eine Include-Regel zur aktuellen URL passt.
- Passt irgendeine Exclude-Regel, passt die Page nicht, egal was die Include-Regeln sagen.
Du brauchst mindestens eine Include-Regel
Exclude-Regeln nehmen nur URLs aus denen heraus, die du eingeschlossen hast. Eine Page nur mit Exclude-Regeln passt nie.
Match Types
| Match | Die Regel greift, wenn … |
|---|---|
| Simple (URL must match) | die Adresse passt. Protokoll, Query-String, Hash und ein abschließender Schrägstrich werden ignoriert. |
| Exact (URL + query must match) | die komplette Adresse passt, einschließlich Query-String und Hash. Ein abschließender Schrägstrich wird ignoriert. |
| Substring (URL contains) | die aktuelle URL deinen Text irgendwo enthält. |
| Regex (pattern match) | die aktuelle URL zu deinem regulären Ausdruck passt. |
Gib bei Simple und Exact eine vollständige URL wie https://example.com/product ein. Der Host wird so verglichen,
wie er geschrieben ist, also sind www.example.com und example.com verschieden.
Beispiele:
| Match | URL in der Regel | Passt | Passt nicht |
|---|---|---|---|
| Simple | https://example.com | https://example.com/, https://example.com/?a=b | https://example.com/home |
| Exact | https://example.com/?a=b | https://example.com/?a=b | https://example.com/, https://example.com/?a=b&c=d |
| Substring | /product/ | /product/shirt, /product/a/b | /products/overview |
| Regex | /news/(vips|styles|dresses).* | /news/vips, /news/styles/latest | /news/dinners |
Mehrere Domains oder Sprachen
Simple und Exact enthalten den Host. Soll dasselbe Experiment auf mehreren Domains laufen, nutze Substring oder
Regex nur mit dem Pfad (zum Beispiel /product/). Kombiniere das mit Environments,
um zu steuern, auf welcher Website das Experiment läuft.
URL-Parameter targeten
Um eine Page anhand ihrer Query-Parameter zu targeten, nutze Exact oder Substring und Regex mit dem Parameter
im Text, zum Beispiel utm_source=newsletter. Für flexiblere Bedingungen nutze
Advanced Targeting und lies den Parameter mit ablyftTools.getUrlParameter():
return ablyftTools.getUrlParameter('utm_source') === 'newsletter';getUrlParameter() gibt null zurück, wenn der Parameter fehlt. Siehe die
Tools-Referenz. Möchtest du nur einschränken, wer ein
Experiment sieht, und nicht, wo es läuft, ist eine Audience mit dem
Kriterium URL parameter einfacher.
Advanced Targeting: JavaScript-Regeln
Öffne den Bereich Advanced Targeting („Is more to consider than URLs?“), wenn die URL allein nicht ausreicht, zum Beispiel wenn die Seite zusätzlich ein bestimmtes Element enthalten muss.
Schreibe im Codefeld Rules JavaScript, das true zurückgibt, wenn die Page gültig ist. Die URL-Regeln und die
JavaScript-Regel müssen beide erfüllt sein.
// Valid only if the page shows a product with a "sale" label
return document.querySelector('.product .label-sale') !== null;Der Code kann ablyftTools und Tools (siehe Tools) sowie User
verwenden. Wirft dein Code einen Fehler, gilt die Regel als nicht erfüllt.
| Option | Beschreibung |
|---|---|
| Poll on rules | Prüft die JavaScript-Regel bis zu etwa 2 Sekunden wiederholt statt nur einmal. Aktiviere es, wenn der Inhalt, den du prüfst, kurz nach dem Laden der Seite erscheint. |
| Always embed in snippet | Nimmt die Page ins Snippet auf, auch wenn kein laufendes Experiment sie verwendet. Das ist meist nicht nötig. Aktiviere es nur, wenn dein Setup es erfordert. |
Trigger: wann ABlyft die Page prüft
Der Trigger entscheidet, wann das Targeting geprüft wird. Für die meisten Websites lässt du den Standard. Der Standard für neue Pages wird unter Project → Settings bei Project Activations Settings → Default Page Trigger festgelegt.
| Trigger | ABlyft prüft die Page … |
|---|---|
| Direct (immediately when ABlyft runs) | einmal, sobald das Snippet läuft. Richtig für klassische Websites. |
| URL Change (check for url changes using the history API) | am Anfang und immer, wenn sich die URL durch history.pushState, history.replaceState oder Vor-/Zurück-Navigation ändert. Bevorzugt für die meisten Single-Page-Apps. |
| URL Change (check for url changes using polling) | am Anfang und immer, wenn sich die URL ändert, erkannt durch einen URL-Vergleich alle 10 ms. Nutze es, wenn deine App die URL so ändert, dass die History API es nicht meldet. |
| DOM Change (when something on the page is changing) | am Anfang und immer, wenn Elemente hinzugefügt, entfernt oder geändert werden. Siehe Dynamische Inhalte. |
| Callback (when the callback function is called) | wenn dein eigener Code activate() aufruft. |
| API (manual activation by an API / JavaScript call) | nur, wenn deine Website die Page mit einem JavaScript-Aufruf aktiviert. |
Die URL- und DOM-Change-Trigger sind für dynamische Websites und Single-Page-Apps gedacht, siehe SPA navigation.
Callback-Trigger
Wenn du Callback wählst, erscheint ein Codefeld mit dem Standard activate();. Dein Code entscheidet, wann
activate() aufgerufen wird. Der Aufruf activate(false) deaktiviert die Page wieder.
// Activate the page as soon as the website announces the event
document.addEventListener('video-finished', function () {
activate();
});API-Trigger
Wenn du API wählst, zeigt das Feld API trigger code den Code zum Kopieren. Führe ihn auf deiner Website in dem Moment aus, in dem die Page aktiviert werden soll:
<script>
window['ablyft'] = window['ablyft'] || [];
window['ablyft'].push({
eventType: 'activatePage',
pageApiName: 'checkout-step-2'
});
</script>pageApiName ist der API Name der Page. Er wird im Bereich Advanced Settings der Page gesetzt und aus dem
Page-Namen befüllt. Der API Name muss im Project eindeutig sein. Alle Optionen findest du unter
activatePage in der JavaScript API.
Deactivation Mode
Eine Page kann mehrfach geprüft werden, zum Beispiel nach jeder URL-Änderung. Der Deactivation mode (Bereich Advanced Settings der Page) legt fest, was passiert, wenn eine aktive Page erneut geprüft wird und nicht mehr passt.
| Modus | Verhalten |
|---|---|
| Reset (Standard) | Die Page wird deaktiviert, wenn der Trigger auslöst, das Targeting aber nicht mehr gültig ist, und der Reset-Code ihrer Experiments läuft. |
| Deactivate | Wie Reset, aber der Reset-Code läuft nicht. |
| Force-reset | Die Page wird bei jedem Auslösen des Triggers deaktiviert und zurückgesetzt und wieder aktiviert, wenn das Targeting gültig ist. Nutze es, um die Variation bei jeder Prüfung neu aufzubauen. |
| Persistent | Die Page wird nie deaktiviert. Sie bleibt aktiv. |
Ein Aufruf von deactivatePage aus deinem Code folgt denselben
Modi.
Reset-Code ist der optionale Reset JS code eines Experiments oder einer Variation. Er läuft nur, wenn Use SPA features unter Project → Settings (Project Activations Settings) aktiviert ist. Auf klassischen Websites mit dem Trigger Direct hat der Deactivation Mode meist wenig Wirkung, weil die Page nur einmal geprüft wird.
Deine Page prüfen
Öffne das Experiment in der Preview und rufe die URLs auf, die passen und nicht passen sollen. Wenn ein Experiment nicht angezeigt wird, siehe Experiment wird nicht angezeigt.
Änderungen an den URL-Regeln, am Trigger, an den JavaScript-Regeln und den übrigen Page-Einstellungen werden automatisch veröffentlicht. Visitors erhalten sie nach der Publishing-Verzögerung.