Visual Experience Composer bästa praxis och begränsningar
Följ bästa praxis när du använder Adobe Target Visual Experience Composer (VEC) för att försäkra dig om att dina upplevelser fungerar som de ska. Tänk på viktiga tips och begränsningar för att maximera prestanda och undvika vanliga problem.
Bästa praxis section_86CF28C99CFF40329E4CBAFE4DD78BB4
Nedan följer god praxis när du använder VEC:
Placera at.js-referensen högst upp i avsnittet <head>
på sidan.
Du kan aktivera Enhanced Experience Composer på kontonivån (aktiverad för alla aktiviteter som skapas i kontot) eller på den enskilda aktivitetsnivån.
Om du vill aktivera Enhanced Experience Composer på kontonivån klickar du på Administration > Visual Experience Composer och växlar sedan Enable Enhanced Experience Composer till På-positionen.
Om du vill aktivera Enhanced Experience Composer på aktivitetsnivå när du skapar en aktivitet i Visual Experience Composer klickar du på Configure > Page Delivery och växlar sedan Enable Enhanced Experience Composer till På-position.
Du kan tillåtslista vissa IP-adresser om Enhanced Experience Composer inte läses in på säkra sidor på din webbplats.
Problem med att läsa in Enhanced Experience Composer kan åtgärdas genom att du tillåtslista följande IP-adresser. Dessa IP-adresser är för Adobe servrar som används för proxyn Enhanced Experience Composer. De behövs bara för aktivitetsredigering. Besökare på webbplatsen behöver inte tillåtslista dessa IP-adresser.
Mer information finns i EEG läser inte in en intern QA-URL som inte är tillgänglig på offentlig IP i Felsökning av problem med Förbättrad Experience Composer.
Använd unika ID:n för element på den översta nivån och andra element som kan vara bra test-/målinriktningssökande.
Allt som finns omedelbart inuti body-elementet ska ha ett unikt ID. Om nya element infogas i brödtexten och koden flyttas runt, är det lättare att identifiera åtminstone de överordnade elementen.
Target behöver inga ID, men om du använder ID:n blir upplevelserna som skapas med upplevelsedispositionen mer tillförlitliga. Target använder CSS-väljare för att ändra ditt innehåll när upplevelsen levereras. När du redigerar en upplevelse kopplar Visual Experience Composer väljaren till det närmaste överordnade objektet med ett ID-attribut som inte är null till det HTML-element som ändras. Därför är det inte tillrådligt att använda någon mekanism, inklusive JavaScript-bibliotek, som ställer in eller ändrar HTML ID-attribut. Även om dessa ID:n kan vara tillgängliga för Target Experience Composer för att skapa aktiviteter, kanske ID:n som användes när upplevelsen skapades inte är tillgängliga när upplevelsen körs om JavaScript ändrar ID:n. Om ett ID inte är tillgängligt misslyckas väljaren som är förankrad till ID:t.
Namnge CSS-klasser så att de är lätta att identifiera.
När du redigerar CSS-klasser i Visual Experience Composer kan det vara bra att göra det enkelt att identifiera klasserna med hjälp av beskrivande klassnamn. Detta säkerställer att du redigerar rätt CSS-klasser och att sidorna visas som förväntat.
Använd inte CSS-egenskapen !important
när du döljer eller tar bort element.
Om CSS-egenskapen !important
finns med åsidosätts de ändringar som görs av target.js
under leveransen av webbplatsens CSS-regler.
Undvik att använda HTML-tabeller för sidlayouter.
Minimera användningen av iFrames.
Försök att ordna alla dynamiska DOM-ändringar så snart DOM är klar.
target.js
kan innehållsleveransen brytas. Detta händer bara när det finns en DOM-ändring i hierarkin för ett målelement.Använd endast oformaterad text eller en bildtagg i dina ankarelement.
<a>Anchor Text</a>
ELLER
<a href=""> <img src=""> </img> </a>
Undvik blocknivåelement inuti ett infogat element.
Använd inte bastaggen på webbplatsen för att lösa URL:er och länkar.
Om du använder EDIT HTML för att hantera DOM-strukturen kan väljarna brytas.
Om du till exempel har vidtagit två åtgärder:
- En klass har lagts till i Element 1
- Redigerade HTML för Element 1
Varje ändring skapar ett nytt element i VEC. Eftersom den andra åtgärden ändrar element 1 har den andra åtgärden inte längre något att ändra om du tar bort element 1, så ändringen fungerar inte längre.
Om du lägger till ett element med text och sedan redigerar elementet med annan text i en separat åtgärd, visas båda åtgärderna som separata element i kodredigeraren. När du redigerade elementet skapade du ett nytt element som ändrar det ursprungliga elementet som du skapade och som innehåller den redigerade texten. Om du sedan tar bort det ursprungliga elementet kommer den redigerade texten inte att kunna hitta det element som redigerades och kommer inte att visas. Det andra elementet finns kvar i listan med element, men det påverkar inte sidan eftersom elementet det ändras inte längre finns.
Använd taggarna <b>
och <i>
när du formaterar textelement med textredigeraren.
- Använd
<b>
i stället för<strong>
för fetstil. - Använd
<i>
i stället för<em>
för kursiv text.
<strong>
- och <em>
-taggar kan ge oväntade resultat.
Var försiktig när du tar bort formulärfält.
Inkludera inte mboxCreate
i skript.
mboxCreate
använder document.write
bör du inte ta med mboxCreate
i skript. Använd i stället mboxDefine
och mboxUpdate
för samma syfte.Uppdatera inte ett HTML-fragment med Target om det kräver JavaScript-kod för initieringen.
När en åtgärd (Redigera HTML) utförs på sidkomponenter (t.ex. skjutreglage, karuseller) kan leveransen visas som bruten. VEC utför åtgärden efter att sidkomponenten har instansierats av JavaScript.
När sidans innehåll levereras till besökare tillämpas åtgärden innan komponenten instansieras. På grund av detta kan den här komponentens funktionalitet sluta fungera vid leveranstillfället. Funktionaliteten beror på vilken typ av skript som används på den här sidan för att definiera komponenten.
Om du testar leveransen och den fungerar första gången är det inte säkert att den kommer att fortsätta fungera. Det kan finnas (eller inte vara) ett konkurrenstillstånd.
- Om det finns ett tävlingsvillkor fungerar leveransen ibland.
- Om det inte finns något tävlingsvillkor fungerar alltid leveransen.
Testa sidan flera gånger för att säkerställa att leveransen fungerar som förväntat.
Använd inte en bastagg på webbplatsen för att lösa URL:er och länkar.
Viktig text på webbplatsen som kan användas för målinriktning bör finnas i HTML-koden i ett -element.
Du kan t.ex. inte ange text i kundvagnen som mål i VEC om koden är som följer:
code language-html |
---|
|
I det här exemplet är hela ankarelementet markerat i VEC, vilket påverkar andra element negativt om mål utförs.
Använd inte top
- eller self
-variabler i JavaScript-kod.
Testa alltid webbplatsen om parametrar läggs till när sidan läses in.
Om du till exempel vill öppna www.abc.com
används följande URL-parametrar:
www.abc.com?mboxEdit=1&mboxDisable=1
Med de här parametrarna kan du redigera i en iframe.
Kontrollera att webbplatsen läses in som förväntat när du har lagt till parametrar som dessa.
Kontrollera att sidan öppnas som förväntat i en iframe.
Stäng av felsökningstekniker för iframe på din webbplats och kontrollera om webbplatsen öppnas som förväntat i en iframe på en dummy-sida. Exempel:
code language-html |
---|
|
Caveats section_A0436B7B85BA467FA9DE13A9A40E6A6E
Tänk på följande kavattningar när du använder Visual Experience Composer för att utforma din aktivitet.
Funktionen Move stöder inte z-index.
Om du ändrar ordning på elementen påverkas klickspårningen.
Om ett element som är markerat för klickspårning ordnas om ändras sökvägarna för de omordnade elementen. Det innebär att elementet på den plats där det ursprungliga elementet fanns innan det sorterades om är det vars klick spåras.
Detta beror på att både koden för att leverera aktivitetsinnehållet och koden för att spåra klickningar ingår i en del kod som levereras till sidan. Om du bläddrar till en annan sida och ställer in klickspårning skickas aktivitetsinnehållskoden och klickspårningskoden till den sidan. Om klickspårningssidan har en liknande sidstruktur som den sida där testet körs, kan testinnehållet också visas på klickspårningssidan.
Det är inte säkert att infogning av ett element fungerar i en <div>
som är en mbox.
insertBefore
och inte insertAfter
, om mbox implementeras felaktigt.När du redigerar både ett överordnat och ett underordnat element redigerar du det överordnade först.
Det går inte att markera sidelement som innehåller en mbox som underordnat element.
Om sidan innehåller:
code language-html |
---|
|
Den yttre diven ska inte väljas i en upplevelse eftersom mbox som är hårdkodad på sidan fortfarande anropar Target och får ett svar. Detta svar stör det svar som är avsett för det större sidelementet.
Proxy-IP:n kan blockeras i kundmiljön.
Begränsningar section_F33C2EA27F2E417AA036BC199DD6C721
Tänk på följande begränsningar när du arbetar med VEC:
Hanterar VEC-kompatibilitet med ändringar av tilläggsprincipen för Chrome. ext
På grund av uppdaterade V3-manifestprinciper i Google Chrome kan tillägg inte längre ändra den ursprungliga DOM-filen innan den tolkas av webbläsaren. Därför kan vissa säkerhetsskript, som implementeringar av iframe-busting, blockera sidor från att läsas in i VEC.
För att säkerställa kompatibilitet bör dessa skript inaktiveras villkorligt när sidan läses in inuti iframe Target. Den här processen kan utföras på ett säkert sätt genom att kontrollera om objektet window.adobeVecExtension
finns, vilket injiceras av Target under VEC-inläsning.
Följande kodfragment är exempel på iframe-busting-kod som kan leda till att webbsidan inte läses in i VEC:
window.top.location = window.self.location;
top.location.href = self.location.href;
En enkel kontroll kan användas för att verifiera när en webbsida är inbäddad i Target. Ett kodfragment ska se ut så här:
code language-none |
---|
|
Du kan inte flytta ett element utanför en behållare följt av en CSS-egenskap.
Du kan inte välja elementet Button för att ordna om.
Endast utbyteserbjudanden är tillgängliga för mboxes.
Du bör inte ordna om och flytta samma element.
Åtgärden Change Image fungerar inte på en bild i en karusell.
Om sidan till exempel innehåller en karusell med sex bilder och du vill byta ut en bild mot den andra bilden i karusellen, fungerar inte åtgärden Change Image.
Du kan lösa problemet genom att välja den överordnade behållaren och använda åtgärden Edit HTML för att redigera HTML för karusellen för att uppdatera bildkällan för den önskade bilden.
Det går inte att ändra storlek på bilder i en mbox.
När du har bytt ut en bild kan du inte välja åtgärden Edit.
Det går inte att redigera HTML-element med en extern källa.
Klickspårning fungerar inte för fästpunktselement som innehåller något annat än oformaterad text eller bildtaggar.
Sidorna måste acceptera URL-parametrar för att VEC ska fungera.
När du använder ett skript som en del av HTML, ska alla variabler och funktioner som är åtkomliga utifrån deklareras under fönstrets namnutrymme.
Skriptet körs inom omfånget target.js
efter att sidan har lästs in. Därför går det inte att komma åt variabeln eller funktionen som deklarerats lokalt utanför skriptblocket.
Felaktigt:
code language-html |
---|
|
Korrekt:
code language-html |
---|
|
Om du infogar en bild från Content-biblioteket (Scene7) och redigerar HTML bryts bildens URL.
Lägg till ett ankarpunktselement i diven customHeaderMessage med lite dummy-text:
code language-html |
---|
|
Välj den här diven med åtgärden Insert Element om du vill infoga en bild som en jämställd bild i den här dummy-texten div.
När bilden har infogats ser den ut så här:
code language-html |
---|
|
Ta bort det tomma textintervallet.
Åtgärden customCode
i VEC fungerar inte med Internet Explorer 8.
target.js
inte detta i IE8. Om sidan innehåller jQuery och visas i fönsterobjektet globalt kan target.js
som en tillfällig lösning använda åtgärden customCode
. Kontrollera att window.jQuery
och window.jQuery.fn.prepend
är definierade.