Ereignistypen für Web-Erweiterungen
In einer Tag-Regel ist ein Ereignis eine Aktivität, die auftreten muss, damit eine Regel ausgelöst wird. Beispielsweise könnte eine Erweiterung einen Ereignistyp „Geste“ bereitstellen, der überwacht, ob eine bestimmte Maus- oder Touch-Geste auftritt. Sobald die Geste auftritt, löst die Logik dieses Ereignisses die Regel aus.
Ein Ereignistyp-Bibliotheksmodul dient dazu, zu erkennen, wann eine Aktivität auftritt, und dann eine Funktion aufzurufen, um eine zugehörige Regel auszulösen. Das erkannte Ereignis kann angepasst werden. Er könnte etwa erkennen, wann ein Benutzer eine bestimmte Geste macht, schnell scrollt oder mit etwas interagiert.
In diesem Dokument wird beschrieben, wie Sie Ereignistypen für eine Web-Erweiterung in Adobe Experience Platform definieren.
Ereignistypen werden durch Erweiterungen definiert und bestehen normalerweise aus folgenden Elementen:
- Eine Ansicht die in der Experience Platform-Benutzeroberfläche und der Datenerfassungs-Benutzeroberfläche angezeigt wird und es Benutzern ermöglicht, die Ereigniseinstellungen zu ändern.
- Ein Bibliotheksmodul, das in der Tag-Laufzeitbibliothek ausgegeben wird, um die Einstellungen zu interpretieren und um zu überwachen, ob eine bestimmte Aktivität eintritt.
module.exports
akzeptieren die Parameter settings
und trigger
. Dies ermöglicht die Anpassung des Ereignistyps.
module.exports = function(settings, trigger) { … };
settings
trigger
settings
-Objekt, einer trigger
-Funktion und einer Regel. Mit anderen Worten, die Auslöserfunktion, die Sie für eine bestimmte Regel erhalten haben, kann nicht zum Auslösen einer anderen Regel verwendet werden.Anhand der Aktivität von fünf Sekunden, die als Beispiel verwendet wird, hat die Aktivität stattgefunden und die Regel wird ausgelöst, nachdem fünf Sekunden vergangen sind. Das Modul sieht in etwa wie im folgenden Beispiel aus.
module.exports = function(settings, trigger) {
setTimeout(trigger, 5000);
};
Wenn Sie möchten, dass die Dauer vom Adobe Experience Platform-Benutzer konfiguriert werden kann, ist die Option zum Eingeben und Speichern einer Dauer im Einstellungsobjekt erforderlich. Das Objekt könnte etwa so aussehen:
{
"duration": 25000
}
Um mit der benutzerdefinierten Dauer arbeiten zu können, muss unser Modul so aktualisiert werden, dass es diese enthält.
module.exports = function(settings, trigger) {
setTimeout(trigger, settings.duration);
};
Weitergeben kontextueller Ereignisdaten
Wenn eine Regel ausgelöst wird, ist es oft nützlich, zusätzliche Details über das eingetretene Ereignis bereitzustellen. Benutzer, die Regeln erstellen, können diese Informationen nützlich finden, um ein bestimmtes Verhalten zu erreichen. Nehmen wir beispielsweise an, dass ein Marketer eine Regel erstellen möchte, bei der jedes Mal, wenn der Benutzer über den Bildschirm wischt, ein Analyse-Beacon gesendet wird. Die Erweiterung muss einen Ereignistyp swipe
bereitstellen, damit der Marketer diesen Ereignistyp zum Auslösen der entsprechenden Regel verwenden kann. Wenn der Marketer den Winkel einbeziehen möchte, in dem die Wischbewegung auf dem Beacon stattgefunden hat, wäre dies ohne zusätzliche Informationen schwer zu erreichen. Um weitere Informationen zum aufgetretenen Ereignis bereitzustellen, übergeben Sie beim Aufrufen der Funktion trigger
ein Objekt. Beispiel:
trigger({
swipeAngle: 90 // the value would be the detected angle
});
Der Werbungtreibende könnte diesen Wert dann in einem Analytics-Beacon verwenden, indem er den Wert %event.swipeAngle%
in einem Textfeld angibt. Er könnte auch von anderen Kontexten aus auf event.swipeAngle
zugreifen (z. B. eine benutzerdefinierte Code-Aktion). Es ist möglich, andere Arten optionaler Ereignisinformationen einzuschließen, die für einen Marketer auf die gleiche Weise nützlich sein können.
nativeEvent
Wenn Ihr Ereignistyp auf einem nativen Ereignis basiert (z. B. wenn Ihre Erweiterung einen click
-Ereignistyp übermittelt hat) wird empfohlen, die nativeEvent
-Eigenschaft wie folgt festzulegen.
trigger({
nativeEvent: nativeEvent // the value would be the underlying native event
});
Dies kann für Werbungtreibende nützlich sein, die auf Informationen aus dem nativen Ereignis zugreifen möchten, z. B. Cursor-Koordinaten.
element
Wenn eine starke Beziehung zwischen einem Element und dem aufgetretenen Ereignis besteht, wird empfohlen, die element
-Eigenschaft auf den DOM-Knoten des Elements festzulegen. Ein Beispiel: Ihre Erweiterung übermittelt einen click
-Ereignistyp und Sie bieten Marketern die Möglichkeit, ihn so zu konfigurieren, dass die Regel nur ausgelöst wird, wenn ein Element mit der ID herobanner
ausgewählt ist. Wenn der Benutzer in diesem Fall das Hero-Banner auswählt, wird empfohlen, trigger
aufzurufen und element
auf den DOM-Knoten des Hero-Banners festzulegen.
trigger({
element: element // the value would be the DOM node
});
Einhalten der Regelreihenfolge
Mit Tags können Benutzer Regeln anordnen. Zum Beispiel könnte ein Benutzer zwei Regeln erstellen, die beide den Ereignistyp „Orientierungsänderung“ nutzen, und der Benutzer möchte die Reihenfolge, in der die Regeln ausgelöst werden, anpassen können. Angenommen, der Adobe Experience Platform-Benutzer gibt einen Ordnungswert von 2
für das Ausrichtungsänderungsereignis in Regel A und einen Ordnungswert von 1
für das Ausrichtungsänderungsereignis in Regel B an. Dies bedeutet, dass bei einer Ausrichtungsänderung auf einem Mobilgerät Regel B vor Regel A ausgelöst werden soll (Regeln mit Werten niedrigerer Ordnung werden zuerst ausgelöst).
Wie bereits erwähnt, wird die Exportfunktion in unserem Ereignismodul für jede Regel, die für die Verwendung unseres Ereignistyps konfiguriert wurde, genau einmal aufgerufen. Bei jedem Aufruf der exportierten Funktion wird eine eindeutige trigger
-Funktion übergeben, die mit einer bestimmten Regel verknüpft ist. Im oben beschriebenen Szenario wird unsere exportierte Funktion einmal mit einer trigger
-Funktion aufgerufen, die an Regel B gebunden ist, und dann erneut mit einer trigger
-Funktion, die an Regel A gebunden ist. Regel B kommt zuerst, weil der Benutzer ihr einen geringeren Anordnungswert als Regel A gegeben hat. Wenn unser Bibliotheksmodul eine Änderung der Ausrichtung erkennt, ist es wichtig, dass die trigger
-Funktionen in der gleichen Reihenfolge aufgerufen werden, in der sie dem Bibliotheksmodul bereitgestellt wurden.
Beachten Sie im folgenden Beispiel-Code, dass bei Erkennung einer Ausrichtungsänderung die Auslöserfunktionen in der gleichen Reihenfolge aufgerufen werden, in der sie für unsere Exportfunktion bereitgestellt wurden:
var triggers = [];
window.addEventListener('orientationchange', function() {
triggers.forEach(function(trigger) {
trigger();
});
});
module.exports = function(settings, trigger) {
triggers.push(trigger);
};
Dadurch wird sichergestellt, dass die vom Benutzer angegebene Reihenfolge beibehalten wird.
Bei einer fehlerhaften Implementierung werden die Auslöserfunktionen in einer anderen Reihenfolge aufgerufen:
var triggers = [];
window.addEventListener('orientationchange', function() {
for (var i = triggers.length - 1; i >= 0; i--) {
triggers[i]();
}
});
module.exports = function(settings, trigger) {
triggers.push(trigger);
};
Natürliche Programmierungspraktiken behalten in der Regel die richtige Reihenfolge bei, aber es ist wichtig, sich der Auswirkungen bewusst zu sein und entsprechend zu entwickeln.