Creare lo script

La scelta del contenuto di consegna destinato alla popolazione rimanente viene calcolata da uno script. Questo script recupera le informazioni relative alla consegna con il tasso di apertura più elevato e copia il contenuto nella consegna finale.

Esempio di script

Il seguente script 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, fare riferimento a questa sezione.

Implementazione

  1. Apri il tuo JavaScript code attività.

  2. Copia lo script offerto in Esempio di script nel JavaScript code finestra.

  3. In Label immettere il nome dello script, ovvero

    <%= vars.deliveryId %>
    

  4. Chiudi JavaScript code attività.

  5. Salva il flusso di lavoro.

Dettagli dello script

Questa sezione descrive le varie parti dello script e la relativa modalità operativa.

  • La prima parte dello script è una query. La queryDef consente di recuperare dal NmsDelivery tabella delle consegne create eseguendo il flusso di lavoro di targeting e per ordinarle in base al tasso di apertura stimato, vengono recuperate le informazioni dalla consegna con il tasso di apertura più elevato.

    // 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 il tasso di apertura più alto è duplicata.

     // 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 viene modificata e la parola finale viene aggiunto a esso.

    // append 'final' to the delivery label
    delivery.label = winner.@label + " final"
    
  • La consegna viene copiata nel dashboard della campagna.

    // 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
    
  • La consegna viene salvata nel database.

    // save the delivery in database
    delivery.save()
    
  • L’identificatore univoco della consegna duplicata viene memorizzato nella variabile del flusso di lavoro.

    // store the new delivery Id in event variables
    vars.deliveryId = delivery.id
    

Altri criteri di selezione

L’esempio precedente ti consente di selezionare il contenuto di una consegna in base al tasso di apertura delle e-mail. Puoi adattarlo in base ad altri indicatori specifici per la consegna:

  • Velocità effettiva di clic migliore: [indicators/@recipientClickRatio],
  • Tasso di reattività più alto (apertura e-mail e clic nel messaggio): [indicators/@reactivity],
  • Tasso di reclamo inferiore: [indicators/@refusedRatio] (usa il valore false per l'attributo sortDesc),
  • Tasso di conversione più alto: [indicators/@transactionRatio],
  • Numero di pagine visitate dopo la ricezione di un messaggio: [indicators/@totalWebPage],
  • Tasso minimo di annullamento sottoscrizione: [indicators/@optOutRatio],
  • Importo transazione: [indicators/@amount].

Ora puoi definire la consegna finale. Ulteriori informazioni.

In questa pagina