複数のWeb SDK インスタンスの使用

同じページで 2 つの異なるプロパティを操作する場合があります。 考えられるシナリオは次のとおりです。

  • 買収され、共同で Web サイトの統合に取り組んでいる企業
  • 複数の企業間でのデータ共有関係
  • 新しいAdobeソリューションをテスト中で、既存の実装を中断したくないお客様

SDKでは、基本コード ​の配列に別の名前を追加することで、各プロパティに対して個別のインスタンスを作成できます。 次の例では、titaniumcopperという2つの名前を指定しています。

<!-- Base code -->
<script>
  !function(n,o){o.forEach(function(o){n[o]||((n.__alloyNS=n.__alloyNS||
  []).push(o),n[o]=function(){var u=arguments;return new Promise(
  function(i,l){n.setTimeout(function(){n[o].q.push([i,l,u])})})},n[o].q=[])})}
  (window,["titanium", "copper"]);
</script>

<!-- Load the Web SDK (JavaScript library loader or Tags embed code) -->
<!-- <script src=".../alloy.min.js" async></script> -->
<!-- <script src=".../launch-<ENV>.min.js" async></script> -->

その結果、スクリプトは、ライブラリの初期化時に2つのSDK インスタンスとなる2つのグローバル関数(titaniumcopper)を作成します。 各インスタンスは独自の設定と状態を維持します。titaniumを使用するすべてのコマンドはcopperから分離されます。

TIP
タグ付きのベースコードを使用する場合は、タグ拡張機能を設定する際に、設定したすべてのインスタンス名がSDK インスタンス名と一致していることを確認してください。

Web SDK インスタンスとしてtitaniumcopperの命名パターンの例に従って、コマンドを個別に実行できます。

titanium("configure", {
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg"
});

titanium("sendEvent", {
  data: {
    key: "value"
  }
});

copper("configure", {
  datastreamId: "f46e981f-fd03-4bdd-a9d9-73ce4447f870",
  orgId: "ADB3NUMBERSANDLETTERS2@AdobeOrg"
});

copper("sendEvent", {
  data: {
    key: "value"
  }
});

同じインスタンスで他のコマンドを実行する前に必ず、各インスタンスで configure コマンドを実行してください。

IMPORTANT
Cookieとの競合を回避するには、各Web SDK インスタンスに独自の一意のdatastreamIdと独自の一意のorgIdが必要です。
recommendation-more-help
experience-platform-help-collection