सोशल इंटरैक्शन - वेब ट्रैकिंग (ga.js)

इस दस्तावेज़ में बताया गया है कि Google से बाहर के नेटवर्क (जैसे, Facebook और Twitter) पर इंटरैक्शन मेट्रिक पाने के लिए, Google Analytics का इस्तेमाल कैसे किया जाता है. अगर आप साइट के मालिक हैं, कॉन्टेंट मैनेजमेंट प्लग-इन डेवलपर हैं या सोशल नेटवर्क ऑपरेटर हैं, तो सोशल मीडिया पर शेयर करने की सुविधा वाले बटन के लिए, अपने-आप होने वाली सोशल इंटरैक्शन रिपोर्टिंग उपलब्ध कराने के लिए, इस दस्तावेज़ का इस्तेमाल करें.

शुरुआती जानकारी

डिफ़ॉल्ट रूप से, Google Analytics +1 बटन के लिए इंटिग्रेट की गई रिपोर्टिंग देता है. इसका मतलब यह है कि अगर आपने एक ही पेज पर ga.js और +1 बटन लागू किया है, तो सभी +1 सोशल इंटरैक्शन अपने-आप रिपोर्ट हो जाएंगे. समस्या हल करने की सलाह के साथ-साथ, +1 Analytics के बारे में ज़्यादा जानकारी के लिए, सहायता केंद्र में सोशल Analytics के बारे में जानकारी देखें.

Facebook या Twitter जैसे दूसरे नेटवर्क के लिए सोशल इंटरैक्शन के आंकड़े और रिपोर्टिंग पाने के लिए, आपको हर नेटवर्क बटन के साथ Google Analytics को इंटिग्रेट करना होगा. सोशल प्लग-इन ऐनलिटिक्स की मदद से, रिकॉर्ड किए गए इंटरैक्शन की संख्या, Facebook "पसंद" से लेकर Twitter "ट्वीट" तक की हो सकती है. हालांकि, इवेंट ट्रैकिंग सामान्य कॉन्टेंट इंटरैक्शन को भी ट्रैक कर सकती है, लेकिन सोशल Analytics सोशल इंटरैक्शन को रिकॉर्ड करने के लिए एक जैसा फ़्रेमवर्क उपलब्ध कराता है. इससे, Google Analytics के रिपोर्ट उपयोगकर्ताओं को अलग-अलग नेटवर्क के सोशल नेटवर्क इंटरैक्शन की तुलना करने के लिए, रिपोर्ट का एक जैसा सेट मिलता है.

Analytics को Facebook और Twitter के बटन के साथ इंटिग्रेट करने के कामकाजी उदाहरण के लिए, सोशल Analytics का सैंपल कोड देखें.

सामाजिक Analytics सेट अप करना

सोशल इंटरैक्शन के लिए ट्रैकिंग सेट अप करने के लिए, आपको _trackSocial तरीके का इस्तेमाल करना होगा, जो Google Analytics को सोशल इंटरैक्शन का डेटा भेजता है. जब कोई उपयोगकर्ता सोशल इंटरैक्शन पूरा कर लेता है, तब इस तरीके को कॉल किया जाना चाहिए. हर सोशल नेटवर्क एक अलग तरीके का इस्तेमाल करके यह तय करता है कि सोशल इंटरैक्शन कब होगा. आम तौर पर, इसके लिए उस नेटवर्क बटन के लिए एपीआई से इंटिग्रेट करना ज़रूरी होता है.

सोशल Analytics को इंटिग्रेट करने से जुड़ी खास जानकारी अलग-अलग सोशल नेटवर्क के हिसाब से अलग-अलग होती है. इसलिए, इस गाइड का बाकी हिस्सा, इनमें से हर नेटवर्क के लिए सोशल प्लग-इन Analytics सेट अप करने के सबसे सही तरीक़ों के बारे में बताता है. हमारा सुझाव है कि नेटवर्क के हिसाब से उसे लागू करने का तरीका जानने के लिए, हर नेटवर्क के लिए डेवलपर दस्तावेज़ देखें.

