2016-09-21 3 views
6

मेरे पास एक-पेजर अभियान साइट है जो "उन्नत मिलान" के साथ फेसबुक लक्ष्यीकरण के लिए PageView और LEAD ईवेंट डेटा एकत्र करनी चाहिए।फेसबुक पिक्सेल को डेटा के साथ कैसे शुरू किया जाए जो प्रारंभिकरण के बाद पॉप्युलेट किया जाएगा?

PageView के लिए, मुझे पेज लोड पर पिक्सेल को प्रारंभ करने की आवश्यकता है। उन्नत मिलान के लिए, मुझे प्रारंभिक स्क्रिप्ट के लिए उपयोगकर्ता डेटा प्रदान करने की आवश्यकता है - हालांकि, उपयोगकर्ता के पास डेटा जमा करने के बाद केवल उपयोगकर्ता डेटा उपलब्ध है, जो तब होता है जब LEAD ईवेंट भेजा जाना चाहिए।

क्या LEAD ईवेंट भेजते समय उपयोग किए जाने वाले जावास्क्रिप्ट चर के लिए "पॉइंटर" के साथ प्रारंभिक स्क्रिप्ट प्रदान करना संभव है? सहायता पृष्ठ इस पर संकेत देता है, लेकिन सभी उदाहरणों के उदाहरण हैं। सादा पाठ या sha256 हैश के रूप में प्रदान किया गया ईमेल पैरामीटर; जेएस चर के रूप में नहीं और न ही एक पाठक सूचक के रूप में।

"Advanced Matching with the Pixel" help page से:

इस सुविधा को सक्षम करने के लिए, पिक्सेल init कॉल में डेटा पारित करने के लिए डिफ़ॉल्ट अमेरिकन प्लान पिक्सेल कोड को संशोधित।

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_}}' 
    .... 
}) 

उपरोक्त उदाहरण में, आप अपनी वेबसाइट है कि कब्जा इस डेटा के चर के नाम के साथ ईमेल, PHONE_NUMBER, first_name को बदलने के लिए की आवश्यकता होगी।

मान लीजिए कि मैं fbq-init रूप में एक ही दायरे में user_email चर करते हैं:

var user_email = ''; 

बाद में, के बाद फ़ॉर्म सबमिट इस चर

user_email = "[email protected]"; 

तरह से भरी हुई होगी मैं कैसे करना चाहिए fbq में चर का संदर्भ लें? (1) इस तरह?

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

(2) या इस तरह?

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

(3) या मैं यह बस चर के साथ प्रदान करना चाहिए:

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

(4) या मैं किसी भी मिलान डेटा के बिना पिक्सेल प्रारंभ करना चाहिए और बाद में इसे बेहतर बनाने के? (कैसे?)

एक प्रतिष्ठित विज्ञापन एजेंसी ने मुझे मेरे उदाहरण 2 में वैरिएबल का नाम सबमिट करने के निर्देशों के साथ भेजा, लेकिन सहायता पृष्ठ वास्तव में किसी वास्तविक दुनिया के उदाहरण प्रदान किए बिना 1 पर संकेत देता है।


मैं सभी विकल्पों को 1-3 की कोशिश की, और यह चर हो आरंभीकरण के बाद बाद में fbq('track', …); कॉल में फिर से मूल्यांकन नहीं किया जाएगा लगता है। यदि user_email प्रारंभ करने के लिए खाली है, तो किसी भी ईवेंट में शेड किए गए उपयोगकर्ता डेटा शामिल नहीं होंगे।

इसके अलावा यदि मैं एक वैध ईमेल user_email = "[email protected]"; से शुरू करता हूं (उदाहरण के बजाय वास्तविक डोमेन भी कोशिश करता हूं।कॉम) केवल विधि 3 काम करेगा - लेकिन, जैसा कि अपेक्षित है, यह गतिशील नहीं है, यानी। यदि user_email हैश बदल नहीं पाएंगे।

ऐसा लगता है कि कोई स्ट्रिंग-वेरिएबल प्रतिस्थापन शुरू करने के लिए नहीं है।

अधिक उचित प्रश्न होगा: पिक्सेल प्रारंभिक के बाद उन्नत मिलान के लिए मैं उपयोगकर्ता डेटा कैसे सबमिट करूं? प्रारंभिकरण आलसी/गतिशील बनाने की कोशिश करने के बजाय

+1

(2) वास्तविक मानों को पारित करने की आवश्यकता है, परिवर्तनीय नाम नहीं। यदि आप पिक्सेल कोड को चर से इसे पढ़ना चाहते हैं, तो आपको (1) का उपयोग करने की आवश्यकता है। सुझाव है कि आप पिक्सेल सहायक क्रोम एक्सटेंशन इंस्टॉल करें, जो डिबगिंग के साथ मदद करता है। – CBroe

+0

आपकी मदद के लिए धन्यवाद! अफसोस की बात है, जब मैं 'user_email = '' 'सेट करता हूं और' fbq ('init', 1, {em: '{{_user_email_}}'} का उपयोग करता हूं); 'पिक्सेल आरंभ करने के लिए; 'पृष्ठ दृश्य' भेजें; फिर 'user_email' को एक वास्तविक ईमेल पर सेट करें; फिर 'लीड' भेजें, मैं पिक्सेल सहायक और डेवलपर टूल दोनों से देख सकता हूं कि * नहीं * उपयोगकर्ता डेटा को * न तो * ईवेंट ('लीड' के साथ भेजा जाना चाहिए) के साथ भेजा जा रहा है। यदि मैं पिक्सेल (यानी 'fbq (' init ', 1, {em:' [email protected] '} प्रारंभ करते समय मैन्युअल रूप से ईमेल पता सेट करता हूं);' मैं देख सकता हूं कि हैश किए गए ईमेल दोनों घटनाओं के साथ भेजा गया है। –

+0

यह सुनिश्चित नहीं है कि उस चर के मान को किस बिंदु पर ले जाना है। शुरुआत में किसी ईमेल पते के साथ 'user_email' को प्रारंभ करने का प्रयास करें, इससे पहले कि आप इनिट विधि को कॉल करें, यह देखने के लिए कि क्या कुछ भी बदलता है। – CBroe

उत्तर

1

एक समाधान यह जावास्क्रिप्ट के माध्यम से पिक्सेल (छवि) लोड करके ईमेल उपयोगकर्ता डेटा के साथ एक Lead घटना उत्पन्न करने के लिए संभव है के रूप में:

// 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) 
}); 
बेशक

, एक शुद्ध fbq संस्करण अधिक वांछनीय होगा। इसके अलावा, मैं अभी तक संभावित कमियों से अनजान हूं, क्या कोई होना चाहिए।

संबंधित मुद्दे