Web SDK 移行ガイド
このガイドは、古いバージョンの Rokt Web SDK(バージョン 2.5926.0 以前)から最新バージョンへの移行方法を説明します。これは Rokt Ecommerce と Rokt Ads の両方の実装に関連しており、更新された初期化スクリプトのような重大な変更点や、移行をスムーズに完了するために Rokt アカウントチームとどのように連携するかについて説明します。
Web SDK の初期化Web SDK の初期化 への直接リンク
新しい SDK で導入された最大の変更点は、ウェブサイト内での初期化方法です。現在のバージョン以前は、Rokt はサイト内の各ページの <head> タグから launcher.js または snippet.js スクリプトを呼び出すことで、SDK を初期化またはロードすることを許可していました。
これらのオプションはすべて、単一の初期化スクリプトに置き換えられました。
非推奨の launcher.js スクリプトを削除する非推奨の-launcherjs-スクリプトを削除する への直接リンク
サイトのコードを検索し、launcher.js スクリプトのインスタンスをすべて削除してください。
それは次のように見えるはずです:
<script type="module">
window.RoktLauncherScriptPromise = new Promise((resolve, reject) => {
const target = document.head || document.body;
const script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://apps.rokt.com/wsdk/integrations/launcher.js";
script.fetchPriority = "high";
script.crossOrigin = "anonymous";
script.async = true;
script.id = "rokt-launcher";
script.addEventListener('load', () => resolve());
script.addEventListener('error', (error) => reject(error));
target.appendChild(script);
});
</script>
非推奨の snippet.js 自動ランチャーを削除する非推奨の-snippetjs-自動ランチャーを削除する への直接リンク
自動ランチャースニペットを使用している場合は、サイトのコードを検索し、スクリプトのインスタンスをすべて削除してください。
それは次のように見えるはずです:
(function (r, o, k, t, n, e, w, a, _) {
r._ROKT_ = n;
r[n] = r[n] || {
id: t,
h: w,
lc: [],
it: new Date(),
onLoaded: function (c) {
r[n].lc.push(c);
},
};
a = o.createElement("script");
a.type = "text/javascript";
a.async = !0;
a.src = k;
if (e) {
a.integrity = e;
a.crossOrigin = "anonymous";
}
_ = o.getElementsByTagName("script")[0];
_.parentNode.insertBefore(a, _);
})(
window,
document,
"https://apps.rokt.com/wsdk/integrations/snippet.js",
"roktAccountid",
"rokt"
);
新しいSDK初期化スニペットを挿入する新しいSDK初期化スニペットを挿入する への直接リンク
古いSDKスニペットのインスタンスをすべて削除した後、サイトの各ページの <head> タグに新しいSDK 初期化スニペットを挿入してください。サイトがテンプレートを使用するマルチページアプリケーションの場合は、この新しいスニペットが各ページロード時にできるだけ早く実行されるようにテンプレートを更新してください。
新しい Rokt Web SDK 初期化スニペット新しい Rokt Web SDK 初期化スニペット への直接リンク
<script type="text/javascript">
// Rokt API キーを入力してください
const API_KEY = "YOUR_API_KEY";
// ファーストパーティドメインを設定した場合は、デフォルトの apps.rokt-api ドメインの代わりに DOMAIN の値として設定してください
const ROKT_DOMAIN = "https://apps.rokt-api.com";
// SDK の設定を行います
window.mParticle = {
config: {
// データ環境を isDevelopmentMode で指定します:
// 統合をテスト中の場合は、isDevelopmentMode を true に設定してください。
// 統合が本番データの準備ができている場合は、isDevelopmentMode を false に設定してください。
isDevelopmentMode: true,
// 現在のユーザーを識別します:
// ユーザーのメールアドレスがある場合は、以下のように `identifyRequest` 内の `userIdentities` オブジェクトに含めてください。
identifyRequest: {
userIdentities: {
// ハッシュされていないメールアドレスを使用している場合は、'email' に設定してください。
email: 'j.smith@example.com',
// ハッシュされたメールアドレスを使用している場合は、`email` の代わりに 'other' に設定してください。
other: 'sha256 hashed email goes here'
},
}
},
};
// SDK をロードします
(function(e) { window.mParticle = window.mParticle || {}; window.mParticle.EventType = { Unknown: 0, Navigation: 1, Location: 2, Search: 3, Transaction: 4, UserContent: 5, UserPreference: 6, Social: 7, Other: 8, Media: 9 }; window.mParticle.eCommerce = { Cart: {} }; window.mParticle.Identity = {}; window.mParticle.Rokt = {}; window.mParticle.config = window.mParticle.config || {}; window.mParticle.config.rq = []; window.mParticle.config.snippetVersion = 2.8; window.mParticle.ready = function(e) { window.mParticle.config.rq.push(e); }; ["endSession", "logError", "logBaseEvent", "logEvent", "logForm", "logLink", "logPageView", "setSessionAttribute", "setAppName", "setAppVersion", "setOptOut", "setPosition", "startNewSession", "startTrackingLocation", "stopTrackingLocation"].forEach(function(e) { window.mParticle[e] = function() { var t = Array.prototype.slice.call(arguments); t.unshift(e); window.mParticle.config.rq.push(t); }; }); ["setCurrencyCode", "logCheckout"].forEach(function(e) { window.mParticle.eCommerce[e] = function() { var t = Array.prototype.slice.call(arguments); t.unshift("eCommerce." + e); window.mParticle.config.rq.push(t); }; }); ["identify", "login", "logout", "modify"].forEach(function(e) { window.mParticle.Identity[e] = function() { var t = Array.prototype.slice.call(arguments); t.unshift("Identity." + e); window.mParticle.config.rq.push(t); }; }); ["selectPlacements","hashAttributes","hashSha256","setExtensionData","use","getVersion","terminate"].forEach(function(e) { window.mParticle.Rokt[e] = function() { var t = Array.prototype.slice.call(arguments); t.unshift("Rokt." + e); window.mParticle.config.rq.push(t); }; }); var t = window.mParticle.config.isDevelopmentMode ? 1 : 0, n = "?env=" + t, a = window.mParticle.config.dataPlan; if (a) { var o = a.planId, r = a.planVersion; o && (r && (r < 1 || r > 1e3) && (r = null), n += "&plan_id=" + o + (r ? "&plan_version=" + r : "")); } var i = window.mParticle.config.versions, s = []; i && Object.keys(i).forEach(function(e) { s.push(e + "=" + i[e]); }); var c = document.createElement("script"); c.type = "text/javascript"; c.async = !0; window.ROKT_DOMAIN = ROKT_DOMAIN || 'https://apps.rokt-api.com'; mParticle.config.domain = ROKT_DOMAIN.split('//')[1]; c.src = ROKT_DOMAIN + "/js/v2/" + e + "/app.js" + n + "&" + s.join("&"); var l = document.getElementsByTagName("script")[0]; l.parentNode.insertBefore(c, l); })(API_KEY);
</script>
新しいスニペットには、いくつかの新しい構成オプションが導入されています:
Rokt APIキーRokt APIキー への直接リンク
以前は、SDKスニペットにRokt Account IDを入力する必要がありました。この要件はRokt API Keyに置き換えられました。
Roktアカウント担当者がRokt API Keyを提供します。