यहां _trackSocial तरीके की जानकारी दी गई है:

_gaq.push(['_trackSocial', network, socialAction, opt_target, opt_pagePath]);

जहां पैरामीटर दिखाते हैं:

  • network

    ज़रूरी है. ट्रैक की जा रही सोशल नेटवर्क की जानकारी देने वाली स्ट्रिंग (उदाहरण के लिए, Facebook, Twitter, LinkedIn).

  • socialAction

    ज़रूरी है. ट्रैक की जा रही सोशल ऐक्शन को दिखाने वाली स्ट्रिंग (उदाहरण के लिए, पसंद करना, शेयर करना, ट्वीट करना).

  • opt_target

    ज़रूरी नहीं. कार्रवाई पाने वाले यूआरएल (या संसाधन) को दिखाने वाली स्ट्रिंग. उदाहरण के लिए, अगर कोई उपयोगकर्ता साइट के किसी पेज पर पसंद करें बटन पर क्लिक करता है, तो हो सकता है कि opt_target को पेज के टाइटल पर सेट किया जाए या कॉन्टेंट मैनेजमेंट सिस्टम में उस पेज की पहचान करने के लिए इस्तेमाल किया जाने वाला आईडी डालें. कई मामलों में, आपने जिस पेज को पसंद किया है उसी पर आप हैं. इसलिए, अगर यह पैरामीटर undefined है या इसे हटा दिया गया है, तो ट्रैकिंग कोड डिफ़ॉल्ट रूप से document.location.href का इस्तेमाल करता है.

  • opt_pagePath

    ज़रूरी नहीं. उस पाथ (पैरामीटर के साथ) के हिसाब से पेज को दिखाने वाली स्ट्रिंग जिससे कार्रवाई हुई है. उदाहरण के लिए, अगर आपने https://developers.google.com/analytics/devguides/ पर पसंद करें बटन पर क्लिक किया है, तो opt_pagePath को /analytics/devguides पर सेट किया जाना चाहिए. आम तौर पर, पेज का पाथ ही सोशल मीडिया से जुड़ी गतिविधि का स्रोत होता है. इसलिए, अगर यह पैरामीटर undefined है या इसे शामिल नहीं किया गया है, तो ट्रैकिंग कोड डिफ़ॉल्ट रूप से location.pathname और location.search का इस्तेमाल करता है. आम तौर पर, आपको सिर्फ़ तब वर्चुअल पेज व्यू ट्रैक करने की ज़रूरत होती है, जब Google Analytics _trackPageview वाले तरीके का इस्तेमाल करके, पेज के पाथ पैरामीटर में बदलाव करके वर्चुअल पेज व्यू को ट्रैक किया जा रहा हो.

Facebook की कार्रवाइयां

Facebook JavaScript SDK टूल के मुताबिक, अपने पेज पर पसंद करें बटन को सेट अप करने का सबसे आसान तरीका यह है कि आप इस कोड का इस्तेमाल करें:

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<fb:like></fb:like>

पसंद

Google Analytics की मदद से पसंद रिकॉर्ड करने के लिए, Facebook के edge.create इवेंट की सदस्यता लें और Google Analytics ट्रैकिंग कोड को एक्ज़ीक्यूट करने के लिए, कॉलबैक फ़ंक्शन बनाएं.

FB.Event.subscribe('edge.create', function(targetUrl) {
  _gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);
});

जब कोई उपयोगकर्ता आपके पेज को पसंद करता है, तो कॉलबैक फ़ंक्शन एक्ज़ीक्यूट हो जाता है और उसे पसंद किए जा रहे संसाधन का यूआरएल मिलता है. इसके बाद, संसाधन को _trackSocial तरीके की वैल्यू के तौर पर पास किया जाता है, ताकि Google Analytics, नेटवर्क, कार्रवाई, और यूआरएल पसंद किए जाने पर रिपोर्ट कर सके.

नापसंद किया गया

