Skript erstellen

Die Auswahl der Inhaltsversion, die an die verbleibende Population gesendet wird, erfolgt mithilfe eines Scripts. Das Script ruft die Information bezüglich der höchsten Öffnungsrate ab und kopiert den Inhalt der Siegerversion in den endgültigen Versand.

Script-Beispiel

Das folgende Script kann wie im Zielgruppenbestimmungs-Workflow verwendet werden. Weitere Informationen hierzu finden Sie im Abschnitt Implementierung.

 // 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

Eine ausführliche Erläuterung des Scripts finden Sie unter Script-Details.

Umsetzung

  1. Öffnen Sie die JavaScript-Code-Aktivität.

  2. Kopieren Sie das in Script-Beispiel angebotene Script in das Fenster JavaScript-Code.

  3. Geben Sie im Titel-Feld den Script-Titel ein, d. h.

    <%= vars.deliveryId %>
    

  4. Schließen Sie die JavaScript-Code-Aktivität.

  5. Speichern Sie den Workflow.

Script-Details

Im Folgenden werden die verschiedenen Script-Abschnitte und deren Funktionsweise erläutert.

  • Der erste Abschnitt des Scripts ist eine Abfrage. Mit dem queryDef-Befehl werden aus der Tabelle NmsDelivery die durch die Ausführung des Workflows erstellten Sendungen abgerufen und nach ihren geschätzten Öffnungsraten geordnet. Im Anschluss werden die Informationen des Versands abgerufen, der die beste Öffnungsrate erzielt hat.

    // 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()
    
  • Der Versand mit der besten Öffnungsrate wird dupliziert.

     // 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)
    
  • Der Titel des duplizierten Versands wird durch Hinzufügung von final angepasst.

    // append 'final' to the delivery label
    delivery.label = winner.@label + " final"
    
  • Der Versand wird in das Kampagnen-Dashboard kopiert.

    // 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
    
  • Der Versand wird in der Datenbank gespeichert.

    // save the delivery in database
    delivery.save()
    
  • Die eindeutige Kennung des duplizierten Versands wird in der Workflow-Variable gespeichert.

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

Andere Auswahlkriterien

Im zuvor dargestellten Beispiel wird die endgültige Version anhand der Öffnungsraten der Testversionen bestimmt. Es besteht jedoch die Möglichkeit, andere Kriterien zu verwenden und das Script entsprechend anzupassen:

  • Höchste Klickrate: [indicators/@recipientClickRatio],
  • Höchste Reaktionsrate (Öffnung der E-Mail und Klicks in der Nachricht): [indicators/@reactivity],
  • Niedrigste Beschwerderate: [indicators/@refusedRatio] (Attribut sortDesc auf „false“ setzen),
  • Höchste Konversionsrate: [indicators/@transactionRatio],
  • Höchste Anzahl an besuchten Webseiten nach Erhalt der Nachricht: [indicators/@totalWebPage],
  • Niedrigste Abmelderate: [indicators/@optOutRatio],
  • Höchster Gesamtumsatz infolge des Erhalts der Nachricht: [indicators/@amount].

Sie können jetzt den endgültigen Versand festlegen (siehe Schritt 6: Endgültigen Versand festlegen).

Auf dieser Seite

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now