2016-09-21 2 views
6

Ich habe eine Ein-Pager-Kampagne Website, die PageView und LEAD Ereignisdaten für Facebook Targeting mit "Advanced Matching" sammeln sollte.Wie initialisiert man Facebook Pixel mit Daten, die nach der Initialisierung gefüllt werden?

Für PageView, muss ich die Pixel beim Laden der Seite initialisieren. Für das erweiterte Matching muss ich Benutzerdaten für das Initialisierungsskript bereitstellen. Ich habe jedoch nur Benutzerdaten verfügbar, nachdem der Benutzer die Daten gesendet hat. In diesem Fall sollte das Ereignis LEAD gesendet werden.

Ist es möglich, das Initialisierungsscript mit einem "Zeiger" auf eine Javascript-Variable anzugeben, die beim Senden des LEAD-Ereignisses verwendet wird? Hilfeseite deutet darauf hin, aber alle Beispiele haben z.B. E-Mail-Parameter als einfacher Text oder sha256-Hash; weder als JS-Variable noch als Textzeiger auf einen.

Vom "Advanced Matching with the Pixel" help page:

diese Funktion aktivieren, ändern Sie die Standard-FB Pixelcodedaten in das Pixel init Aufruf zu übergeben.

fbq('init', '<FB_PIXEL_ID>', { 
    em: '{{_email_}}', 
    // Data will be hashed automatically via a dedicated function in FB pixel 
    ph: '{{_phone_number_}}', 
    fn: '{{_first_name_}}' 
    .... 
}) 

Im Beispiel oben, müssen Sie E-Mail ersetzen, phone_number, first_name mit den Namen der Variablen auf Ihrer Website, dass Erfassung dieser Daten.

Sagen wir, ich user_email Variable im gleichen Umfang wie fbq-init haben:

var user_email = ''; 

Später, nachdem das Formular abgeschickt wird, wird diese Variable wie

user_email = "[email protected]"; 

bestückt werden Wie soll ich Bezug auf die Variable in fbq? (1) Gefällt mir?

fbq('init', 123456, { em: '{{_user_email_}}' }); 

(2) Oder so?

fbq('init', 123456, { em: 'user_email' }); 

(3) Oder sollte ich schaffen es einfach mit der Variablen:

fbq('init', 123456, { em: user_email }); // nb: user_email === false when this is run 

(4) Oder sollte ich das Pixel ohne Anpassungsdaten initialisieren und später bereichern? (Wie?)

Eine seriöse Werbeagentur schickte mir Anweisungen mit dem Namen der Variablen wie in meinem Beispiel 2, aber die Hilfeseite deutet auf 1, ohne tatsächlich Beispiele aus der realen Welt zu liefern.


Ich habe versucht, alle Optionen 1-3, und es scheint Variablen erhalten in nachfolgenden fbq('track', …); Anrufe nach der Initialisierung nicht neu bewertet. Wenn user_email zu Beginn leer ist, enthält keines der Ereignisse Hash-Benutzerdaten.

Darüber hinaus auch wenn ich mit einer gültigen E-Mail user_email = "[email protected]"; (auch versucht, echte Domänen anstelle von Beispiel.com) nur Methode 3 wird funktionieren - aber wie erwartet, das ist nicht dynamisch, dh. wenn user_email ändert sich die Hashes nicht.

Es ist so, als ob es keine String-Variable Ersetzung zu Beginn gibt.

Wäre die eigentliche Frage: Wie reiche ich Benutzerdaten für erweiterte Anpassung nach der Pixelinitialisierung? Anstatt zu versuchen, die Initialisierung faul/dynamisch zu machen.

+1

(2) erfordert, dass tatsächliche Werte übergeben werden, keine Variablennamen. Wenn Sie möchten, dass der Pixelcode diese aus Variablen liest, müssen Sie (1) verwenden. Schlage vor, dass du die Chrome-Erweiterung für Pixel-Helper installierst, die beim Debuggen hilft. – CBroe

+0

Danke für Ihre Hilfe! Leider, wenn ich 'user_email = ''' und 'fbq ('init', 1, {em: '{{user_email_}}'});' initialisiere pixel; sende 'PageView'; Setzen Sie 'user_email' dann auf eine tatsächliche E-Mail; Dann sende 'Lead', ich kann sowohl von den Pixel-Helper- als auch den Developer-Tools sehen, dass * keine * gehashten Benutzerdaten mit * keinem * Event gesendet werden (sollte mit' Lead' gesendet werden). Wenn ich die E-Mail-Adresse beim Initialisieren des Pixels manuell festlege (zB. 'Fbq ('init', 1, {em: '[email protected]'});' Ich kann sehen, dass die Hash-E-Mail mit beiden Ereignissen gesendet wird. –

+0

Nicht sicher, an welchem ​​Punkt es den Wert dieser Variable erfassen soll Versuchen Sie, "user_email" mit einer E-Mail-Adresse von Anfang an zu initialisieren, bevor Sie die init-Methode aufrufen, um zu sehen, ob sich irgendetwas ändert. – CBroe

Antwort

1

Als Abhilfe kann ist es möglich, ein Lead Ereignis mit E-Mail-Benutzerdaten zu erzeugen, indem das Pixel (Bild) über Javascript Laden:

// here the user email is unknown, so PageView is generated without email 
fbq('init', 123456, {}); 
fbq('track', 'PageView'); 

// Later the form is submitted via ajax, so the user email is known 
$.ajax(…).done(function(data) { 
    // I decided to sha256 hash the email address in the backend and return it for the javascript handler 
    var pixel = document.createElement('img'); 
    pixel.src = 'https://www.facebook.com/tr/?id=123456&ev=Lead&ud[em]=' + data; 
    document.body.appendChild(pixel); 
    // confirmed by the Pixel helper Chrome extension, this does generate a valid tracking event 
    // (ironically, we're loading the noscript version via javascript) 
}); 

Natürlich eine reine fbq Version wäre wünschenswerter. Ich bin mir auch nicht der möglichen Nachteile bewusst, sollte es welche geben.

Verwandte Themen