ウェブ SDK 統合ガイド
このページでは、Rokt Ecommerce の Web SDK を実装 し、チェックアウトでより関連性のある顧客体験を提供する方法を説明します。SDK は、設定されたページで実行し、ユーザーおよび取引データを Rokt に返してパーソナライズおよび測定を行うことで、これらの体験(たとえば、確認ページにオファーを表示する)をトリガーして追跡することができます。
あなたの専任のアカウント担当者が、Web SDK のためのアカウント設定を手伝ってくれます。彼らは、SDK を初期化するために必要な API キー と、顧客に最も関連性の高い体験を提供するために必要な追加のリソースを提供します。
これらの指示を完了するには、開発リソースが必要です。追加の支援が必要な場合は、Rokt アカウントマネージャーにお問い合わせください。Shopify ストアは Rokt Ecommerce アプリ を使用して数秒で Rokt プレースメントを設定できます — コーディングは不要です!
まず、開発環境で SDK を実装するために Rokt アカウントマネージャーと協力してください。これにより、統合をリリースする前に、徹底的にテストおよびトラブルシューティングができます。
ファーストパーティドメインの設定
Rokt は、SDK をサイトに統合する際にファーストパーティドメインを使用することを推奨します。これにより、Rokt SDK が Rokt の API に呼び出しを行う際に自社のドメインを使用し、お客様にシームレスな体験を提供し、コンテンツがブロックされるリスクを最小限に抑えることができます。
SDK 統合のためのファーストパーティドメインの設定方法について学ぶには、First Party Domain Integration を参照してください。
1. Rokt SDK の初期化
SDK を初期化するには、SDK 初期化スクリプト全体をコピーしてサイトに貼り付けます。
サイトはそれぞれ異なりますが、Rokt はサイトのすべてのページに SDK 初期化スクリプト を含めることをお勧めします。これにより、常に SDK が初期化され、オファー配信の遅延を最小限にし、ユーザー識別の正確性を最大化します。
- シングルページアプリケーション (SPA): あなたのウェブサイトが SPA である場合、初期化スクリプトをメインの
index.html
ページ、または他のコンテンツがレンダリングされる主要な場所の<head>
に挿入します。 - マルチページアプリケーション (MPA): あなたのウェブサイトが MPA で、テンプレートベースのレンダリングシステム(最も一般的)を使用している場合、初期化スクリプトを主要な共有レイアウトファイルに配置します。テンプレートベースのレンダリングシステムを使用していない場合は、ウェブサイトの各 HTML ファイルにスクリプトを配置します。
各ページがスクリプトを含んでいる場合でも、ブラウザのキャッシュにより、既定では SDK はキャッシュから読み込まれ、ウェブサイトの各ページロード時に読み込まれるわけではないことに注意してください。
SDK 初期化スクリプト
<script type="text/javascript">
// Rokt APIキーを入力
const API_KEY = "YOUR_API_KEY";
// ファーストパーティドメイン構成を使用している場合、カスタムサブドメインを入力(オプション)
const ROKT_DOMAIN = "https://apps.rokt-api.com";
window.mParticle = {
config: {
// データ環境を 設定:
// 統合のテスト中の場合はisDevelopmentModeをtrueに設定。
// 本番データの準備が整った場合はisDevelopmentModeをfalseに設定。
isDevelopmentMode: true,
// 現在のユーザーを特定:
// ユーザーのメールアドレスがない場合、null値を渡すことができます
identifyRequest: {
userIdentities: {
// ハッシュされていないメールアドレスを使用している場合は、'email'に設定。
email: 'j.smith@example.com',
// ハッシュされたメールアドレスを使用している場合は、`email`ではなく'other'に設定。
other: 'sha256 ハッシュされたメールがここに入ります'
}
},
// ユーザーがメールアドレスで特定されている場合、追加のユーザー属性を設定。
identityCallback: function(result) {
if (result.getUser()) {
result.getUser().setUserAttribute('attribute-key', 'attribute-value');
}
}
}
};
// 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.6; 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","setExtensionData"].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>
サイトに初期化スクリプトを挿入する際には、次の設定を行ってください:
1.1 Rokt APIキーを入力
API_KEY
を専任のRoktアカウントマネージャーから提供されたRokt APIキーに設定します。
あなたのRokt APIキーは、Roktアカウント担当者から提供される一意の認証情報で、あなたのサイトがRokt SDKと安全に接続し、やり取りすることを可能にします。
1.2 カスタムサブドメインを入力(オプション)
独自のドメインを通じてSDKをルートする場合は、First-Party Domain Configurationの指示に従い、ROKT_DOMAIN
を作成したサブドメインに設定します。
カスタムサブドメインを使用することで、Rokt SDKを自分のドメインを経由してルートすることが可能となり、ブラウザや広告ブロッカーによって広告やデータがブロックされるリスクを減らすことができます。
この手順はオプションです。ROKT_DOMAIN
を https://apps.rokt-api.com
に設定したままでも構いませんが、Rokt SDKへのリクエストは apps.rokt-api.com
を経由してルートされます。