Facebook API से आपको दूसरे दिलचस्प इवेंट की सदस्यता भी लेने में मदद मिलती है, जैसे कि पसंद नहीं किए गए जैसे इवेंट.

FB.Event.subscribe('edge.remove', function(targetUrl) {
  _gaq.push(['_trackSocial', 'facebook', 'unlike', targetUrl]);
});

कितनी बार शेयर किया गया

शेयर करने की सुविधा के लिए भी सदस्यता ली जा सकती है.

FB.Event.subscribe('message.send', function(targetUrl) {
  _gaq.push(['_trackSocial', 'facebook', 'send', targetUrl]);
});

Twitter ट्वीट

ट्वीट बटन दस्तावेज़ और वेब इंटेंट JavaScript इवेंट के मुताबिक, अपने पेज पर twitter बटन लागू करने और लोगों के इंटरैक्शन का पता लगाने के लिए, इस कोड का इस्तेमाल करें :

<a href="http://developers.google.com/analytics" class="twitter-share-button" data-lang="en">Tweet</a>
<script type="text/javascript" charset="utf-8">
  window.twttr = (function (d,s,id) {
    var t, js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
    js.src="//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
    return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
  }(document, "script", "twitter-wjs"));
</script>

Google Analytics की मदद से ट्वीट बटन के इवेंट ट्रैक करने के लिए, आपको Twitter के वेब इंटेंट JavaScript इवेंट का इस्तेमाल करना होगा और कॉलबैक फ़ंक्शन को Intent Event से बाइंड करना होगा. इवेंट बाइंडिंग को कॉलबैक फ़ंक्शन में रैप करना ज़रूरी है. इससे यह पक्का किया जा सकता है कि बाइंडिंग इवेंट से पहले सब कुछ लोड हो गया है.

function trackTwitter(intent_event) {
  if (intent_event) {
    var opt_pagePath;
    if (intent_event.target && intent_event.target.nodeName == 'IFRAME') {
          opt_target = extractParamFromUri(intent_event.target.src, 'url');
    }
    _gaq.push(['_trackSocial', 'twitter', 'tweet', opt_pagePath]);
  }
}

//Wrap event bindings - Wait for async js to load
twttr.ready(function (twttr) {
  //event bindings
  twttr.events.bind('tweet', trackTwitter);
});

जब कोई उपयोगकर्ता ट्वीट करता है, तो कॉलबैक फ़ंक्शन को एक ऑब्जेक्ट मिलता है. आम तौर पर, इसका इस्तेमाल ट्वीट किए जा रहे संसाधन का यूआरएल पाने के लिए किया जा सकता है. Twitter JavaScript कोड लोड होने के बाद, यह जानकारी वाले ट्वीट के लिंक को iframe में बदल देता है. साथ ही, ट्वीट किए गए यूआरएल को कोड में बदला जाता है और iframe के यूआरएल में क्वेरी पैरामीटर के तौर पर जोड़ा जाता है. हमारे कॉलबैक को पास किए गए इवेंट ऑब्जेक्ट में, इस iframe का रेफ़रंस है. हम इसका इस्तेमाल, ट्वीट किए जा रहे संसाधन का यूआरएल पाने के लिए कर सकते हैं.

ऊपर दिया गया कॉलबैक फ़ंक्शन यह पक्का करता है कि iframe रेफ़रंस, वाकई एक iframe है. इसके बाद, url क्वेरी पैरामीटर को देखकर, ट्वीट किए जा रहे संसाधन को एक्सट्रैक्ट करने की कोशिश करता है.

यूआरआई से क्वेरी पैरामीटर एक्सट्रैक्ट करने के लिए, फ़ंक्शन का एक उदाहरण यहां दिया गया है:

function extractParamFromUri(uri, paramName) {
  if (!uri) {
    return;
  }
  var regex = new RegExp('[\\?&#]' + paramName + '=([^&#]*)');
  var params = regex.exec(uri);
  if (params != null) {
    return unescape(params[1]);
  }
  return;
}

