同じページで 2 つの異なるプロパティを操作する場合があります。次のような場合が考えられます。
SDK では、ベースコード内の配列に別の名前を追加することで、各プロパティに個別のインスタンスを作成できます。次の例は、mycustomname1
と mycustomname2
の 2 つの名前を示しています。
<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[o].q.push([i,l,u])})},n[o].q=[])})}
(window,["mycustomname1", "mycustomname2"]);
</script>
<script src="alloy.js" async></script>
その結果、スクリプトは 2 つの SDK インスタンスを作成します。最初のインスタンスと対話するためのグローバル関数に mycustomname1
、2 番目のインスタンスと対話するためのグローバル関数が mycustomname2
という名前が付けられます。
2 つの異なるインスタンスを作成すると、異なるプロパティに対してそれぞれを設定できます。mycustomname1
との対話によって生じる通信やデータの持続性は、mycustomname2
から切り離されます。
上の例に続き、次のように各インスタンスを使用してコマンドを実行できます。
mycustomname1("configure", {
"edgeConfigId": "ebebf826-a01f-4458-8cec-ef61de241c93",
"orgId": "ADB3LETTERSANDNUMBERS@AdobeOrg"
});
mycustomname1("sendEvent", {
"data": {
"key": "value"
}
});
mycustomname2("configure", {
"edgeConfigId": "f46e981f-fd03-4bdd-a9d9-73ce4447f870",
"orgId": "ADB3NUMBERSANDLETTERS2@AdobeOrg"
});
mycustomname2("sendEvent", {
"data": {
"key": "value"
}
});
同じインスタンスで他のコマンドを実行する前に必ず、各インスタンスで configure
コマンドを実行してください。
Cookie との競合を避けるために、1 つのページ内のAdobe Experience Platform Web SDK のインスタンスのうち、1 つだけ特定の edgeConfigId
を持つことができます。 同様に、Adobe Experience Platform Web SDK の 1 つのインスタンスだけが特定の orgId
を持つことができます。