[Applicabile anche a v8]{class="badge positive" title="Applicabile anche a Campaign v8"}
Test AB: creare lo script step-5--creating-the-script
La scelta del contenuto di consegna destinato al gruppo rimanente viene calcolata da uno script. Questo script recupera le informazioni relative alla consegna con il tasso più elevato di aperture e copia il contenuto nella consegna finale.
Esempio di script example-of-a-script
Lo script seguente può essere utilizzato così come è nel flusso di lavoro di targeting. Per ulteriori informazioni al riguardo, consulta questa sezione.
// query the database to find the winner (best open rate)
var winner = xtk.queryDef.create(
<queryDef schema="nms:delivery" operation="get">
<select>
<node expr="@id"/>
<node expr="@label"/>
<node expr="[@operation-id]"/>
<node expr="[@workflow-id]"/>
</select>
<where>
<condition expr={"@FCP=0 and [@workflow-id]= " + instance.id}/>
</where>
<orderBy>
<node expr="[indicators/@estimatedRecipientOpenRatio]" sortDesc="true"/>
</orderBy>
</queryDef>).ExecuteQuery()
// create a new delivery object and initialize it by doing a copy of
// the winner delivery
var delivery = nms.delivery.create()
delivery.Duplicate("nms:delivery|" + winner.@id)
// append 'final' to the delivery label
delivery.label = winner.@label + " final"
// link the delivery to the operation to make sure it will be displayed in
// the campaign dashboard. This attribute needs to be set manually here since
// the Duplicate() method has reset it to its default value => 0
delivery.operation_id = winner.@["operation-id"]
delivery.workflow_id = winner.@["workflow-id"]
// adjust some delivery parameters to make it compatible with the
// "Prepare and start" option selected in the Delivery tab of this activity
delivery.scheduling.validationMode = "manual"
delivery.scheduling.delayed = 0
// save the delivery in database
delivery.save()
// store the new delivery Id in event variables
vars.deliveryId = delivery.id
Per una spiegazione dettagliata dello script, consultare questa sezione.
Implementazione implementation
-
Apri l'attività JavaScript code.
-
Copiare lo script offerto in Esempio di uno script nella finestra JavaScript code.
-
Nel campo Label, immettere il nome dello script, ad esempio
code language-none <%= vars.deliveryId %>
-
Chiudere l'attività JavaScript code.
-
Salva il flusso di lavoro.
Dettagli dello script details-of-the-script
Questa sezione descrive le varie parti dello script e la relativa modalità operativa.
-
La prima parte dello script è una query. Il comando queryDef consente di recuperare dalla tabella NmsDelivery le consegne create eseguendo il flusso di lavoro di targeting e di ordinarle in base alla frequenza stimata di aperture, quindi vengono recuperate le informazioni della consegna con la frequenza più elevata di aperture.
code language-none // query the database to find the winner (best open rate) var winner = xtk.queryDef.create( <queryDef schema="nms:delivery" operation="get"> <select> <node expr="@id"/> <node expr="@label"/> <node expr="[@operation-id]"/> </select> <where> <condition expr={"@FCP=0 and [@workflow-id]= " + instance.id}/> </where> <orderBy> <node expr="[indicators/@estimatedRecipientOpenRatio]" sortDesc="true"/> </orderBy> </queryDef>).ExecuteQuery()
-
La consegna con la più alta frequenza di aperture viene duplicata.
code language-none // create a new delivery object and initialize it by doing a copy of // the winner delivery var delivery = nms.delivery.create() delivery.Duplicate("nms:delivery|" + winner.@id)
-
L'etichetta della consegna duplicata è stata modificata e vi è stata aggiunta la parola final.
code language-none // append 'final' to the delivery label delivery.label = winner.@label + " final"
-
La consegna viene copiata nel dashboard della campagna.
code language-none // link the delivery to the operation to make sure it will be displayed in // the campaign dashboard. This attribute needs to be set manually here since // the Duplicate() method has reset it to its default value => 0 delivery.operation_id = winner.@["operation-id"] delivery.workflow_id = winner.@["workflow-id"]
code language-none // adjust some delivery parameters to make it compatible with the // "Prepare and start" option selected in the Delivery tab of this activity delivery.scheduling.validationMode = "manual" delivery.scheduling.delayed = 0
-
La consegna viene salvata nel database.
code language-none // save the delivery in database delivery.save()
-
L’identificatore univoco della consegna duplicata viene memorizzato nella variabile del flusso di lavoro.
code language-none // store the new delivery Id in event variables vars.deliveryId = delivery.id
Altri criteri di selezione other-selection-criteria
L’esempio precedente ti consente di selezionare il contenuto di una consegna in base alla frequenza di aperture delle e-mail. Puoi adattarlo per basarti su altri indicatori specifici per la consegna:
- Throughput clic migliore:
[indicators/@recipientClickRatio]
, - Tasso di reattività massimo (apertura e clic dell'e-mail nel messaggio):
[indicators/@reactivity]
, - Frequenza reclami più bassa:
[indicators/@refusedRatio]
(utilizzare il valore false per l'attributo sortDesc), - Tasso di conversione massimo:
[indicators/@transactionRatio]
, - Numero di pagine visitate dopo la ricezione di un messaggio:
[indicators/@totalWebPage]
, - Percentuale di annullamento abbonamento più bassa:
[indicators/@optOutRatio]
, - Importo transazione:
[indicators/@amount]
.
Ora puoi definire la consegna finale. Ulteriori informazioni.