अगर पैरामीटर, क्वेरी स्ट्रिंग में मौजूद होता है, तो उसे दिखाया जाता है. अगर कोई पैरामीटर मौजूद नहीं है, तो फ़ंक्शन undefined दिखाता है, जिसे _trackSocial तरीके को पास किया जाता है. इस वजह से, तरीके का व्यवहार डिफ़ॉल्ट हो जाता है.

इंटिग्रेशन के सबसे सही तरीके

कई साइटें, कॉन्टेंट मैनेजमेंट प्लगिन का इस्तेमाल करके सोशल मीडिया के बटन जोड़ती हैं. अगर आप ऐसे प्लग इन के लेखक हैं, तो हमारा सुझाव है कि आप सोशल प्लग-इन Analytics को इंटिग्रेट करें, ताकि ये इंटरैक्शन अपने-आप रिकॉर्ड हो जाएं. इसी तरह, अगर आप किसी सोशल नेटवर्क के डेवलपर हैं, तो आपके पास सोशल Analytics के साथ इंटिग्रेट करके, उपयोगकर्ताओं के लिए Google Analytics में अपने सोशल नेटवर्क इंटरैक्शन को ट्रैक करना आसान हो सकता है.

आपकी सहायता के लिए, इस सेक्शन में Social प्लग-इन Analytics को इंटिग्रेट करने के सबसे सही तरीके बताए गए हैं, ताकि आपका प्रॉडक्ट या कॉन्टेंट मैनेजमेंट सिस्टम सोशल इंटरैक्शन को अपने-आप ट्रैक कर सके. अगर आपको इन सभी सबसे सही तरीकों के काम करने वाले उदाहरण देखने हैं, तो सोशल प्लग-इन Analytics का सैंपल कोड देखें.

_gaq सूची को इंस्टैंशिएट करना और उसका इस्तेमाल करना

Google Analytics ट्रैकिंग कोड के सबसे नए वर्शन को, सिंक्रोनस और एसिंक्रोनस दोनों तरीके से लोड किया जा सकता है. डेवलपर उन तरीकों को कॉल कर सकें जो अभी तक लोड नहीं हुए हैं, इसके लिए Google Analytics एक कमांड सूची _gaq देता है. इसकी मदद से, ट्रैकिंग के किन तरीकों को _gaq.push(); में पुश किया जा सकता है.

ट्रैकिंग कोड लोड होने के बाद, सूची में मौजूद सभी निर्देश लागू हो जाते हैं. अपने प्लग-इन या प्रॉडक्ट के साथ Google Analytics JavaScript ट्रैकिंग कोड को इंटिग्रेट करते समय, आपको हमेशा यह पक्का करना चाहिए कि यह कमांड सूची इंस्टैंशिएट हो और आपका इंटिग्रेशन इस अरे में _trackSocial कमांड भेजे.

var _gaq = _gaq || [];

इससे इस बात का पूरा भरोसा मिलता है कि इस तरीके को कॉल किया जाएगा. इस बात से कोई फ़र्क़ नहीं पड़ता कि वेबसाइट पाने वाले पेज पर ट्रैडिशनल या एसिंक्रोनस ट्रैकिंग कोड स्निपेट का इस्तेमाल किया गया है या नहीं.

उपयोगकर्ता कॉन्फ़िगरेशन

अगर आप एक ऐसा प्लग-इन डेवलप कर रहे हैं जो सोशल प्लग-इन Analytics को इंटिग्रेट करता है, तो आपको यहां दिए गए विकल्प देने पर विचार करना चाहिए, जिनकी मदद से उपयोगकर्ता आपके प्लग इन का इस्तेमाल करते समय सेट कर सकें:

