V2関数をV3ランタイムに移行する
新しいイベントとビジター関数はAction V3ランタイムを使用します。Action V2ランタイムを使用する既存の関数はAction V3ランタイムに移行する必要があります。この記事では、移行プロセスについて説明します。
V3とV2の関数の違い
V3ランタイムを使用するイベントとビジター関数は、V2関数と以下のように異なります:
- パラメータと名前付きエクスポート – 入力データは名前付きエクスポートではなく、パラメータとして提供されます。
- イベント関数には二つのパラメータがあります:
event
とhelper
。 - ビジター関数には三つのパラメータがあります:
visitor
、visit
、そしてhelper
。
- イベント関数には二つのパラメータがあります:
- ヘルパー関数 –
helper
オブジェクトは認証トークンIDを取得したり、グローバル変数を取得するために使用されます。auth.get()
はhelper.getAuth()
に置き換えられました。store.get()
はhelper.getGlobalVariable()
に置き換えられました。
- イベントの収集
tealium.sendCollectEvent()
は、名前付きパラメータを使用するtrack()
に置き換えられました。
データ変換関数はTransformation V0ランタイムを使用し、V3ランタイムのリリースには影響を受けません。
V2関数の例
以下のコード例は、イベントを収集エンドポイントに送信するV2イベント関数と、このイベント関数のV3バージョンを示しています。
import { event, tealium } from "tealium";
(async () => {
const searchQuery = new URLSearchParams({ path: event.data.dom.pathname, query: event.data.dom.search_query });
const newEvent = await fetch(`https://getnew.event.com?${searchQuery}`)
.then(response => {
if (!response.ok) {
throw new Error(`Network response was not ok. Status code: ${response.status}.`);
}
return response.json();
});
tealium.sendCollectEvent(
newEvent,
event.account,
event.profile,
'abc123')
.then(response => {
if(!response.ok){
throw new Error(`Network response was not ok. Status code: ${response.status}.`);
}
return response.text();
})
.then(data => console.log('Result : ', data))
.catch(error => console.error('Error:', error.message));
})();
activate(async ({ event }) => {
const searchQuery = new URLSearchParams({ path: event.data.dom.pathname, query: event.data.dom.search_query });
const newEvent = await fetch(`https://getnew.event.com?${searchQuery}`)
.then(response => {
if (!response.ok) {
throw new Error(`Network response was not ok. Status code: ${response.status}.`);
}
return response.json();
});
track(newEvent, {
tealium_account: event.account,
tealium_profile: event.profile,
tealium_datasource: 'abc123'
})
.then(response => {
if(!response.ok){
throw new Error(`Network response was not ok. Status code: ${response.status}.`);
}
return response.text();
})
.then(data => console.log('Result : ', data))
.catch(error => console.error('Error:', error.message));
})();
V3関数を作成する
イベント関数またはビジター関数をV3に移行するには、移行する関数のタイプに応じてV3イベント関数またはビジター関数を作成します。詳細については、関数を作成するを参照してください。次に以下の手順を実行します:
-
コードエディタで、V3関数のデフォルトコードをすべて削除し、次のイベントまたはビジターコードを追加します。これは空の関数です。
次のステップで関数コードを追加し、コードを修正します。activate(async ({ event }) => { });
activate(async ({ visitor, visit }) => { });
-
V2関数からコードをコピーします。以下に示す関数の最初の行から始めます:
(async (event, helper) => {
そして関数の最後の行の上で終わります:
})();
-
コピーしたコードを空のV3関数に貼り付けます。
activate
行と終了行});
の間に貼り付けます。
関数コードを更新する
関数がライブラリやヘルパー関数を使用している場合、またはTealium Collectにイベントを送信している場合、空の関数にコピーしたコードは、以下のセクションで説明するように修正する必要があります。
Tealium Collectにイベントを送信する
例の関数はtealium.sendCollectEvent()
を使用しています。この呼び出しはtrack()
呼び出しに置き換える必要があります。以下の例は、V2のtealium.sendCollectEvent()
呼び出しとV3のtrack()
呼び出しを示しています。
import { event, tealium } from 'tealium';
(async () => {
const newEvent = { data: event.data.udo };
tealium.sendCollectEvent(newEvent,
event.account,
event.profile,
'abc123')
...
})();
activate(({ event }) => {
const newEvent = { data: event.data.udo };
track(newEvent, {
tealium_account: event.account,
tealium_profile: event.profile,
tealium_datasource: 'abc123'
})
...
})
track()
呼び出しで、'abc123'
をあなたのデータソースキーに置き換えます。
ライブラリを使用する
V2関数がライブラリ(例:CrytpoES)を使用している場合、activate
行の前にインポート行を追加します。
import { event, tealium } from "tealium";
import CryptoES from 'crypto-es';
...
import CryptoES from 'crypto-es';
activate(async ({ event, helper }) => {
...
});
認証トークンとグローバル変数
V2関数が認証トークンやグローバル変数を使用している場合、V3関数のactivate
行の関数パラメータにhelper
を追加します。例えば:
activate(async ({ event, helper }) => {
});
V2コードのauth.get()
のすべてのインスタンスをhelper.getAuth()
に置き換えます。例えば:
import { auth } from 'tealium';
const token = auth.get("myAuthToken");
activate(({event, helper }) => {
const token = helper.getAuth("myAuthToken");
})
store.get()
のすべてのインスタンスをhelper.getGlobalVariable()
に置き換えます。例えば:
import {store } from 'tealium';
const gVar = store.get("myGlobalVar");
activate(({event, helper }) => {
const gVar = helper.getGlobalVariable("myGlobalVar");
})
最終更新日 :: 2024年March月29日