以Platform Web SDK取代at.js資料庫
瞭解如何取代頁面上的Adobe Target實作,以從at.js移轉至Platform Web SDK。 基本取代包含下列步驟:
- 檢閱您的Target管理設定,並記下您的IMS組織ID
- 以Platform Web SDK取代at.js資料庫
- 更新同步程式庫實作的預先隱藏程式碼片段
- 設定Platform Web SDK
檢閱Target管理設定
將Target移轉至Platform Web SDK的第一步,是檢閱Target介面的 管理 區段中的設定。
實作
帳戶詳細資料
- IMS組織ID — 記下此值,因為設定Platform Web SDK需要此值。
- 裝置上決策 - Platform Web SDK不支援此功能。 若您移轉後不再在任何網站上使用at.js,或不再有任何裝置上決策的伺服器端使用案例,即可停用此設定。
實作方法
實作方法 區段中的所有可編輯設定僅適用於at.js。 這些設定可用來產生自訂的at.js程式庫,以供您實作。 檢閱這些設定,以檢查您是否有任何自訂程式碼,或正在為跨網域使用案例設定第一方和第三方Cookie。
設定檔存留期 設定只能由Adobe客戶服務變更。 Target訪客設定檔存留期不會受到實施方式的影響。 at.js和Platform Web SDK都使用相同的訪客設定檔存留期。
隱私
- 模糊化訪客IP位址 — 此設定會影響地理定位功能。 at.js和Platform Web SDK都針對地理定位使用相同的後端IP模糊化設定。
環境
Platform Web SDK使用資料流設定,可讓您為個別開發、測試和生產資料流明確定義環境ID。 此設定的主要使用案例是用於行動應用程式實施,其中URL不存在以輕鬆區分環境。 此設定為選用,但可用於確保所有請求都與指定環境正確關聯。 這與at.js實作不同,在實作中,您必須根據網域和主機群組規則指派Target環境。
如需詳細資訊,請參閱資料流組態指南和Target 主機檔案。
部署Platform Web SDK
Target功能由at.js和Platform Web SDK共同提供。 如果兩個程式庫同時使用,您可能會遇到轉譯和追蹤問題。 若要成功移轉至Platform Web SDK,第一步是移除at.js,並將其取代為Platform Web SDK (alloy.js)。
假設有一個使用at.js的簡單Target實作:
- 靠近頁面頂端的資料層可提供Target和其他應用程式的資訊
- 一或多個可在Target活動中使用其功能的第三方協助程式庫(例如jQuery)
- 預先隱藏的程式碼片段可緩解閃爍問題
- Target at.js程式庫會以非同步方式載入預設設定,以自動要求及轉譯活動:
code language-html |
---|
|
若要升級Target以使用Platform Web SDK,請先移除at.js:
<!--Target at.js library loaded asynchonously-->
<script src="/libraries/at.js" async></script>
和將取代為alloy JavsScript程式庫或您的標籤內嵌程式碼和Adobe Experience Platform Web SDK擴充功能:
code language-html |
---|
|
code language-html |
---|
|
在標籤屬性中,新增Adobe Experience Platform Web SDK擴充功能:
{modal="regular"}
預先建立的獨立版本需要直接新增至頁面的「基底程式碼」,以建立名為alloy的全域函式。 使用此函式與SDK互動。 如果您想要將全域函式命名為其他名稱,請變更alloy
名稱。
如需其他詳細資訊和部署選項,請參閱安裝Platform Web SDK檔案。
更新內容預先隱藏方法
視程式庫是以非同步或同步方式載入而定,Platform Web SDK實作可能需要預先隱藏程式碼片段。
非同步實施
就像使用at.js一樣,如果Platform Web SDK程式庫以非同步方式載入,頁面可能會在Target執行內容交換之前完成轉譯。 此行為可能會導致所謂的「閃爍」問題,發生此問題時,會先短暫地顯示預設內容,然後再更換為Target指定的個人化內容。 若要避免發生這種閃爍問題,Adobe建議在非同步Platform Web SDK指令碼參考或標籤內嵌程式碼之前,立即新增特殊的預先隱藏程式碼片段。
如果您的實作非同步(如上述範例),請將at.js預先隱藏程式碼片段取代為下列與Platform Web SDK相容的版本:
<!--Prehiding snippet for Target with asynchronous Web SDK deployment-->
<script>
!function(e,a,n,t){var i=e.head;if(i){
if (a) return;
var o=e.createElement("style");
o.id="alloy-prehiding",o.innerText=n,i.appendChild(o),setTimeout(function(){o.parentNode&&o.parentNode.removeChild(o)},t)}}
(document, document.location.href.indexOf("mboxEdit") !== -1, "body { opacity: 0 !important }", 3000);
</script>
預先隱藏程式碼片段會使用您選擇的CSS定義,在頁面標題中建立樣式標籤。 在收到來自Target的回應或達到逾時時間時,會移除此樣式標籤。
預先隱藏行為是由程式碼片段尾端的兩項設定所控制。
-
body { opacity: 0 !important }
會指定在Target載入之前,要用於預先隱藏的CSS定義。 依預設,會隱藏整個頁面。 您可以將此定義更新為要預先隱藏的選擇器,以及要如何隱藏它們。 您可以包含多個定義,因為此值只是插入到預先隱藏樣式標籤中的值。 如果您有可輕鬆識別的容器元素,可將內容包裝在導覽下,則可使用此設定將預先隱藏限定為該容器元素。 -
3000
指定預先隱藏的逾時時間(毫秒)。 如果逾時前未收到來自Target的回應,則會移除預先隱藏樣式標籤。 達到此逾時的情況應該很少見。
alloy-prehiding
。 如果使用適用於at.js的預先隱藏程式碼片段,該程式碼片段可能無法正常運作。同步實施
Adobe建議您以非同步方式實施Platform Web SDK,以獲得最佳的整體頁面效能。 不過,如果alloy.js程式庫或tags內嵌程式碼同步載入,則不需要預先隱藏程式碼片段。 而是在Platform Web SDK設定中指定預先隱藏樣式。
可以使用prehidingStyle
選項設定同步實施的預先隱藏樣式。 下節將介紹Platform Web SDK設定。
若要深入瞭解Platform Web SDK如何管理忽隱忽現的情形,請參閱指南章節: 管理個人化體驗的忽隱忽現情形
設定Platform Web SDK
每次載入頁面時都必須設定Platform Web SDK。 以下範例假設整個網站正在單一部署中升級為Platform Web SDK:
configure
命令必須一律為呼叫的第一個SDK命令。 edgeConfigId
是資料流識別碼
code language-javascript |
---|
|
在標籤實作中,許多欄位會自動填入或從下拉式選單中選取。 請注意,可以為每個環境選取不同的Platform 沙箱和資料串流。 資料流將會根據發佈程式中標籤庫的狀態而變更。
{modal="regular"}
如果您打算以逐頁方式從at.js移轉至Platform Web SDK,則需要下列設定選項:
code language-javascript |
---|
|
以下列出與Target相關的重要設定選項:
edgeConfigId
ebebf826-a01f-4458-8cec-ef61de241c93
orgId
ADB3LETTERSANDNUMBERS@AdobeOrg
targetMigrationEnabled
true
idMigrationEnabled
true
thirdPartyCookiesEnabled
true
prehidingStyle
body { opacity: 0 !important }
如需完整的選項清單,請參閱設定Platform Web SDK指南。
實作範例
當Platform Web SDK正確就位後,範例頁面看起來會像這樣。
code language-html |
---|
|
頁面代碼:
code language-html |
---|
|
在標籤中,新增Adobe Experience Platform Web SDK擴充功能:
{modal="regular"}
並新增所需的設定:
{modal="regular"}
請務必注意,僅包含並設定Platform Web SDK程式庫(如上所示)並不會執行任何對Adobe Edge網路的網路呼叫。
接下來,瞭解如何要求並套用VEC型活動至頁面。