वैकल्पिक पेज पाथ पैरामीटर सेट करना_trackSocial तरीके का आखिरी पैरामीटर, उस मौजूदा यूआरएल को बदलना होता है जिससे सोशल इंटरैक्शन हुआ था. अंतिम लक्ष्य पेज ट्रैकिंग और सोशल प्लग-इन Analytics के बीच एक ही URL को रिपोर्ट करना है. कुछ उपयोगकर्ता, पेज व्यू ट्रैकिंग की मदद से ट्रैक किए जा रहे डिफ़ॉल्ट पेज के यूआरएल को बदल सकते हैं. इसलिए, उन्हें भी सोशल प्लग-इन Analytics में यूआरएल को बदलने का कोई तरीका अपनाना होगा, ताकि सही रिपोर्टिंग मिलती रहे.

यहां दिए गए उदाहरण में बताया गया है कि उपयोगकर्ताओं को ये विकल्प कैसे सेट करने की अनुमति दी जा सकती है. साथ ही, यह भी बताया गया है कि आपके कोड से इन विकल्पों को कैसे सेट किया जा सकता है.

// Create a function for a user to call to pass in the options.
function trackFacebook(opt_pagePath) {
  try {
    if (FB && FB.Event && FB.Event.subscribe) {
      FB.Event.subscribe('edge.create', function(targetUrl) {
        _gaq.push(['_trackSocial', 'facebook', 'like',
            opt_target, opt_pagePath]);
      });
    }
  } catch(e) {}
}

ऊपर दिए गए उदाहरण में, अगर trackFacebook फ़ंक्शन को opt_pagePath पैरामीटर सेट के साथ कॉल किया गया है, तो डिफ़ॉल्ट पेज के पाथ की वैल्यू को पैरामीटर के सप्लाई पाथ से ओवरराइट कर दिया जाएगा. ऐसा न होने पर, उस पैरामीटर की वैल्यू undefined पर सेट की जाएगी. और Google Analytics ट्रैकिंग कोड तय नहीं किए गए पैरामीटर के लिए डिफ़ॉल्ट वैल्यू का इस्तेमाल करेगा.

ध्यान दें: इस उदाहरण में, कुछ जांच भी जोड़ी गई हैं, ताकि यह पक्का किया जा सके कि Facebook API के लोड न होने पर, स्क्रिप्ट की कोई गड़बड़ी न हो. ज़िम्मेदार डेवलपर के तौर पर, आपको यह पक्का करना चाहिए कि आप गड़बड़ियों को सही तरीके से ठीक करें.

एक से ज़्यादा ट्रैकर

Google Analytics के कुछ उपयोगकर्ता, अपने ट्रैकिंग ऑब्जेक्ट को नाम देते हैं, ताकि एक ही पेज पर मौजूद कई ट्रैकर में अंतर किया जा सके. हम एक ही वेबसाइट के पेज पर, कई ट्रैकर के इस्तेमाल को बढ़ावा नहीं देते हैं. हालांकि, आपको कई ट्रैकर इस्तेमाल करने का सुझाव भी दिया जा सकता है.

नीचे एक उदाहरण दिया गया है, जिसमें हर ट्रैकर ऑब्जेक्ट के लिए, _trackSocial तरीके को दोहराने और उसे कॉल करने का तरीका बताया गया है. यह _getTrackers तरीके का इस्तेमाल करता है, जो पेज पर मौजूद सभी ट्रैकर ऑब्जेक्ट का अरे दिखाता है.

इस उदाहरण में, जब Facebook इवेंट ट्रिगर होता है, तो हर ट्रैकर ऑब्जेक्ट के लिए _trackSocial तरीके को Google Analytics की कमांड सूची _gaq में डाला जाता है.

getSocialActionTrackers = function(network, socialAction, opt_target, opt_pagePath) {
  return function() {
    var trackers = _gat._getTrackers();
    for (var i = 0, tracker; tracker = trackers[i]; i++) {
      tracker._trackSocial(network, socialAction, opt_target, opt_pagePath);
    }
  };
}

function trackFacebook(opt_pagePath) {
  try {
    if (FB && FB.Event && FB.Event.subscribe) {
      FB.Event.subscribe('edge.create', function(targetUrl) {
        _gaq.push(_ga.getSocialActionTrackers_('facebook', 'like',
            opt_target, opt_pagePath));
      });
    }
  } catch(e) {}
}