本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CUSTOM_OUTPUT
使用情況
CUSTOM_OUTPUT 當您的函數邏輯純粹是運算時,請使用 。常見的使用案例包括根據使用者代理程式字串分類裝置、使用 A/B 測試邏輯選取廣告決策伺服器 URLs,以及在玩家參數到達廣告決策伺服器之前重新格式化。
CUSTOM_OUTPUT 函數是最快的類型,因為它們會在沒有網路呼叫的記憶體中評估表達式。每當您無需聯絡外部服務即可完成目標時,請選擇此類型。
組態欄位
CUSTOM_OUTPUT 函數有兩個欄位:
-
執行時間 — 表達式語言。將此設定為
JSONATA。 -
輸出 — 鍵/值對的映射。每個索引鍵都是輸出繫結名稱 (例如
player_params.device_type),而每個值都是 MediaTailor 在執行時間評估的表達式。
注意
使用 {%...%} 在字串欄位中包裝 JSONata 運算式。沒有這些分隔符號的值會被視為靜態字串。例如, 會"{%session.id%}"評估表達式,而 "session.id"是文字文字。
執行時間行為
當 MediaTailor 執行CUSTOM_OUTPUT函數時,它會根據目前的工作階段狀態評估輸出區塊中的每個表達式。所有表達式都會看到相同的輸入快照。評估的結果會成為函數的輸出。
如果有任何表達式無法評估,MediaTailor 會捨棄整個函數的輸出,並像未連接函數一樣繼續。函數不會部分遞交結果。
範例:A/B 流量分割
下列函數會將每個廣告休息時間隨機指派給兩個廣告決策伺服器 URLs之一。它專為PRE_ADS_REQUEST生命週期掛鉤而設計。
{ "FunctionId": "abTestAdsUrl", "FunctionType": "CUSTOM_OUTPUT", "CustomOutputConfiguration": { "Runtime": "JSONATA", "Output": { "adsRequest.url": "{%$random() < 0.5 ? 'https://ads.example.com/v1' : 'https://ads.example.com/v2'%}" } } }
如需此範例的完整演練,請參閱 函數範例。