[整合]{class="badge positive"}
整合AEM Sites和Adobe Analytics
瞭解如何使用Adobe Client Data Layer的內建功能搭配AEM Sites核心元件,將AEM和Adobe Analytics與Adobe Analytics標籤擴充功能整合,以收集Adobe Experience Manager Sites中頁面的相關資料。 Experience Platform🔗中的標籤和Adobe Analytics擴充功能是用來建立規則,以將頁面資料傳送至Adobe Analytics。
您即將建置的內容 what-build
在本教學課程中,您將根據Adobe使用者端資料層中的事件觸發標籤規則。 此外,請為應該引發規則的時間新增條件,然後將AEM頁面的 頁面名稱 和 頁面範本 值傳送至Adobe Analytics。
目標 objective
- 在標籤屬性中建立事件導向規則,以擷取資料層的變更
- 將頁面資料層屬性對應至標籤屬性中的資料元素
- 使用頁面檢視信標收集頁面資料並傳送至Adobe Analytics
先決條件
需要下列專案:
- Experience Platform中的 標籤屬性
- Adobe Analytics 測試/開發報表套裝ID與追蹤伺服器。 請參閱下列有關建立報表套裝的檔案。
- Experience Platform偵錯工具瀏覽器延伸模組。 本教學課程中的熒幕擷取畫面是從Chrome瀏覽器擷取。
- (選用)已啟用Adobe使用者端資料層的AEM網站。 此教學課程使用公開的WKND網站,但歡迎您使用自己的網站。
切換WKND網站的標籤環境
WKND是面向公眾的網站,建置基礎為開放原始碼專案,設計為AEM實作的參考和教學課程。
您不必設定AEM環境及安裝WKND程式碼基底,而是可以使用Experience Platform偵錯工具將即時的WKND網站切換 至 您的 標籤屬性。 不過,如果您的AEM網站已啟用Adobe使用者端資料層,您就可以使用該網站。
驗證WKND網站上的Adobe使用者端資料層
WKND參考專案是以AEM核心元件建置的,預設已啟用Adobe使用者端資料層。 接下來,確認Adobe使用者端資料層已啟用。
-
導覽至WKND網站。
-
開啟瀏覽器的開發人員工具,並導覽至 主控台。 執行以下命令:
code language-js adobeDataLayer.getState();
上述程式碼會傳回Adobe使用者端資料層的目前狀態。
-
展開回應並檢查
page
專案。 您應該會看到類似以下的資料結構:code language-json page-2eee4f8914: @type: "wknd/components/page" dc:description: WKND is a collective of outdoors, music, crafts, adventure sports, and travel enthusiasts that want to share our experiences, connections, and expertise with the world. dc:title: "WKND Adventures and Travel" repo:modifyDate: "2020-08-31T21:02:21Z" repo:path: "/content/wknd/us/en.html" xdm:language: "en-US" xdm:tags: ["Attract"] xdm:template: "/conf/wknd/settings/wcm/templates/landing-page-template"
若要將頁面資料傳送至Adobe Analytics,請使用資料層的
dc:title
、xdm:language
和xdm:template
等標準屬性。如需詳細資訊,請參閱核心元件資料結構描述中的頁面結構描述。
note note NOTE 如果您沒有看到 adobeDataLayer
JavaScript物件? 確定已在您的網站上啟用Adobe使用者端資料層。
建立頁面載入規則
Adobe使用者端資料層是 事件導向 資料層。 載入AEM Page資料層時,會觸發cmp:show
事件。 建立從頁面資料層觸發cmp:show
事件時觸發的規則。
-
導覽至Experience Platform並進入與AEM網站整合的標籤屬性。
-
導覽至標籤屬性UI中的 規則 區段,然後按一下 建立新規則。
-
將規則 頁面載入名稱。
-
在 事件 子區段中,按一下 新增 以開啟 事件設定 精靈。
-
針對 事件型別 欄位,選取 自訂程式碼。
-
按一下主面板中的 開啟編輯器,然後輸入下列程式碼片段:
code language-js var pageShownEventHandler = function(evt) { // defensive coding to avoid a null pointer exception if(evt.hasOwnProperty("eventInfo") && evt.eventInfo.hasOwnProperty("path")) { //trigger the Tag Rule and pass event console.log("cmp:show event: " + evt.eventInfo.path); var event = { //include the path of the component that triggered the event path: evt.eventInfo.path, //get the state of the component that triggered the event component: window.adobeDataLayer.getState(evt.eventInfo.path) }; //Trigger the Tag Rule, passing in the new `event` object // the `event` obj can now be referenced by the reserved name `event` by other Tag data elements // i.e `event.component['someKey']` trigger(event); } } //set the namespace to avoid a potential race condition window.adobeDataLayer = window.adobeDataLayer || []; //push the event listener for cmp:show into the data layer window.adobeDataLayer.push(function (dl) { //add event listener for `cmp:show` and callback to the `pageShownEventHandler` function dl.addEventListener("cmp:show", pageShownEventHandler); });
上述程式碼片段透過將函式推入資料層,以新增事件接聽程式。 觸發
cmp:show
事件時,會呼叫pageShownEventHandler
函式。 在此函式中,已新增一些健全性檢查,而且已使用觸發事件的元件之資料層🔗的最新狀態建構新的event
。最後呼叫
trigger(event)
函式。trigger()
函式是標籤屬性中的保留名稱,它會 觸發規則。event
物件傳遞為引數,而該引數又由標籤屬性中的另一個保留名稱公開。 標籤屬性中的資料元素現在可以使用程式碼片段(例如event.component['someKey']
)來參考各種屬性。 -
儲存變更。
-
接下來,在 動作 底下,按一下 新增 以開啟 動作組態 精靈。
-
對於 動作型別 欄位,請選擇 自訂程式碼。
-
按一下主面板中的 開啟編輯器,然後輸入下列程式碼片段:
code language-js console.log("Page Loaded "); console.log("Page name: " + event.component['dc:title']); console.log("Page type: " + event.component['@type']); console.log("Page template: " + event.component['xdm:template']);
event
物件是從自訂事件中呼叫的trigger()
方法傳遞。 在此,component
是從自訂事件中的資料層getState
衍生的目前頁面。 -
儲存變更並在標籤屬性中執行組建,以將程式碼提升至您AEM網站上使用的環境。
note note NOTE 使用Adobe Experience Platform Debugger將內嵌程式碼切換至 開發 環境可能很有用。 -
導覽至您的AEM網站,然後開啟開發人員工具以檢視主控台。 重新整理頁面,您應該會看到主控台訊息已記錄:
建立資料元素
接著,建立數個資料元素,從Adobe使用者端資料層擷取不同的值。 如同上一個練習所示,您可以直接透過自訂程式碼存取資料層的屬性。 使用資料元素的優點在於它們可以在標籤規則中重複使用。
資料元素對應至@type
、dc:title
和xdm:template
屬性。
元件資源型別
-
導覽至Experience Platform並進入與AEM網站整合的標籤屬性。
-
導覽至 資料元素 區段,然後按一下 建立新資料元素。
-
在 Name 欄位中,輸入 元件資源型別。
-
對於 資料元素型別 欄位,請選取 自訂程式碼。
-
按一下 開啟編輯器 按鈕,然後在自訂程式碼編輯器中輸入下列內容:
code language-js if(event && event.component && event.component.hasOwnProperty('@type')) { return event.component['@type']; }
-
儲存變更。
note note NOTE 回想一下,已根據在標籤屬性中觸發 規則 的事件,提供 event
物件並設定範圍。 在規則中的資料元素為 referenced 之前,不會設定資料元素的值。 因此,在上一個步驟 中建立的 Page Loaded 規則之類的規則內使用此資料元素是安全的,但 在其他內容中使用此資料元素是不安全的。
頁面名稱
-
按一下 新增資料元素 按鈕
-
在 名稱 欄位中,輸入 頁面名稱。
-
對於 資料元素型別 欄位,請選取 自訂程式碼。
-
按一下 開啟編輯器 按鈕,然後在自訂程式碼編輯器中輸入下列內容:
code language-js if(event && event.component && event.component.hasOwnProperty('dc:title')) { return event.component['dc:title']; }
-
儲存變更。
頁面範本
-
按一下 新增資料元素 按鈕
-
在 Name 欄位中,輸入 頁面範本。
-
對於 資料元素型別 欄位,請選取 自訂程式碼。
-
按一下 開啟編輯器 按鈕,然後在自訂程式碼編輯器中輸入下列內容:
code language-js if(event && event.component && event.component.hasOwnProperty('xdm:template')) { return event.component['xdm:template']; }
-
儲存變更。
-
規則中現在應該包含三個資料元素:
規則 中的資料元素
新增Analytics擴充功能
接下來,將Analytics擴充功能新增至您的標籤屬性,以將資料傳送至報表套裝。
-
導覽至Experience Platform並進入與AEM網站整合的標籤屬性。
-
移至 擴充功能 > 目錄
-
找到 Adobe Analytics 擴充功能並按一下 安裝
-
在 資料庫管理 > 報表套裝 底下,輸入您要用於每個標籤環境的報表套裝ID。
note note NOTE 在本教學課程中,您可針對所有環境使用同一個報表套裝,但在現實情況中,您需使用個別的報表套裝(如下圖所示) note tip TIP 我們建議使用*「為我管理資料庫」選項*作為「資料庫管理」設定,因為這樣可更輕鬆地使 AppMeasurement.js
資料庫保持最新狀態。 -
核取方塊以啟用 使用Activity Map。
-
在 一般 > 追蹤伺服器 底下,輸入您的追蹤伺服器,例如
tmd.sc.omtrdc.net
。 如果您的網站支援https://
,請輸入SSL追蹤伺服器 -
按一下[儲存]儲存變更。
將條件新增至頁面載入規則
接下來,更新 Page Loaded 規則以使用 元件資源型別 資料元素,以確保該規則僅在cmp:show
事件是 Page 時引發。 其他元件可以引發cmp:show
事件,例如,輪播元件會在幻燈片變更時引發。 因此,請務必為此規則新增條件。
-
在標籤屬性UI中,導覽至先前建立的 頁面已載入 規則。
-
在 條件 下,按一下 新增 以開啟 條件組態 精靈。
-
對於 條件型別 欄位,請選取 值比較 選項。
-
將表單欄位中的第一個值設為
%Component Resource Type%
。 您可以使用資料元素圖示 來選取 元件資源型別 資料元素。 將比較器保留設定為Equals
。 -
將第二個值設為
wknd/components/page
。頁面載入規則的
note note NOTE 您可以在自訂程式碼函式中新增此條件,該函式會監聽教學課程中先前建立的 cmp:show
事件。 不過,將其新增至UI可讓可能需要變更規則的其他使用者更清楚瞭解。 此外,我們還能使用資料元素! -
儲存變更。
設定Analytics變數並觸發頁面檢視信標
目前 頁面已載入 規則只會輸出主控台陳述式。 接下來,使用這些資料元素和Analytics擴充功能,將Analytics變數設定為 頁面已載入 規則中的 動作。 我們也設定了額外的動作以觸發 頁面檢視信標,並將收集的資料傳送至Adobe Analytics。
-
在頁面載入規則中,移除 核心 — 自訂程式碼 動作(主控台陳述式):
-
在[動作]子區段下,按一下[新增] 以新增動作。
-
將 擴充功能 型別設定為 Adobe Analytics,並將 動作型別 設定為 設定變數
-
在主面板中,選取可用的 eVar,並設定為資料元素 頁面範本 的值。 使用資料元素圖示 來選取 頁面範本 元素。
-
向下捲動,在 其他設定 下,將 頁面名稱 設定為資料元素 頁面名稱:
-
儲存變更。
-
接下來,點選 加上 圖示,在 Adobe Analytics — 設定變數 的右側新增一個額外動作:
-
將 擴充功能 型別設定為 Adobe Analytics,並將 動作型別 設定為 傳送信標。 由於此動作被視為頁面檢視,請將預設追蹤設定為
s.t()
。 -
儲存變更。 頁面已載入 規則現在應具有下列設定:
- 1。 接聽
cmp:show
事件。 - 2。 檢查事件是否由頁面觸發。
- 3。 設定 頁面名稱 和 頁面範本 的Analytics變數
- 4。 傳送Analytics頁面檢視點標
- 1。 接聽
-
儲存所有變更並建置您的標籤程式庫,升級至適當的環境。
驗證頁面檢視信標和Analytics呼叫
現在 頁面已載入 規則已傳送Analytics信標,您應該能夠使用Experience Platform偵錯工具檢視Analytics追蹤變數。
-
在瀏覽器中開啟WKND網站。
-
按一下Debugger圖示 以開啟Experience PlatformDebugger。
-
如先前所述,確定Debugger將標籤屬性對應到 您的 開發環境,並檢查 主控台記錄。
-
開啟Analytics功能表,並確認報表套裝已設為 您的 報表套裝。 頁面名稱也應填入:
-
向下捲動並展開 網路要求。 您應該能夠找到 頁面範本 設定的 evar:
-
返回瀏覽器並開啟開發人員主控台。 按一下頁面頂端的 輪播。
-
在瀏覽器主控台中觀察主控台陳述式:
這是因為轉盤確實觸發
cmp:show
事件 ,但由於我們檢查 元件資源型別,因此未引發任何事件。note note NOTE 如果您沒有看到任何主控台記錄,請確定已在Experience Platform偵錯工具的 Experience Platform標籤 下檢查 主控台記錄。 -
導覽至文章頁面,例如西澳洲。 觀察該頁面名稱和範本型別的變更。
恭喜!
您剛才在Experience Platform中使用事件導向的Adobe使用者端資料層和標籤,從AEM Site收集資料頁面資料並將其傳送到Adobe Analytics。
後續步驟
請參閱下列教學課程,瞭解如何使用事件導向的Adobe使用者端資料層,以追蹤Adobe Experience Manager網站上特定元件的點按次數。