Kategorien
Marketing Automation Phase 2 - Think Salesforce

Double-Opt-In ohne Cookies mit Pardot

Pardot bietet standardmäßig keinen Double-Opt-In-Mechanismus. Über Formulare oder Formular-Handler generierte Prospects werden immer sofort mit Opt-In angemeldet. Die Rechtsprechung erfordert jedoch häufig ein ordnungsgemäß dokumentiertes Double-Opt-In.

Um einen sicher funktionierenden Double-Opt-In-Prozess zu erreichen, muss die Webanwendung, auf der dem Benutzer das Pardot-Formular präsentiert wird, eng mit der Datenstruktur von Pardot zusammenzuarbeiten. Der Schlüssel hierzu ist die Pardot API. In diesem Artikel skizziere ich, wie man das realisieren kann.

Problem 1: Cookies

Während einige Lösungsvorschläge existieren, die Bordmittel wie Automation Rules, Custom Redirects oder Engagement-Programme verwenden, funktioniert keine davon ohne Cookies. Die Notwendigkeit der Zustimmung für Tracking-Cookies und geräteübergreifende Customer Journeys führen aber zu einer hohen Rate an nicht richtig identifizierten Prospects und nie bestätigten Double-Opt-Ins. Das passiert zum Beispiel dann, wenn ein Prospect das Formular auf einem Desktop-Gerät ausfüllt und seine E-mails dann über ein mobiles Endgerät abruft.

Problem 2: keine eindeutige Kennung

Das zweite Problem ist, dass in Pardot außer der E-Mail im Klartext kein anderes Merkmal zur eindeutigen Identifizierung eines Prospects zur Verfügung steht. Die Prospect ID kann man nämlich nicht als Merge Field verwenden.

Selbst wenn Du Pardot mit Salesforce oder einem anderen CRM verwendest, dass Dort einen Identifier generieren könnte, erweist sich dieser Prozess oft als zu langsam. Schließlich soll die Autoresponder-E-Mail sofort nach dem Absenden des Formulars gesendet werden und die Synchronisierung mit Deinem CRM kann mehrere Minuten in Anspruch nehmen.

Unique Identifier generieren

Du benötigst also einen Unique Identifier, der für den Prospect unmittelbar nach dem Absenden des Formulars zur Verfügung steht. Die Lösung besteht darin, Deine Web-Application diese eindeutige Kennung zumindest für die aktuelle Benutzersitzung erstellen zu lassen. Um diese dann in Pardot zu bekommen, kannst Du Dir die Möglichkeit zu nutze machen, ein Pardot-Formularfeld automatisch mit Werten zu füllen.

Warum überhaupt eine eindeutige Kennung verwenden?

Die einzige als Merge Field verfügbare Kennung für einen Prospect ist die E-Mail-Adresse. Wenn Du jedoch ein Double-Opt-In-Skript erstellst, das sich nur auf diesen Parameterwert als ID verlässt, kann jeder, der diese URL kennt, jede E-Mail nach Belieben aktivieren. Dazu muss man nur den Wert des Parameters durch die jeweilige E-Mail-Adresse ersetzen. Die Verwendung einer eindeutigen ID in Verbindung mit der E-Mail-Adresse ist eine einfache Möglichkeit, diese Manipulation zu verhindern.

Das Grundprinzip des Double Opt-In Trackings mit Pardot

Als erstes möchte ich grob die notwendigen Schritte skizzieren, die nötig sind, um ein cookieloses Double-Opt-In zu realisieren.

Schritt 1:

Um das Double-Opt-In in Pardot korrekt zu speichern, benötigst Du einige Custom Prospect Fields, in denen Du diese Informationen abspeicherst. Dazu gehört ein Feld für den Unique Identifier, ein Feld, dass die erteilte Permission speichert und eventuell ein Feld, in dem das Datum der Einwilligung festgehalten wird.

SessionID (sessionid)
Type: Text
Textfeld zum Speichern des Unique Identifiers.

Permission Given (permission_given)
Type: Checkbox
Default value: false
Dieses Feld wird auf true gesetzt, sobald der Prospect sein Opt-In bestätigt hat.

Permission Asked (permission_asked)
Type: Checkbox
Default value: false
Dieses Feld hilft Dir später dabei, nicht abgeschlossene Double-Opt-In-Prozesse besser zu identifizieren.

Permission Date (permission_date)
Type: Date
Dieses Feld hilft Dir dabei, den Zeitpunkt der Bestätigung zu protokollieren.

Schritt 2:

Als nächstes musst Du ein Pardot-Formular auf Deiner Website platzieren, entweder über iframe eingebettet oder als Formular-Handler. Dieses Formular sammelt die Daten des Prospects.

Deine Webseite muss zudem bei Aufruf einen möglichst eindeutigen String als Identifier generieren und an ein Hidden Field des Formulars übergeben, dass zu dem im ersten Schritt angelegten Custom Prospect Field für den Unique Identifier gehört.

Außerdem kannst Du via Hidden Field den Wert von permission_asked auf true setzen, um zu protokollieren, dass der Double-Opt-In-Prozess gestarted wurde.

Wie genau Du auf Deiner Webseite einen zufälligen String für einen Unique Identifier generierst, sprengt den Rahmen dieses Artikels. Anbei findest Du ein paar Informationen darüber, wie Du Felder von Pardot-Formularen vorausfüllen kannst und einige Infos zu dem WordPress-Plugin für Pardot, dass dafür Filter zur Verfügung stellt.

