事件類型

本頁說明Adobe Experience Platform Web SDK標籤擴充功能提供的Adobe Experience Platform事件型別。 這些是用於建置規則,不應該與eventType物件xdm中的欄位混淆。

監視勾點已觸發 monitoring-hook-triggered

Adobe Experience Platform Web SDK包含監視鉤點,您可以使用這些鉤點來監視各種系統事件。 這些工具對於開發您自己的偵錯工具以及擷取Web SDK記錄檔相當實用。

如需有關每個監控掛接事件包含哪些引數的完整詳細資訊,請參閱Web SDK監控掛接檔案

標籤使用者介面影像顯示監視連結事件型別

Web SDK標籤擴充功能支援下列監視鉤點:

  • onInstanceCreated:當您成功建立新的Web SDK執行個體時,就會觸發此監視掛接事件。

  • onInstanceConfigured:成功解析configure命令時,Web SDK會觸發此監視掛接事件

  • onBeforeCommand:此監視掛接事件是在執行任何其他命令之前由Web SDK觸發。 您可以使用此監視掛接來擷取特定命令的組態選項。

  • onCommandResolved:此監視掛接事件是在解析命令Promise之前觸發。 您可以使用此函式來檢視命令選項和結果。

  • onCommandRejected:當命令Promise被拒絕且包含錯誤原因的相關資訊時,就會觸發此監視掛接事件。

  • onBeforeNetworkRequest:此監視掛接事件是在執行網路要求之前觸發。

  • onNetworkResponse:瀏覽器收到回應時,就會觸發此監視掛接事件。

  • onNetworkError:網路要求失敗時會觸發此監視掛接事件。

  • onBeforeLog:此監視掛接事件是在Web SDK將任何內容記錄到主控台之前觸發。

  • onContentRendering:此監視連結事件是由personalization元件觸發,可協助您偵錯個人化內容的呈現。 此事件可能有不同的狀態:

    • rendering-started:表示網頁SDK即將呈現主張。 在Web SDK開始轉譯決定範圍或檢視之前,您可以在data物件中看到即將由personalization元件轉譯的主張和範圍名稱。
    • no-offers:表示未收到要求之引數的裝載。
    • rendering-failed:表示Web SDK無法轉譯主張。
    • rendering-succeeded:表示已針對決定範圍完成轉譯。
    • rendering-redirect:表示Web SDK將執行重新導向主張。
  • onContentHiding:套用或移除預先隱藏樣式時,就會觸發此監視掛接事件。

Send event complete

通常您的屬性會有一或多個規則使用Send event動作將事件傳送至Adobe Experience Platform Edge Network。 每次將事件傳送至Edge Network時,系統都會將回應傳回至瀏覽器,其中包含有用的資料。 如果沒有Send event complete事件型別,您將無法存取此傳回的資料。

若要存取傳回的資料,請建立個別規則,然後新增Send event complete事件至規則。 每次因Send event動作而從伺服器收到成功回應時,就會觸發此規則。

當Send event complete事件觸發規則時,它會提供伺服器傳回的有助於完成特定工作的資料。 通常,您會將Custom code動作(來自Core擴充功能)新增至包含Send event complete事件的相同規則。 在Custom code動作中,您的自訂程式碼將可存取名為event的變數。 此event變數將包含伺服器傳回的資料。

您用於處理從Edge Network傳回之資料的規則可能如下所示:

以下是如何使用此規則中的Custom code動作執行某些工作的範例。

手動呈現個人化內容

在自訂程式碼動作中(位於處理回應資料的規則中),您可以存取從伺服器傳回的個人化主張。 若要這麼做,您應輸入下列自訂程式碼:

var propositions = event.propositions;

如果event.propositions存在,則為包含個人化主張物件的陣列。 陣列中包含的建議很大程度上是由事件傳送至伺服器的方式所決定。

對於第一個案例,假設您尚未核取Render decisions核取方塊,且未在負責傳送事件的decision scopes動作中提供任何Send event。

img.png

在此範例中,propositions陣列僅包含與事件相關的主張,這些主張符合自動轉譯的條件。

propositions陣列可能類似於以下範例:

