2013-10-09 7 views
14

फायरिंग मैं अभी भी जावास्क्रिप्ट के लिए बहुत नया हूं, लेकिन मैं सोच रहा था कि वास्तव में "पुष्टि"/"धन्यवाद" पृष्ठ लोड किए बिना फेसबुक रूपांतरण पिक्सेल (नीचे) को आग लगाने का सबसे अच्छा तरीका क्या होगा?फेसबुक रूपांतरण पिक्सेल

<script type="text/javascript"> 
var fb_param = {}; 
fb_param.pixel_id = 'XXXXXXXXXXX'; 
fb_param.value = '0.00'; 
fb_param.currency = 'USD'; 
(function(){ 
    var fpw = document.createElement('script'); 
    fpw.async = true; 
    fpw.src = '//connect.facebook.net/en_US/fp.js'; 
    var ref = document.getElementsByTagName('script')[0]; 
    ref.parentNode.insertBefore(fpw, ref); 
})(); 
</script> 
<noscript><img height="1" width="1" alt="" style="display:none" 
src="https://www.facebook.com/offsite_event.php?id=XXXXXXXXXX&amp;value=0&amp;currency=USD" /></noscript> 

फेसबुक का कहना है कि हम अपने 'धन्यवाद पृष्ठ "है कि आगंतुकों के बाद उन्हें दिखाई परिवर्तित (एक फार्म भरना, एक खरीद कर, आदि) में इस प्लग चाहिए। हालांकि, हमारे कुछ रूप पॉपअप या सामग्री के बगल में साइडबार पर फॉर्म हैं जिन्हें हम नहीं चाहते हैं कि पाठकों को एक पुष्टिकरण पृष्ठ से दूर निर्देशित किया जाए।