https://help.salesforce.com/articleView?id=000316709&type=1&mode=1

https://de.wordpress.org/plugins/pardot/#%0Afilters%0A

Schritt 3:

Nach dem Absenden werden dann die Daten des Prospects sowie der von der Webseite generierte Identifier in Pardot gespeichert. Das Absenden löst dann per Completion Action eine Autoresponder-E-Mail an den Benutzer aus, die einen Link zur Bestätigung enthält. Dieses Link muss eine parametrisierte URL sein, die den Unique Identifier und die E-Mail-Adresse des Prospects als Wert mitliefert.

Das Link sollte die folgende Syntax haben (bei Verwendung von HML in Pardot):

www.yourdomain.com/path/subscribe.php?email={{Recipient.Email}}&sid= {{Recipient.sessionid__c}}

Die URL verwendet gewöhnliche Merge-Tags in Pardot, um einen parametrisierten Link zu erstellen, der Informationen zur Identifizierung des Prospects enthält. Die E-Mail benötigst Du später, um via API den Prospect zu identifizieren und der Unique Identifier zur Verifizierung wird über den Parameter sid mitgegeben.

Schritt 4:

In diesem Schritt passiert die eigentliche Magie. Du musst auf Deiner Webseite eine Landingpage programmieren, die über die Pardot API den Prospect identifiziert, den Double-Opt-In-Prozess verifiziert und dann entsprechend abschließt. Ich habe eine Beispiel-Datei mit PHP Code zum Download vorbereitet.

Das Skript verwendet die URL-Parameter dazu, den Benutzer zu identifizieren und im Erfolgsfall Daten für den Interessenten in Pardot zu manipulieren. Die E-Mail-Adresse brauchst Du, um über die API einen Prospect gezielt auslesen zu können und den Unique Identifier, um zu verifizieren, dass die Anfrage auch gültig ist. Danach wird dann der Klick dokumentieren und der Double-Opt-In-Vorgang sauber abgeschlossen.

Ich habe eine Beispiel-Datei in PHP für Dich vorbereitet, die nachvollziehbar macht, wie das Skript funktionieren muss.

Zeilen 4-5:
Das Skript liest die Werte aus den URL-Parametern und registriert sich dann für die Verwendung der Pardot-API.

Zeilen 13 – 17:
Hier hinterlegst Du die Credentials zum Authentifizieren der Pardot API.

Zeile 20:
Hier definierst Du eine URL, die aufgerufen wird, sollte der Double-Opt-In-Prozess wegen eines Fehlers scheitern.

Zeile 172:
Hier fordert daas Skript Daten für den Prospect an, der durch den Wert des Parameters E-Mail identifiziert wird.

Zeile 183:
Es vergleicht den in Pardot gespeicherten Unique Identifier mit der ID aus dem Querystring (sid). Dies ist der Schritt, in dem der Prospect validiert wird.

Zeilen 185 – 188:
Wenn E-Mail und Identifier übereinstimmen, aktualisiert das Skript die Feldwerte für permission_given und permission_date.

Zeile 190:
Die URL, die angezeigt werden soll, wenn der Double-Opt-In-Prozess erfolgreich war, kannst Du hier definieren.

Zeile 195:
Nach einer erfolgreichen Anmeldung ruft das Skript die URL der benutzerdefinierten Weiterleitung ab.

Da der ganze Prozess recht komplex ist und neben Pardot vor allem auch Programmierung auf Deiner Webseite erforderlich macht, habe ich das Ganze noch mal zur Verdeutlichung in einem Diagramm illustriert.

Vorteile

Der Aufwand lohnt sich, weil Du dich damit unabhängig von Cookies machst und der Opt-In-Prozess auch ohne Cookies funktioniert. besonders bei geräteübergreifenden Nutzersessions und Nutzersessions, die Tracking-Cookies ablehnen, erhältst Du so einen sicheren Double-Opt-In-Prozess.

Nachteile

Weil Du mit der vorgestellten Methode Deine Webanwendung bei jeder Anzeige des Formulars eine eindeutige Sitzungs-ID generieren lässt, wird jedes Mal, wenn der Benutzer das Formular nach dem Aktualisieren oder erneuten Aufrufen der Seite abschickt, ein neuer Wert für bereits vorhandene Prospects eingefügt. Dadurch wird ein zuvor generierter Bestätigungslink nutzlos.

In seltenen Fällen, in denen Benutzer ein Formular absenden, die Seite verlassen, zurückkehren und es erneut absenden oder unterschiedliche Formulare nacheinander absenden, bevor sie auf einen Bestätigungslink klicken und den Double-Opt-In-Prozess abschließen, kann dies zu Verwirrung führen.

Diesem Verhalten kann entgegengewirkt werden, indem geeignete Fehlermeldungen verwendet werden und eine Double-Opt-In-Bestätigung nur dann erforderlich ist, wenn ein Benutzer zuvor nicht ordnungsgemäß angemeldet wurde. Die Verwendung dynamischer Inhalte in Autoresponder-E-Mails ist eine gute Möglichkeit, sicherzustellen, dass ein Benutzer den Double-Opt-In-Prozess nur einmal durchlaufen muss.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.