邊緣擴充功能模組中的內容
邊緣擴充功能中的所有程式庫模組執行時,系統都會為其提供 context
物件。本文介紹 context
物件所提供的屬性,並說明這些屬性在程式庫模組中扮演的角色。
Adobe Request Context (arc)
arc
屬性是提供觸發規則之事件相關資訊的物件。下列各節會說明此物件中包含的多個子屬性。
event
此 event
object代表觸發規則的事件,並包含以下值:
logger.log(context.arc.event);
xdm
data
request
request
是來自 Adobe Experience Platform Edge Network 且經略微修改的物件,切勿與用戶端裝置的要求混為一談。
logger.log(context.arc.request)
request
物件有兩個頂層屬性:body
和 head
。此 body
屬性包含Experience Data Model (XDM)資訊,當您導覽至「 」時,可在Adobe Experience Platform Debugger中檢視 Launch 並選取 邊緣追蹤 標籤。
ruleStash rulestash
ruleStash
物件會收集動作模組的每個結果。
logger.log(context.arc.ruleStash);
每個擴充功能都有專屬的命名空間。舉例來說,如果您的擴充功能名為 send-beacon
,則 send-beacon
動作的所有結果都會儲存在 ruleStash['send-beacon']
命名空間。
每個擴充功能的命名空間都是獨一無二,其開頭的值為 undefined
。
每個動作傳回的結果將會覆寫命名空間。例如,假設 transform
擴充功能包含下列兩個動作:generate-fullname
和 generate-fulladdress
。系統會將這兩個動作新增至規則。
如果 generate-fullname
動作的結果為 Firstname Lastname
,動作完成後,規則隱藏項目會如下所示:
{
transform: 'Firstname Lastname'
}
如果 generate-address
動作的結果為 3900 Adobe Way
,完成動作後,規則隱藏項目則會如下所示:
{
transform: '3900 Adobe Way'
}
請注意,規則隱藏項目中不再包含「Firstname Lastname」,因為 generate-address
動作會以新值加以覆寫。
如果您希望 ruleStash
將兩個動作的結果儲存在 transform
命名空間,可參考以下範例編寫動作模組:
module.exports = (context) => {
let transformRuleStash = context.arc.ruleStash.transform;
if (!transformRuleStash) {
transformRuleStash = {};
}
transformRuleStash.fullName = 'Firstname Lastname';
return transformRuleStash;
}
第一次執行此動作時,ruleStash
會以 undefined
開頭,系統會以空白物件來初始化。下次執行動作時,會收到先前呼叫動作時傳回的 ruleStash
。若將物件作為 ruleStash
使用,您就能新增資料,同時不會失去擴充功能中其他動作先前設定的資料。
公用程式
此 utils
屬性代表提供標籤執行階段專用公用程式的物件。
logger
此 logger
公用程式可讓您記錄在使用時於偵錯工作階段顯示的訊息 Adobe Experience Platform Debugger.
context.utils.logger.error('Error!');
記錄程式會採取下列方法,而 message
是您要記錄的訊息:
log(message)
info(message)
warn(message)
error(message)
debug(message)
verbose
記錄時,系統才會顯示此方法。fetch
此公用程式會實作 Fetch API。您可以使用函數向協力廠商端點提出要求。
context.utils.fetch('http://example.com/movies.json')
.then(response => response.json())
getBuildInfo
此公用程式會傳回物件,內含目前標籤執行階段程式庫組建的相關資訊。
logger.log(context.utils.getBuildInfo().turbineBuildDate);
此物件包含下列值:
turbineVersion
turbineBuildDate
buildDate
environment
development
、staging
和 production.
。以下以 getBuildInfo
物件為例加以示範,其傳回的值為:
{
turbineVersion: "1.0.0",
turbineBuildDate: "2016-07-01T18:10:34Z",
buildDate: "2016-03-30T16:27:10Z",
environment: "development"
}
getExtensionSettings
此公用程式會傳回您上次從擴充功能組態檢視儲存的 settings
物件。
logger.log(context.utils.getExtensionSettings());
getSettings
此公用程式會傳回您上次從相對應程式庫模組檢視中儲存的 settings
物件。
logger.log(context.utils.getSettings());
getRule
此公用程式會傳回內含觸發模組之規則相關資訊的物件。
logger.log(context.utils.getRule());
物件包含下列值:
id
name