adobe.target.triggerView (viewName, options) - at.js 2.x

每當新頁面載入或頁面上的元件重新呈現時,就可呼叫此函數。應為單頁應用程式(SPA)實作adobe.target.triggerView(),以使用Visual Experience Composer (VEC)來建立A/B Test和Experience Targeting (XT)活動。 如果未在網站上實作adobe.target.triggerView(),則VEC無法用於SPA。 如需詳細資訊,請參閱實作單頁應用程式

NOTE
此函式於at.js 2.x 使用供跨網域追蹤功能時。 此函式不適用於at.js版本1。x 版本不支援此函數。
參數
類型
必要?
說明
viewName
字串
傳入任何名稱作為要代表檢視的字串類型。此檢視名稱會顯示在VEC的Modifications面板中,供行銷人員建立動作和執行其A/B Test和Experience Targeting XT活動。
options
物件
options > page
布林值

TRUE: page 的預設值為 true。當 page=true,會傳送通知至 Target 後端以增加曝光計數。

呼叫triggerView時,除非options > page設為false,預設一律會傳送通知。

FALSE: ​當page=false,不會傳送通知以增加曝光計數。 只有當您想重新呈現頁面上具有選件的元件時,才應該使用此方法。

注意:呼叫triggerView()並將{page: false}作為選項時,不會重新轉譯VEC中的自訂程式碼選件。

範例: True

將通知傳送至Target後端以增加活動曝光次數和其他量度的triggerView()呼叫。

adobe.target.triggerView("homeView")

範例: False

triggerView()呼叫,不會傳送通知至Target後端以增加曝光計數。

adobe.target.triggerView("homeView", {page: false})

範例:與getoffers()applyOffers()鏈結的Promise

若要在解析getOffers() Promise時執行triggerView(),必須在最終區塊上執行triggerView(),如下列範例所示。 這是VEC在編寫模式中偵測Views所必需的。

adobe.target.getOffers({
    'request': {
        'prefetch': {
            'views': [{
                'parameters': {}
            }]
        }
    }
}).then(function(response) {
    // Apply Offers
    adobe.target.applyOffers({
        response: response
    });
}).catch(function(error) {
    console.log("AT: getOffers failed - Error", error);
}).finally(() => {
    // Trigger View call, assuming pageView is defined elsewhere
    adobe.target.triggerView(pageView, {
        page: true
    });
    console.log('AT: View triggered on : ' + pageView);
});

範例: triggerView()與Adobe Visual Editing Helper extension的最佳相容性

使用AdobeVisual Editing Helper擴充功能時,請考量下列事項:

由於Google針對Chrome擴充功能新增了V3資訊清單原則,Visual Editing Helper extension必須等候DOMContentLoaded事件,才能在VEC中載入Target資料庫。 此延遲可能會導致網頁在編寫程式庫準備就緒前引發triggerView()呼叫,導致檢視未在載入時填入。

若要緩解此問題,請使用頁面load事件的接聽程式。

以下是實作範例:

function triggerViewIfLoaded() {
    adobe.target.triggerView("homeView");
}

if (document.readyState === "complete") {
    // If the page is already loaded
    triggerViewIfLoaded();
} else {
    // If the page is not yet loaded, set up an event listener
    window.addEventListener("load", triggerViewIfLoaded);
}
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3