Implementieren von Einzelseiten-Apps
Herkömmliche Websites arbeiteten auf Basis von Page-to-Page-Navigationsmodellen (auch als Multi-Page-Anwendungen bekannt), bei denen Website-Designs eng an URLs gekoppelt waren und Übergänge von einer Webseite zu einer anderen einen Seitenladevorgang benötigten. Moderne Webanwendungen wie z. B. Einzelseiten-Apps (SPAs) nutzen stattdessen ein Modell, das die Rendering-Funktion der Browseroberfläche beschleunigt, wodurch oft keine Neuladungen der Seite erforderlich sind. Diese Erlebnisse werden oft durch Kundeninteraktionen wie Bildläufe, Klicks und Cursorbewegungen ausgelöst. Mit der Entwicklung neuer Ideen im modernen Web hat sich auch die Relevanz herkömmlicher allgemeiner Ereignisse (z. B. das Laden der Seite) zur Bereitstellung von Personalisierung und Experimenten verringert.
at.js 2.x bietet umfassende Funktionen, mit denen Ihr Unternehmen mithilfe von Client-seitigen Technologien der neuesten Generation Personalisierungen ausführen kann. Diese Version konzentriert sich auf die Verbesserung von at.js, um harmonische Interaktionen mit SPAs zu ermöglichen.
Hier einige Vorteile der Verwendung von at.js 2.x, die in früheren Versionen nicht verfügbar sind:
- Möglichkeit zur Zwischenspeicherung aller Angebote beim Seitenladen, um mehrere Server-Aufrufe auf einen einzelnen Server-Aufruf zu reduzieren
- Drastische Verbesserung der Erlebnisse Ihrer Endbenutzer auf Ihrer Site, da Angebote sofort über den Cache angezeigt werden, ohne dass durch herkömmliche Server-Aufrufe Latenz entsteht
- Einfache Einrichtung mit einmaliger, einzeiliger Codeeingabe und Entwicklerunterstützung, sodass Ihre Marketing-Experten A/B- und Erlebnis-Targeting(XT)-Aktivitäten über VEC in Ihrer SPA erstellen und ausführen können
Adobe Target Ansichten und Einzelseiten-Apps
Der Adobe Target VEC für SPA nutzt ein neues Konzept namens Ansichten: eine logische Gruppe visueller Elemente, aus denen zusammen ein SPA Erlebnis besteht. Eine SPA kann also als eine Reihe von Ansichten anstelle von URLs betrachtet werden, die je nach Benutzerinteraktion aufgerufen werden. Eine Ansicht umfasst in der Regel eine ganze Site oder eine Gruppe visueller Elemente innerhalb einer Site.
Um mehr über Ansichten zu erfahren, navigieren wir zu dieser hypothetischen Online-Commerce-Site, die in React implementiert wurde, und sehen uns einige Beispielansichten an. Klicken Sie auf die folgenden Links, um diese Website auf einer neuen Browser-Registerkarte zu öffnen.
Link: Homepage
Wenn wir zur Homepage navigieren, können wir sofort ein Hero-Bild sehen, das einen Osterverkauf bewirbt, sowie die neuesten Produkte, die auf der Site verkauft werden. In diesem Fall kann die gesamte Homepage als Ansicht definiert werden. Dies ist praktisch zu beachten, da wir dies im Abschnitt "Implementieren von Adobe Target Ansichten"weiter unten erläutern werden.
Link: Produktseite
Da uns die Produkte dieses Unternehmens interessieren, klicken wir auf den Link zu den Produkten. Ähnlich wie die Homepage kann die gesamte Produktseite als Ansicht definiert werden. Wir können diese Ansicht „Produkte“ nennen, genau wie der Pfadname in https://target.enablementadobe.com/react/demo/#/products)
.
Am Anfang dieses Abschnitts haben wir Ansichten als ganze Site oder sogar als eine Gruppe visueller Elemente auf der Site definiert. Wie oben gezeigt, können die vier auf der Site angezeigten Produkte auch gruppiert und als Ansicht betrachtet werden. Als Name für diese Ansicht käme „Produkte“ in Frage.
Klicken Sie auf die Schaltfläche „Mehr laden“, um weitere Produkte auf der Site zu erkunden. In diesem Fall ändert sich die Website-URL nicht. Hier kann auch nur die zweite Zeile der oben gezeigten Produkte als Ansicht angesehen werden. Der Name der Ansicht könnte also „PRODUKTSEITE-2“ lauten.
Link: Checkout
Da uns einige Produkte auf der Site gefallen haben, beschließen wir, ein paar zu kaufen. Auf der Checkout-Site erhalten wir die Möglichkeit, zwischen dem normalen Versand oder der Expresszustellung zu wählen. Da eine beliebige Gruppe visueller Elemente auf einer Site als Ansicht definiert werden kann, können wir diese Ansicht „Versand-Voreinstellungen“ nennen.
Das Konzept Ansichten aber kann noch viel mehr ausgeweitet werden. Für Marketing-Experten, die den Inhalt einer Site je nach Versandpräferenz personalisieren möchten, gibt es die Möglichkeit, eine Ansicht für jede Versandpräferenz zu erstellen. Wenn wir in diesem Fall den normalen Versand auswählen, kann die Ansicht „Normaler Versand“ heißen. Wenn die Expresszustellung ausgewählt wird, kann die Ansicht „Expresszustellung“ lauten.
Ihre Marketing-Experten können auch einen A/B-Test durchführen, um zu sehen, ob die Änderung der Farbe von Blau auf Rot nach Auswahl der Expresszustellung die Konversion im Vergleich zu gleichbleibend blauer Button-Farbe für beide Versandoptionen steigert.
Implementieren von Adobe Target Ansichten
Nachdem wir nun erläutert haben, was Adobe Target Ansichten sind, können wir dieses Konzept in Target nutzen, um Marketern die Möglichkeit zu geben, A/B- und XT-Tests auf SPA über VEC durchzuführen. Dies erfordert eine einmalige Einrichtung durch den Entwickler. Gehen wir die Schritte durch, um dies einzurichten.
-
Installieren Sie at.js 2.x.
Zunächst müssen wir at.js 2 installieren.x. Diese Version von at.js wurde im SPA entwickelt. Frühere Versionen von at.js unterstützen nicht Adobe Target Ansichten und VEC für SPA.
Laden Sie at.js 2 herunter.x über die Benutzeroberfläche von Adobe Target unter Administration > Implementation. at.js 2.x kann auch über Tags in Adobe Experience Platform bereitgestellt werden.
-
Implementieren Sie at.js 2.x Funktion,
[triggerView()](https://experienceleague.adobe.com/docs/target-dev/developer/client-side/at-js-implementation/functions-overview/adobe-target-triggerview-atjs-2.html?lang=de)
auf Ihren Sites.Nachdem Sie die Ansichten Ihrer SPA definiert haben, in denen Sie einen A/B- oder XT-Test durchführen möchten, implementieren Sie at.js 2.x
triggerView()
verwenden, wobei die Ansichten als Parameter übergeben werden. Dadurch können Marketing-Experten VEC zum Entwerfen und Ausführen der A/B- und XT-Tests für diese Ansichten verwenden. Wenn dietriggerView()
-Funktion für diese Ansichten nicht definiert wurde, erkennt VEC die Ansichten nicht, sodass Marketing-Experten den VEC nicht zum Entwerfen und Ausführen von A/B- und XT-Tests verwenden können.note note NOTE Zur Unterstützung von Ansichten in at.js muss viewsEnabled auf "true"gesetzt werden, da ansonsten alle Ansichtsfunktionen deaktiviert sind. adobe.target.triggerView(viewName, options)
table 0-row-5 1-row-5 2-row-5 3-row-5 Parameter Typ Erforderlich? Validierung Beschreibung viewName Zeichenfolge Ja 1. Keine nachfolgenden Leerzeichen.
2. Darf nicht leer sein.
3. Der Name der Ansicht sollte für alle Seiten eindeutig sein.
4. Warnung: Der Anzeigename sollte nicht mit „/
“ beginnen oder enden. Dies liegt daran, dass der Kunde den Anzeigenamen im Allgemeinen aus dem URL-Pfad entnimmt. Für uns sind „home“ und „/home
“ unterschiedlich.
5. Warnung: Dieselbe Ansicht sollte nicht mehrmals hintereinander mit der Option{page: true}
ausgelöst werden.Geben Sie eine beliebige Zeichenfolge als Namen für Ihre Ansicht an. Der Name dieser Ansicht wird im Bedienfeld Modifications des VEC angezeigt, damit Marketing-Experten Aktionen erstellen und ihre A/B- und XT-Aktivitäten ausführen können. options Objekt Nein Optionen > Seite Boolesch Nein TRUE: Der Standardwert der Seite ist „wahr“. Bei page=true
werden Benachrichtigungen zur Erhöhung der Impressions-Anzahl an die Edge-Server gesendet.
FALSE: Beipage=false
werden keine Benachrichtigungen zur Erhöhung der Impressions-Anzahl gesendet. Dies sollte verwendet werden, wenn Sie nur eine Komponente auf einer Seite mit einem Angebot neu rendern möchten.Im Folgenden werden einige Beispielanwendungsfälle zum Aufrufen der Funktion
triggerView()
in React für unsere hypothetische E-Commerce-SPA erläutert:Link: Homepage
Wenn wir als Marketer A/B-Tests auf der gesamten Homepage durchführen möchten, bietet es sich an, die Ansicht „Home“ zu nennen:
function targetView() {
var viewName = window.location.hash; // or use window.location.pathName if router works on path and not hash
viewName = viewName || 'home'; // view name cannot be empty
// Sanitize viewName to get rid of any trailing symbols derived from URL
if (viewName.startsWith('#') || viewName.startsWith('/')) {
viewName = viewName.substr(1);
}
// Validate if the Target Libraries are available on your website
if (typeof adobe != 'undefined' && adobe.target && typeof adobe.target.triggerView === 'function') {
adobe.target.triggerView(viewName);
}
}
// react router v4
const history = syncHistoryWithStore(createBrowserHistory(), store);
history.listen(targetView);
// react router v3
<Router history={hashHistory} onUpdate={targetView} >
Link: Produktseite
Sehen wir uns ein Beispiel an, das etwas komplizierter ist. Nehmen wir als Marketing-Experten an, wir möchten die zweite Zeile der Produkte personalisieren, indem wir die Farbe der Preisbeschriftung in Rot ändern, nachdem ein Benutzer auf die Schaltfläche "Mehr laden"geklickt hat.
function targetView(viewName) {
// Validate if the Target Libraries are available on your website
if (typeof adobe != 'undefined' && adobe.target && typeof adobe.target.triggerView === 'function') {
adobe.target.triggerView(viewName);
}
}
class Products extends Component {
render() {
return (
<button type="button" onClick={this.handleLoadMoreClicked}>Load more</button>
);
}
handleLoadMoreClicked() {
var page = this.state.page + 1; // assuming page number is derived from component's state
this.setState({page: page});
targetView('PRODUCTS-PAGE-' + page);
}
}
Link: Checkout
Für Marketing-Experten, die den Inhalt einer Site je nach Versandpräferenz personalisieren möchten, gibt es die Möglichkeit, eine Ansicht für jede Versandpräferenz zu erstellen. Wenn wir in diesem Fall den normalen Versand auswählen, kann die Ansicht „Normaler Versand“ heißen. Wenn die Expresszustellung ausgewählt wird, kann die Ansicht „Expresszustellung“ lauten.
Ihre Marketing-Experten können auch einen A/B-Test durchführen, um zu sehen, ob die Änderung der Farbe von Blau auf Rot nach Auswahl der Expresszustellung die Konversion im Vergleich zu gleichbleibend blauer Button-Farbe für beide Versandoptionen steigert.
function targetView(viewName) {
// Validate if the Target Libraries are available on your website
if (typeof adobe != 'undefined' && adobe.target && typeof adobe.target.triggerView === 'function') {
adobe.target.triggerView(viewName);
}
}
class Checkout extends Component {
render() {
return (
<div onChange={this.onDeliveryPreferenceChanged}>
<label>
<input type="radio" id="normal" name="deliveryPreference" value={"Normal Delivery"} defaultChecked={true}/>
<span> Normal Delivery (7-10 business days)</span>
</label>
<label>
<input type="radio" id="express" name="deliveryPreference" value={"Express Delivery"}/>
<span> Express Delivery* (2-3 business days)</span>
</label>
</div>
);
}
onDeliveryPreferenceChanged(evt) {
var selectedPreferenceValue = evt.target.value;
targetView(selectedPreferenceValue);
}
}
Systemdiagramme in at.js 2.x
Die folgenden Diagramme helfen Ihnen dabei, den Arbeitsablauf von at.js 2.x mit Ansichten zu verstehen und wie dieser die Integration der SPAs verbessert. Eine bessere Einführung in die in at.js 2.x verwendeten Konzepte finden Sie unter Implementieren von Einzelseiten-Apps.
at.js kann auch asynchron mit einem optionalen Pre-hiding-Snippet geladen werden, das auf der Seite implementiert wird.
Kundenattribute werden in einem Batch-Prozess an den Profilspeicher übermittelt.
Die zielgerichteten Inhalte auf der aktuellen Seite werden so schnell wie möglich bereitgestellt, ohne dass Standardinhalte aufflackern.
Zielgerichtete Inhalte für Ansichten, die als Ergebnis von Benutzeraktionen in einer SPA, die im Browser zwischengespeichert wird, angezeigt werden. Die SPA kann sofort ohne zusätzlichen Serveraufruf angewendet werden, wenn die Ansichten durch
triggerView()
ausgelöst werden.Analysedaten können dann sowohl in Analytics als auch in Target über Analytics für Target (A4T)-Berichte angezeigt werden.
Egal, wo triggerView()
in Ihrer SPA implementiert ist, werden die Ansichten und Aktionen aus dem Cache abgerufen und dem Benutzer ohne Serveraufruf gezeigt. triggerView()
sendet außerdem eine Benachrichtigungsanfrage an das Target-Backend, um Impressions-Zählungen zu erhöhen und aufzuzeichnen.
triggerView()
wird in der Einzelseiten-App aufgerufen, um eine Ansicht wiederzugeben und Aktionen anzuwenden, die visuelle Elemente ändern.Visual Experience Composer für Einzelseiten-Apps (SPAs)
Nachdem Sie die Installation von at.js 2.x abgeschlossen und triggerView()
zu Ihrer Site hinzugefügt haben, führen Sie mit dem VEC A/B- und XT-Aktivitäten aus. Weitere Informationen finden Sie unter Visual Experience Composer für Einzelseiten-Apps (SPAs).
triggerView()
implementiert ist.Verwenden Sie TriggerView, um sicherzustellen, dass A4T ordnungsgemäß mit at.js 2.x und SPA funktioniert.
Um sicherzustellen, dass Analytics for Target (A4T) ordnungsgemäß mit at.js 2.x funktioniert, müssen Sie dieselbe SDID in der Target -Anfrage und in der Analytics -Anfrage senden.
Best Practices in Bezug auf SPAs:
- Verwenden Sie benutzerspezifische Ereignisse für Benachrichtigungen, wenn in der Anwendung interessante Ereignisse auftreten.
- Auslösen eines benutzerspezifischen Ereignisses vor dem Start der Ansicht
- Auslösen eines benutzerspezifischen Ereignisses, wenn die Anzeige abgeschlossen wird
Zu at.js 2.x wurde eine neue API-TriggerView ()-Funktion hinzugefügt. Sie sollten at.js triggerView()
darüber informieren, dass eine Ansicht beginnt.
Um zu sehen, wie benutzerspezifische Ereignisse kombiniert werden, sehen wir uns in at.js 2.x und Analytics ein Beispiel an. In diesem Beispiel wird davon ausgegangen, dass die HTML-Seite die Besucher-API gefolgt von at.js 2.x und AppMeasurement enthält.
Nehmen wir an, dass die folgenden benutzerspezifischen Ereignisse vorhanden sind:
at-view-start
- Wenn die Ansicht beginntat-view-end
- Wenn die Ansicht abgeschlossen wird
Um sicherzustellen, dass A4T mit at.js 2.x arbeitet, vergewissern Sie sich von Folgendem:
Der Starthandler für die Ansicht sollte wie folgt aussehen:
document.addEventListener("at-view-start", function(e) {
var visitor = Visitor.getInstance("<your Adobe Org ID>");
visitor.resetState();
adobe.target.triggerView("<view name>");
});
Der Endhandler für die Ansicht sollte etwa wie folgt aussehen:
document.addEventListener("at-view-end", function(e) {
// s - is the AppMeasurement tracker object
s.t();
});
at-view-start
und at-view-end
auslösen. Diese Ereignisse sind nicht Teil von benutzerspezifischen at.js-Ereignissen.Obwohl diese Beispiele JavaScript-Code verwenden, kann all dies vereinfacht werden, wenn Sie einen Tag-Manager verwenden, z. B. Tags in Adobe Experience Platform.
Wenn die vorhergehenden Schritte eingehalten werden, sollten Sie eine robuste A4T-Lösung für SPAs haben.
Best Practices bei der Implementierung
Mit at.js 2.x-APIs können Sie Ihre Target -Implementierung auf vielerlei Weise anpassen. Es ist jedoch wichtig, während dieses Prozesses die richtige Reihenfolge der Vorgänge zu befolgen.
Die folgenden Informationen beschreiben die Reihenfolge der Vorgänge, die Sie beim erstmaligen Laden einer Einzelseiten-App in einem Browser ausführen müssen, sowie für alle nachfolgenden Ansichtsänderungen.
Reihenfolge der Vorgänge beim ersten Laden der Seite order
Wenn Sie über eine Datenschicht verfügen, empfehlen wir, kritische Daten zu laden, die vor der Ausführung der Target -Anfrage an Target gesendet werden müssen. Auf diese Weise können Sie mit targetPageParams
alle Daten einschließen, die Sie für die Zielgruppenbestimmung verwenden möchten.
Wenn pageLoadEnabled
und viewsEnabled
in targetGlobalSettings auf "true"gesetzt sind, fordert at.js in Schritt 2 automatisch alle VEC Target-Angebote für Sie an.
Beachten Sie, dass getOffers
auch verwendet werden kann, um VEC-Angebote zu erhalten, nachdem die Seite geladen wurde. Stellen Sie dazu sicher, dass die Anfrage im API-Aufruf execute>pageLoad
und prefetch>views
enthält.
triggerView()
triggerView()
aufgerufen wird, nachdem die Target -Anfrage zurückgegeben wurde, und die Anwendung der Angebote auf den Cache abschließt. Sie müssen diesen Schritt nur einmal pro Ansicht ausführen.triggerView({"page": false})
Reihenfolge der Vorgänge für SPA Änderung der Ansicht (kein vollständiges Neuladen der Seite)
visitor.resetState()
getOffers()
-APItriggerView()
triggerView()
triggerView({"page": false})
Schulungsvideos
Weitere Informationen dazu finden Sie in den folgenden Videos:
Funktionsweise von at.js 2.x
Weitere Informationen finden Sie unter Funktionsweise von at.js 2.x.
Implementieren von at.js 2.x in einer SPA
Weitere Informationen finden Sie unter Implementieren von Adobe Target at.js 2.x in eine Einzelseiten-App (SPA) .
Verwenden von VEC für SPA in Adobe Target
Weitere Informationen finden Sie unter Verwenden des Visual Experience Composer für Einzelseiten-Apps (SPA VEC) in Adobe Target .