Rokt UX Helper - トラブルシューティング
このガイドは、Rokt UX Helperライブラリを実装する際に発生する可能性のある一般的な問題に対処 し、その解決策を提供します。
一般的な問題
エクスペリエンスがレンダリングされない
エクスペリエンスがページに表示されない場合:
-
要素セレクタが一致しない: エクスペリエンスペイロード内の
targetElementSelectorがrokt-layout-view要素のIDまたはクラスと一致していることを確認してください。// レスポンス内のプラグイン設定を確認
console.log(experienceData.plugins.map(plugin => plugin.plugin.targetElementSelector));
// これらのセレクタが要素と一致していることを確認
console.log(document.querySelector('rokt-layout-view').id); // セレクタの1つと一致する必要があります -
空または無効なペイロード: エクスペリエンスペイロードが有効であり、プラグインを含んでいることを確認してください。
// ペイロードの構造を検証
if (!experienceData || !experienceData.plugins || experienceData.plugins.length === 0) {
console.error('有効なエクスペリエンスデータが利用できません');
} -
カスタム要素が登録されていない: カスタム要素が正しく登録されていることを確認してください。
// 要素が登録されているか確認
console.log(!!customElements.get('rokt-layout-view'));
// 必要に応じて手動で登録
import { registerCustomElements } from '@rokt/ux-helper-web';
registerCustomElements(); -
複数のオーバーレイ要素:
render-overlay属性を持つ最初のrokt-layout-viewのみがオーバーレイエクスペリエンスを受け取ります。複数のオーバーレイ要素がある場合は実装を確認してください。
CDNの問題
CDNからライブラリを読み込む際に問題が発生している場合:
-
CDNパスが間違っている: ライブラリの正しいパスは以下の通りです:
<!-- CommonJS形式 (ブラウザで直接使用する場合) -->
<script src="https://cdn.jsdelivr.net/npm/@rokt/ux-helper-web/dist/index.cjs"></script>
<!-- ESM形式 (モダンなアプリケーション向け) -->
<script type="module">
import * as RoktUXHelper from 'https://cdn.jsdelivr.net/npm/@rokt/ux-helper-web/dist/index.mjs';
</script> -
バージョンの問題: 特定のバージョンで問題が発生している場合、正確なバージョンを指定してみてください:
<script src="https://cdn.jsdelivr.net/npm/@rokt/ux-helper-web@0.1.5/dist/index.cjs"></script> -
CORSの問題: CORSエラーが発生している場合、サーバーがCDNドメインを許可するように設定されていることを確認してください。
-
ネットワークの問題: ブラウザのネットワークタブを確認し、CDNファイルが正しく読み込まれているかを確認してください。
コンソールエラー
"Failed to construct 'CustomElement'"
カスタム要素の構築に関連するエラーが表示される場合:
Uncaught DOMException: Failed to construct 'CustomElement': The result must not have attributes
これは通常、古いブラウザやポリフィル(polyfill)を使用している場合に発生します。ライブラリの最新バージョンを使用していることを確認し、古いブラウザのためにポリフィルを追加することを検討してください:
<script src="https://unpkg.com/@webcomponents/webcomponentsjs/webcomponents-bundle.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@rokt/ux-helper-web/dist/index.cjs"></script>
"Cannot read property 'renderExperiences' of null"
このエラーは、DOMに存在しない要素に対してメソッドを呼び出そうとしたときに発生します:
Uncaught TypeError: Cannot read property 'renderExperiences' of null
要素を使用する前に存在することを確認してください:
const roktElement = document.getElementById('rokt-layout-placeholder');
if (roktElement) {
roktElement.renderExperiences(experienceData);
} else {
console.error('Element #rokt-layout-placeholder not found in DOM');
}
レイアウトの問題
"警告: 複数のオーバーレイプラグインが検出されました"
複数のオーバーレイプラグインに関する警告が表示された場合:
WARNING: Multiple overlay plugins detected. Only rendering the first one.
これは、body セレクタをターゲットにしているプラグインが複数あることを意味します。最初のプラグインのみがレンダリングされます。複数のオーバーレイをレンダリングする必要がある場合は、異なる配置戦略を検討してください。
DOMに存在するが表示されないエクスペリエンス
エクスペリエンス がDOMにレンダリングされているが表示されない場合:
-
CSSの問題を確認: 要素を検査し、CSSがコンテンツを隠していないことを確認します:
/* デバッグ用に一時的に追加 */
rokt-layout-view {
border: 1px solid red;
min-height: 50px;
}
イベント処理の問題
イベントが発火しない
イベントを受け取っていない場合:
-
イベントリスナーが遅れてアタッチされている: イベントリスナーがエクスペリエンスのレンダリング前にアタッチされていることを確認します:
// 正しい順序
roktElement.addEventListener('RoktUXEvent', handleUXEvent);
roktElement.addEventListener('RoktPlatformEvent', handlePlatformEvent);
roktElement.renderExperiences(experienceData); -
イベントのバブリングの問題: イベントが親要素で伝播を停止されていないか確認します:
// キャプチャフェーズを使用してイベントを早期にインターセプト
document.addEventListener('RoktUXEvent', handleUXEvent, true);
document.addEventListener('RoktPlatformEvent', handlePlatformEvent, true);