Utilizzare più istanze di Web SDK
In alcuni casi potrebbe essere utile interagire con due proprietà diverse sulla stessa pagina. Gli scenari possibili includono:
- Aziende che sono state acquisite e stanno lavorando all’integrazione dei loro siti web
- Relazioni di condivisione dei dati tra più aziende
- Clienti che stanno testando nuove soluzioni Adobe e non desiderano interrompere l’implementazione esistente
SDK consente di creare un'istanza separata per ogni proprietà aggiungendo un altro nome all'array nel codice base. Nell'esempio seguente vengono forniti due nomi, titanium e copper.
<!-- 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> -->
Di conseguenza, lo script crea due funzioni globali (titanium e copper nell'esempio precedente) che diventano due istanze di SDK quando la libreria viene inizializzata. Ogni istanza mantiene la propria configurazione e il proprio stato; qualsiasi comando che utilizza titanium viene mantenuto isolato da copper.
Seguendo l'esempio del modello di denominazione di titanium e copper come istanze di Web SDK, è possibile eseguire in modo indipendente i comandi:
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"
}
});
Assicurarsi di eseguire il comando configure per ogni istanza prima di eseguire altri comandi sulla stessa istanza.
datastreamId univoco e il proprio orgId univoco.