[
  {
    "id": "AT:eyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
    "scope": "__view__",
    "items": [
      {
        "id": "11223344",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">An HTML proposition.</h2>",
          "selector": "#hero",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:PyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ8",
    "scope": "__view__",
    "items": [
      {
        "id": "11223345",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">Another HTML proposition.</h2>",
          "selector": "#sidebar",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  }
]

傳送事件時,未勾選Render decisions核取方塊,因此SDK不會嘗試自動轉譯任何內容。 不過,SDK仍會自動擷取符合自動轉譯條件的內容,並會在您想要這麼做時,提供給您手動轉譯。 請注意,每個主張物件的renderAttempted屬性都設定為false

如果您在傳送事件時勾選「Render decisions」核取方塊,SDK會嘗試轉譯任何符合自動轉譯條件的建議。 因此,每個主張物件都會將其renderAttempted屬性設定為true。 在此情況下,不需要手動轉譯這些主張。

到目前為止,您只檢視了符合自動轉譯資格的個人化內容(例如,在Adobe Target的視覺化體驗撰寫器中建立的任何內容)。 若要擷取任何符合自動轉譯資格的個人化內容​__,請使用Decision scopes動作中的Send event欄位提供決定範圍來要求內容。 範圍是字串,可識別您要從伺服器擷取的特定主張。

Send event動作如下所示:

img.png

在此範例中,如果在符合salutationdiscount範圍的伺服器上找到主張,則會傳回它們並包含在propositions陣列中。 請注意,無論您在propositions動作中如何設定Render decisions或Decision scopes欄位,Send event陣列中仍會繼續包含符合自動轉譯資格的主張。 在此案例中,propositions陣列看起來與此範例類似:

[
  {
    "id": "AT:cZJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ2",
    "scope": "salutation",
    "items": [
      {
        "schema": "https://ns.adobe.com/personalization/json-content-item",
        "data": {
          "id": "4433221",
          "content": {
            "salutation": "Welcome, esteemed visitor!"
          }
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:FZJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ0",
    "scope": "discount",
    "items": [
      {
        "schema": "https://ns.adobe.com/personalization/html-content-item",
        "data": {
          "id": "4433222",
          "content": "<div>50% off your order!</div>",
          "format": "text/html"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:eyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
    "scope": "__view__",
    "items": [
      {
        "id": "11223344",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">An HTML proposition.</h2>",
          "selector": "#hero",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:PyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ8",
    "scope": "__view__",
    "items": [
      {
        "id": "11223345",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">Another HTML proposition.</h2>",
          "selector": "#sidebar",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  }
]

此時,您可以視需要演算主張內容。 在此範例中,符合discount範圍的主張是使用HTML的表單式體驗撰寫器建立的Adobe Target主張。 假設您的頁面上有ID為daily-special的元素,且想要將內容從discount主張轉譯為daily-special元素。 請執行下列動作:

  1. event物件擷取主張。
  2. 重複每個主張,尋找範圍為discount的主張。
  3. 如果您找到主張,會在主張中的每個專案中循環,尋找屬於HTML內容的專案。 (檢查勝於假設)。
  4. 如果您找到包含HTML內容的專案,請在頁面上找到daily-special元素,並以個人化內容取代其HTML。

您在Custom code動作中的自訂程式碼可能會顯示如下:

var propositions = event.propositions;

var discountProposition;
if (propositions) {
  // Find the discount proposition, if it exists.
  for (var i = 0; i < propositions.length; i++) {
    var proposition = propositions[i];
    if (proposition.scope === "discount") {
      discountProposition = proposition;
      break;
    }
  }
}

var discountHtml;
if (discountProposition) {
  // Find the item from proposition that should be rendered.
  // Rather than assuming there a single item that has HTML
  // content, find the first item whose schema indicates
  // it contains HTML content.
  for (var j = 0; j < discountProposition.items.length; j++) {
    var discountPropositionItem = discountProposition.items[i];
    if (discountPropositionItem.schema === "https://ns.adobe.com/personalization/html-content-item") {
      discountHtml = discountPropositionItem.data.content;
      break;
    }
  }
}

if (discountHtml) {
  // Discount HTML exists. Time to render it.
  var dailySpecialElement = document.getElementById("daily-special");
  dailySpecialElement.innerHTML = discountHtml;
}

存取Adobe Target回應Token

從Adobe Target傳回的Personalization內容包含回應Token,其為有關活動、選件、體驗、使用者設定檔、地理資訊等的詳細資料。 這些詳細資料可與協力廠商工具共用或用於偵錯。 回應Token可在Adobe Target使用者介面中設定。

在自訂程式碼動作中(位於處理回應資料的規則中),您可以存取從伺服器傳回的個人化主張。 若要這麼做,請輸入下列自訂程式碼:

var propositions = event.propositions;

如果event.propositions存在,則為包含個人化主張物件的陣列。 如需有關內容的詳細資訊,請參閱手動轉譯個人化內容result.propositions

假設您想從網頁SDK自動轉譯的所有主張中收集所有活動名稱,並將其推入單一陣列。 然後,您可以將單一陣列傳送給第三方。 在這種情況下,請在Custom code動作中寫入自訂程式碼至:

  1. event物件擷取主張。
  2. 在每個主張中重複執行。
  3. 決定SDK是否呈現主張。
  4. 若是如此,會重複檢查主張中的每個專案。
  5. meta屬性(包含回應Token的物件)擷取活動名稱。
  6. 將活動名稱推送至陣列。
  7. 將活動名稱傳送給第三方。
var propositions = event.propositions;
if (propositions) {
  var activityNames = [];
  propositions.forEach(function(proposition) {
    if (proposition.renderAttempted) {
      proposition.items.forEach(function(item) {
        if (item.meta) {
          // item.meta contains the response tokens.
          var activityName = item.meta["activity.name"];
          // Ignore duplicates
          if (activityNames.indexOf(activityName) === -1) {
            activityNames.push(activityName);
          }
        }
      });
    }
  });
  // Now that activity names are in an array,
  // you can send them to a third party or use
  // them in some other way.
}

Subscribe ruleset items subscribe-ruleset-items

Subscribe ruleset items​事件型別可讓您訂閱介面的Adobe Journey Optimizer內容卡。 每當評估規則集時,提供給此命令的回呼都會收到一個結果物件,其中包含儲存內容卡片資料的建議。

顯示[訂閱規則集]專案事件型別的Experience Platform標籤使用者介面影像。

此事件型別支援下列可設定的屬性:

  • Schemas:要訂閱內容卡的結構描述陣列。 您可以手動輸入結構描述,或提供資料元素來輸入。
  • Surfaces:您要訂閱內容卡片的一系列表面。 您可以手動或提供資料元素來輸入曲面。
recommendation-more-help
12b4e4a9-5028-4d88-8ce6-64a580811743