Google Analytics के साथ, मैं _gaq.push (['_ trackPageview'] को फायर करके "अदृश्य" पृष्ठदृश्य बना सकता हूं; कोड जो GA को बता सकता है कि उसे उस अदृश्य पृष्ठदृश्य को लक्ष्य पूर्ण होने के रूप में गिनना चाहिए।

क्या ऐसा कुछ ऐसा है जो मेरी साइट को एफबी पिक्सेल को आग लगाने के लिए पर्याप्त सामान्य है?

उत्तर

13

संपादित करें: मैंने अपना कोड अपडेट किया है जैसा कि मैंने पहले उल्लेख किया था कि पहले काम नहीं किया था। @ फ्लैम्बिनो को इंगित करने के लिए धन्यवाद।

यह रूपांतरण पिक्सेल पास करने के लिए एक स्क्रिप्ट के बजाय पिक्सेल का उपयोग करके मेरा संशोधित उत्तर है। मैं संदर्भ How to track a Google Adwords conversion onclick? अतः पोस्ट:

<head> 
<script type="text/javascript"> 
function facebookConversionPixel(fb_pixel, fb_value){ 
    var image = new Image(1,1); 
    image.src = "//www.facebook.com/offsite_event.php?id=" + fb_pixel + "&amp;value=" + fb_value + "&amp;currency=USD"; 
} 
</script> 
</head> 

<body> 
<a href="#" onclick="facebookConversionPixel(123456,0.00);">FBCONV</a> 
</body> 
+0

धन्यवाद! यह सही ग्रहण करने के लिए मूल पिक्सेल के इस भाग को हटाने '' इसका मतलब है कि भले ही फेसबुक पिक्सेल जावास्क्रिप्ट हर पृष्ठ-अवलोकन पर लोड किया जाता है जब अनुभाग भरी हुई है, यह वास्तव में नहीं होगा है एक क्लिक से ऑनक्लिक कोड सक्रिय होने तक निकाल दिया जाता है? – dataprointhemaking

+0

यह सही है। मैंने '

+0

सब साफ़ करने के लिए धन्यवाद! – dataprointhemaking

5

बस अपनी पसंद के घटना में पूरे मूल कोड चलते हैं। फिर बस कोड के 1 भाग को बदलें। आपको जो करना होगा वह स्थानीय के बजाय fb_param वैश्विक बनाना है।

टिप्पणी

$('.button').click(function() { 
    window.fb_param = {}; // must be global by adding `window.` 
    fb_param.pixel_id = '123456789'; 
    fb_param.value = '0.00'; 
    fb_param.currency = 'USD'; 
    (function(){ 
     var fpw = document.createElement('script'); fpw.async = true; fpw.src = '//connect.facebook.net/en_US/fp.js'; 
     var ref = document.getElementsByTagName('script')[0]; 
     ref.parentNode.insertBefore(fpw, ref); 
    })(); 
}); 
8

अमेरिकन प्लान डॉक्स "How to track in-page events" से पर नीचे देखें: आधार कोड स्निपेट

के बाद स्थापित किया गया है, तो आप इस तरह के एक बटन के क्लिक के रूप में इन-पेज कार्यों, ट्रैक कर सकते हैं, के द्वारा एक HTML DOM तत्व पर विभिन्न ईवेंट हैंडलर पंजीकृत करके _fbq.push ('track') रूपांतरण पिक्सेल के लिए कॉल करें। उदाहरण के लिए:

function trackConversionEvent(val, cny) { 
    var cd = {}; 
    cd.value = val; 
    cd.currency = cny; 
    _fbq.push(['track', '<pixel_id>', cd]); 
} 
<button onClick="trackConversionEvent('10.00','USD');" /> 
0

मैं इस मुद्दे के समान तरह हो रही थी और मैं कई चलाना चाहते है पिक्सल कोड और किसी कारण मैं ट्रैक करने के लिए सक्षम नहीं था ट्रैक करने के लिए कहते हैं। मैंने जो किया है, वर्तमान पृष्ठ में मैंने अपने AJAX बटन सबमिट होने पर कॉल करने के लिए पाद लेख और जावास्क्रिप्ट फ़ंक्शन में पिक्सेल कोड जोड़ा है।

पहले एकाधिक रूपांतरण घटना

ट्रैक करने के लिए कैसे आधार कोड स्निपेट के बाद स्थापित किया गया है, तो आप कई बनाकर एक ही वेब पेज के भीतर कई रूपांतरण ट्रैक कर सकते फेसबुक प्रलेखन पेज

https://developers.facebook.com/docs/ads-for-websites/conversion-pixel-code-migration#multi-conv-events

को देखें _fbq.push ('track') प्रत्येक रूपांतरण पिक्सेल आईडी के लिए कॉल करता है। उदाहरण के लिए:

_fbq.push(['track','<pixel_id1>',{'value':'10.00','currency':'USD'}]); 
_fbq.push(['track','<pixel_id2>']); 

कैसे इन-पेज घटनाक्रम

आधार कोड स्निपेट के बाद स्थापित किया गया है, तो आप इस तरह के एक बटन के क्लिक के रूप में इन-पेज कार्यों, ट्रैक कर सकते हैं एक _fbq.push बनाकर ट्रैक करने के लिए ('ट्रैक') एक HTML DOM तत्व पर विभिन्न ईवेंट हैंडलर पंजीकृत करके रूपांतरण पिक्सेल के लिए कॉल करें।उदाहरण के लिए:

function trackConversionEvent(val, cny) { 
    var cd = {}; 
    cd.value = val; 
    cd.currency = cny; 
_fbq.push(['track', '<pixel_id>', cd]); 
} 
<button onClick="trackConversionEvent('10.00','USD');" /> 

इसके अलावा, फेसबुक पिक्सेल ट्रैकिंग कोड क्रोम एडऑन जोड़ सकते हैं और फेसबुक पिक्सेल सहायक पेज देखें: https://developers.facebook.com/docs/ads-for-websites/pixel-troubleshooting

मेरे नीचे समाधान देखें/जवाब देने

वर्तमान पृष्ठ में

फेसबुक ट्रैकिंग कोड (function() { वर _fbq = window._fbq || (window._fbq = []); अगर (_fbq.loaded) { वर fbds = document.createElement (जैसे स्क्रिप्ट '); fbds.async = सत्य; fbds.src = '//connect.facebook.net/en_US/fbds.js'; var s = document.getElementsByTagName ('script') [0]; s.parentNode.insertBefore (fbds, s); _fbq.loaded = सत्य; } })(); window._fbq = window._fbq || []; window._fbq.push (['ट्रैक', 'yourid', {'value': '1.00', 'मुद्रा': 'USD'}]);

<!-- Facebook Conversion --> 
    <script>(function() { 
    var _fbq = window._fbq || (window._fbq = []); 
    if (!_fbq.loaded) { 
    var fbds = document.createElement('script'); 
    fbds.async = true; 
    fbds.src = '//connect.facebook.net/en_US/fbds.js'; 
    var s = document.getElementsByTagName('script')[0]; 
    s.parentNode.insertBefore(fbds, s); 
    _fbq.loaded = true; 
    } 
    })(); 
    window._fbq = window._fbq || []; 
    window._fbq.push(['track', 'yourid', {'value':'1.00','currency':'USD'}]); 
    </script> 

और जावास्क्रिप्ट कोड जब ajax प्रपत्र सबमिट बटन पर क्लिक करें या

<script> 
function trackConversionEvent(val, cny) { 
var cd = {}; 
cd.value = val; 
cd.currency = cny; 
_fbq.push(['track', 'yourid1', cd]); 
_fbq.push(['track', 'yourid1', cd]); 

} 
</script> 

और कॉल समारोह जब ajax बुलाया

jQuery(form).ajaxSubmit({ 

    type:"POST", 

    data: $(form).serialize(), 

    url:"process.php", 

    success: function() { 
    **trackConversionEvent**('1.00','USD'); 
    } 
    ...... 
0

फेसबुक उनके पिक्सल अपडेट किया गया है कॉल करने के लिए है, तो मैंने कॉल करने के लिए अपना खुद का कस्टम फ़ंक्शन बनाया है जो फेसबुक पर सबमिट करने के लिए गतिशील रूप से पैरामीटर रखेगा।

चरण 1. प्रत्येक पृष्ठ पर, पृष्ठ पृष्ठ के तत्व में सुनिश्चित करें।

चरण 2. मैंने बनाया गया यह कस्टम फ़ंक्शन जोड़ें (यह थोड़ा सा वर्बोज़ है क्योंकि यह पहला ड्राफ्ट है, इसलिए मुझे यकीन है कि आपके लाभ के लिए इसे अनुकूलित करने के तरीके हैं)।

triggerFacebookPixel: function(type, price, product_id, product_name, product_category, num_items) { 
    //See https://developers.facebook.com/docs/ads-for-websites/pixel-events/v2.8#events for documentation 
    //type = "ViewContent"|"AddToCart"|"Search"|"AddToWishlist"|"InitiateCheckout"|"AddPaymentInfo"|"Purchase"|"Lead"|"CompleteRegistration" 
    //product_id = Numeric Product ID. String or Integer accepted for single product events, or an array of integers for multiple products. 
    //price = Decimal/Float number of individual product's price or total price paid in conversion, or the user's status for 'CompleteRegistration' 
    //product_name = Optional. String of individual product's name or string of search query 
    //product_category = Optional. String of product category, hierarchy's accepted. E.g. "Clothing > Shirts > Men's > T-Shirts" 
    //num_items = Optional. Total number of products. 
    var data = { 
     value: typeof(price) == 'string' ? parseFloat(price) : price, 
     currency: 'USD' 
    } 
    switch (type) { 
     case 'Search': 
      data.content_ids = product_id; 
      data.search_string = product_name; 
      if (product_category !== undefined && product_category != '') { 
       data.content_category = product_category; 
      } 
      break; 
     case 'Lead': 
      data.content_name = product_name; 
      data.content_category = product_category; 
      break; 
     case 'CompleteRegistration': 
      data.status = product_id; 
      data.content_name = product_name; 
      break; 
     default: 
      //Product Specific Calls 
      //ViewContent|AddToCart|AddToWishlist|InitiateCheckout|AddPaymentInfo|Purchase 
      if (num_items == 1) { 
       data.content_ids = [typeof(product_id) == 'string' ? parseInt(product_id) : product_id]; 
       data.content_category = product_category; 
       data.content_name = product_name; 
      } else { 
       data.content_ids = product_id; 
      } 
      //"num_items" is only a parameter used in these two types 
      if (type == 'InitiateCheckout' || type == 'Purchase') { 
       data.num_items = num_items 
      } 
      //"content_type" is only a parameter used in these three types 
      if (type == 'Purchase' || type == 'AddToCart' || type == 'ViewContent') { 
       data.content_type = 'product'; 
      } 
      break; 
    } 
    fbq('track', type, data); 
} 

चरण 3. कॉल कि उचित मानकों के साथ कार्य करते हैं।

आपके धन्यवाद के लिए आप खरीद के बाद पॉप-अप करते हैं, यदि उपयोगकर्ता एकाधिक आइटमों के विपरीत 1 आइटम खरीदता है तो पिक्सेल अलग से निकाल दिया जाता है। असल में, फेसबुक उत्पाद नामों और श्रेणियों के मानकों को स्वीकार करता है यदि यह केवल एक उत्पाद है, लेकिन यदि वे एकाधिक उत्पाद हैं तो उन पैरामीटर को स्वीकार नहीं करते हैं।

  • उत्पाद नाम:: "मेरे बढ़िया प्रभावशाली टी-शर्ट"
  • उत्पाद आईडी: 182
  • निम्न उदाहरण के लिए, यहाँ एक उपयोगकर्ता 1 आइटम की खरीद के कुछ नमूना उत्पाद डेटा है

  • उत्पाद श्रेणी: "वस्त्र> शर्ट्स> टी-शर्ट्स"
  • शिपिंग की कुल राशि (शिपिंग/हैंडलिंग & कर सहित): $ 10।84

और यहाँ समारोह आप पुष्टिकरण पर कॉल करेंगे:

triggerFacebookPixel('Purchase', 10.84, 182, 'My Super Awesome T-Shirt', 'Clothing > Shirts > T-Shirts', 1); 

जब कोई उपयोगकर्ता खरीद कई आइटम, पिक्सेल इसे दूसरे तरीके से हैंडल, उत्पाद नाम और श्रेणियों को छोड़कर और केवल भेजने उनकी आईडी है।

  • उत्पाद ID के: तो चलो हमारे इन दोनों वस्तुओं की खरीदारी करने का नाटक करते हैं 182 और 164 (शर्ट और कुछ और)
  • कुल राशि उपयोगकर्ता भुगतान (शिपिंग सहित/& कर से निपटने): $ 24.75
,

triggerFacebookPixel('Purchase', 24.75, [182, 164], '', '', 2); 

अन्य standard events as defined by Facebook उत्पादों के बारे में के लिए आप "Vie के लिए यह एक ही समारोह का उपयोग कर सकते हैं:

इस तरह आप समारोह का उपयोग करना चाहते है WContent "," AddToCart "," AddToWishlist "," आरंभ करें चेकआउट ", और" AddPaymentInfo "। बस अपनी कॉल में से किसी भी कुंजी शब्द में "खरीद" बदलें।

अन्य घटनाएं आवश्यक रूप से उत्पादों से संबंधित नहीं हैं: "लीड", "सर्च", और "पूर्ण पंजीकरण"। आप अभी भी इस तरह के उन महत्वपूर्ण शब्दों के लिए इस फ़ंक्शन का उपयोग कर सकते हैं।

उदाहरण: उपयोगकर्ता की खोज "नीले रंग की शर्ट" के लिए:

triggerFacebookPixel('Search', 0, [], 'blue shirts'); 

आप उपयोगकर्ता की खोज समारोह में एक उत्पाद श्रेणी पारित करने के लिए चाहते हैं, तो आपको लगता है कि पारित कर सकते हैं अंत में एक स्ट्रिंग के रूप में। मैं उपयोग-मामले परिदृश्य के बारे में नहीं सोच सकता जहां आप जान लेंगे कि उपयोगकर्ता किस श्रेणी की खोज कर रहा है। जब तक आप इस घटना का उपयोग तब तक नहीं करते जब उत्पाद खोज परिणामों में दिखाई देता है और उपयोगकर्ता ने खोज पृष्ठ से उस पर क्लिक किया। यह हो सकता है कि यह फ़ंक्शन वास्तव में क्या है लेकिन दस्तावेज़ीकरण उस पर बिल्कुल स्पष्ट नहीं है। यदि आपके लिए यह मामला है, तो खोज परिणाम पृष्ठ से क्लिक किए गए उत्पाद के वास्तविक मान (मूल्य और उत्पाद आईडी, क्रमशः) में 0 और खाली सरणी को बदलें, और अंतिम श्रेणी के रूप में अपनी श्रेणी को स्ट्रिंग के रूप में जोड़ें खोज स्ट्रिंग के बाद पैरामीटर।

उदाहरण: उपयोगकर्ता एक रूप है कि उन्हें अपने न्यूज़लेटर के लिए साइन अप प्रस्तुत:

triggerFacebookPixel('CompleteRegistration', 0, 'Signed Up', 'Newsletter'); 

फेसबुक के प्रलेखन कहा गया है कि "CompleteRegistration" जब एक पंजीकरण फार्म पूरा हो गया है इस्तेमाल किया जाना चाहिए, उदा एक सेवा के लिए पूर्ण सदस्यता/साइनअप। "साइन अप" स्ट्रिंग "स्थिति" पैरामीटर है और "न्यूजलेटर" स्ट्रिंग "content_name" पैरामीटर है।

उदाहरण: उपयोगकर्ता ने एक फॉर्म सबमिट किया है जो आपके द्वारा ऑफ़र की जाने वाली कुछ सेवा के 30-दिवसीय परीक्षण के लिए साइन अप किया गया है (इसलिए वे अब लीड) हैं, जहां सेवा का नाम "नि: शुल्क 30-दिवसीय परीक्षण" है "श्रेणी के अंतर्गत" सेवा "और यह उप-श्रेणी में है" नि: शुल्क परीक्षण मेरी सेवाएं ":

triggerFacebookPixel('Lead', 0, 'Free 30-Day Trial Service', 'My Services > Free Trials'); 

फेसबुक के प्रलेखन कहा गया है कि" नेतृत्व "जब एक संकेत ऊपर पूरा हो गया है है, जैसे परीक्षण के लिए साइन अप, मूल्य निर्धारण पर क्लिक करें। मुझे लगता है कि सेवा का नाम पैरामीटर "content_name" है और सेवा की श्रेणी "content_category" पैरामीटर है।

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