تعاملات اجتماعی - ردیابی وب (ga.js)

این سند نحوه استفاده از Google Analytics را برای دریافت معیارهای تعامل در شبکه های غیر Google مانند فیس بوک و توییتر توضیح می دهد. اگر مالک سایت، توسعه‌دهنده افزونه مدیریت محتوا هستید، یا اگر یک اپراتور شبکه اجتماعی هستید که می‌خواهید گزارش تعامل اجتماعی خودکار را برای کاربران دکمه‌های اشتراک‌گذاری خود ارائه دهید، از این سند برای تنظیم Analytics برای دکمه‌های اشتراک‌گذاری اجتماعی خود استفاده کنید.

معرفی

به طور پیش فرض، Google Analytics گزارش یکپارچه ای را برای دکمه 1+ ارائه می دهد. این بدان معناست که اگر ga.js و دکمه 1+ را در همان صفحه پیاده‌سازی کرده باشید، تمام تعاملات اجتماعی +1 به‌طور خودکار گزارش می‌شوند. برای اطلاعات بیشتر در مورد 1+ Analytics، از جمله نکات عیب‌یابی، درباره تجزیه و تحلیل اجتماعی در مرکز راهنمایی مراجعه کنید.

برای دریافت تجزیه و تحلیل تعامل اجتماعی و گزارش دهی برای شبکه های دیگر مانند فیس بوک یا توییتر، باید Google Analytics را با هر دکمه شبکه یکپارچه کنید. با Social Plug-in Analytics، تعاملات ثبت شده از «لایک» فیسبوک تا «توئیت» توییتر متغیر است. در حالی که ردیابی رویداد می تواند تعاملات محتوای کلی را نیز ردیابی کند، Social Analytics یک چارچوب ثابت برای ثبت تعاملات اجتماعی فراهم می کند. این به نوبه خود به کاربران گزارش گوگل آنالیتیکس مجموعه‌ای از گزارش‌ها را برای مقایسه تعاملات شبکه‌های اجتماعی در چندین شبکه ارائه می‌کند.

برای مشاهده یک مثال کاربردی از نحوه ادغام Analytics با دکمه های فیس بوک و توییتر، کد نمونه Social Analytics را بررسی کنید.

راه اندازی تجزیه و تحلیل اجتماعی

برای تنظیم ردیابی برای تعاملات اجتماعی، باید از روش _trackSocial استفاده کنید، که داده‌های تعامل اجتماعی را به Google Analytics ارسال می‌کند. این روش باید زمانی فراخوانی شود که کاربر یک تعامل اجتماعی را کامل کند. هر شبکه اجتماعی از مکانیزم متفاوتی برای تعیین زمان وقوع تعامل اجتماعی استفاده می کند و این معمولاً نیاز به یکپارچه سازی با API برای دکمه شبکه دارد.

از آنجایی که جزئیات خاص برای یکپارچه‌سازی Social Analytics در شبکه‌های اجتماعی متفاوت است، بقیه این راهنما بهترین شیوه‌های عمومی را در مورد نحوه راه‌اندازی Social Plug-in Analytics برای هر یک از این شبکه‌ها ارائه می‌کند. توصیه می کنیم اسناد توسعه دهنده هر شبکه را بررسی کنید تا پیاده سازی خاص شبکه را بفهمید.

در اینجا توضیحی از روش _trackSocial آورده شده است:

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

که در آن پارامترها نشان دهنده:

  • network

    ضروری. رشته ای که نشان دهنده شبکه اجتماعی در حال ردیابی است (به عنوان مثال فیس بوک، توییتر، لینکدین).

  • socialAction

    ضروری. رشته‌ای که نشان‌دهنده کنش اجتماعی است که ردیابی می‌شود (مانند لایک، اشتراک‌گذاری، توییت).

  • opt_target

    اختیاری. رشته ای نشان دهنده URL (یا منبع) که عمل را دریافت می کند. به عنوان مثال، اگر کاربر روی دکمه Like در یک صفحه در یک سایت کلیک کند، opt_target ممکن است به عنوان صفحه تنظیم شود یا شناسه ای برای شناسایی صفحه در یک سیستم مدیریت محتوا استفاده شود. در بسیاری از موارد، صفحه ای که لایک می کنید همان صفحه ای است که در آن هستید. بنابراین اگر این پارامتر undefined باشد، یا حذف شود، کد رهگیری به طور پیش فرض از document.location.href استفاده می کند.

  • opt_pagePath

    اختیاری. رشته ای که صفحه را بر اساس مسیر (شامل پارامترها) نشان می دهد که عمل از آن انجام شده است. برای مثال، اگر روی دکمه Like در https://developers.google.com/analytics/devguides/ کلیک کنید، opt_pagePath باید روی /analytics/devguides تنظیم شود. تقریباً همیشه، مسیر صفحه منبع کنش اجتماعی است. بنابراین اگر این پارامتر undefined یا حذف شود، کد رهگیری به طور پیش‌فرض از location.pathname به اضافه location.search استفاده می‌کند. معمولاً فقط در صورتی نیاز دارید که بازدیدهای صفحه مجازی را با تغییر پارامتر مسیر صفحه اختیاری با روش Google Analytics _trackPageview ردیابی کنید.

اقدامات فیس بوک

با توجه به فیس بوک جاوا اسکریپت SDK ، ساده ترین راه برای تنظیم دکمه لایک در صفحه خود استفاده از کد زیر است:

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

دوست دارد

برای ثبت لایک با Google Analytics، در رویداد edge.create فیس بوک مشترک شوید و یک تابع callback برای اجرای کد رهگیری Google Analytics ایجاد کنید.

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

هنگامی که کاربر صفحه شما را لایک می کند ، تابع callback اجرا می شود و URL منبع مورد لایک را دریافت می کند. سپس منبع به عنوان یک مقدار به روش _trackSocial ارسال می‌شود تا Google Analytics بتواند شبکه، اقدام و URL مورد پسند را گزارش دهد.

بر خلاف

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]);
});

توییت های توییتر

با توجه به رویدادهای جاوا اسکریپت، مستندات دکمه توییت و اهداف وب ، برای پیاده سازی یک دکمه توییتر در صفحه خود و شناسایی تعاملات کاربر، باید از کد زیر استفاده کنید:

<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، باید از رویدادهای جاوا اسکریپت اهداف وب توییتر استفاده کنید و یک تابع پاسخ به تماس را به 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);
});

هنگامی که کاربر توییت می کند ، تابع callback یک شی دریافت می کند که معمولاً می تواند برای دریافت URL منبعی که توییت می شود استفاده شود. هنگامی که کد جاوا اسکریپت توییتر بارگیری می شود، پیوند توییت مشروح شده را به یک iframe تبدیل می کند و URL در حال توییت کدگذاری می شود و به عنوان یک پارامتر پرس و جو به URL iframe اضافه می شود. شئ رویداد ارسال شده به callback ما یک ارجاع به این iframe دارد و ما می توانیم از آن برای دریافت URL منبعی که توییت می شود استفاده کنیم.

تابع callback بالا اطمینان حاصل می کند که مرجع iframe واقعا یک iframe است و سپس سعی می کند منبعی را که توییت می شود با نگاه کردن به پارامتر کوئری url استخراج کند.

در اینجا یک تابع مثال برای استخراج یک پارامتر کوئری از یک URI آورده شده است:

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 ارسال می‌شود و در نتیجه رفتار پیش‌فرض متد ایجاد می‌شود.

بهترین روش ها برای ادغام

بسیاری از سایت ها با استفاده از افزونه های مدیریت محتوا، دکمه های اجتماعی را اضافه می کنند. اگر شما نویسنده چنین افزونه هایی هستید، ما به شدت توصیه می کنیم که Social Plug-in Analytics را برای ثبت خودکار این تعاملات ادغام کنید. به همین ترتیب، اگر توسعه‌دهنده یک شبکه اجتماعی هستید، می‌توانید با ادغام با Social Analytics، ردیابی تعاملات شبکه اجتماعی خود در Google Analytics را برای کاربران آسان‌تر کنید.

برای کمک به شما، این بخش بهترین روش‌ها را برای یکپارچه‌سازی Social Plug-in Analytics توضیح می‌دهد تا محصول یا CMS شما به‌طور خودکار تعاملات اجتماعی را ردیابی کند. اگر می‌خواهید نمونه‌ای از همه این بهترین شیوه‌ها را ببینید، کد نمونه Analytics افزونه اجتماعی را بررسی کنید.

نمونه سازی و استفاده از صف _gaq

آخرین نسخه کد رهگیری Google Analytics از بارگیری همزمان و ناهمزمان پشتیبانی می کند. برای اینکه توسعه دهندگان روش هایی را که هنوز بارگذاری نشده اند فراخوانی کنند، گوگل آنالیتیکس یک صف فرمان _gaq را ارائه می دهد که روش های ردیابی را می توان روی آن قرار داد _gaq.push(); .

پس از بارگیری کد رهگیری، تمام دستورات موجود در صف اجرا می شوند. هنگام ادغام کد ردیابی جاوا اسکریپت گوگل آنالیتیکس با افزونه یا محصول خود، همیشه باید اطمینان حاصل کنید که این صف فرمان به صورت نمونه ساخته شده است و ادغام شما دستور _trackSocial را به این آرایه فشار می دهد.

var _gaq = _gaq || [];

این اطمینان منطقی را فراهم می کند که روش بدون توجه به اینکه صفحه وب سایت دریافت کننده از قطعه کد ردیابی سنتی یا ناهمزمان استفاده می کند فراخوانی می شود.

تنظیمات کاربر

اگر در حال توسعه افزونه‌ای هستید که Social Plug-in Analytics را ادغام می‌کند، باید گزینه‌های زیر را در نظر بگیرید که به کاربران اجازه می‌دهد زمان استفاده از افزونه شما را تنظیم کنند:

تنظیم پارامتر مسیر صفحه اختیاری - پارامتر نهایی به روش _trackSocial برای لغو URL فعلی است که از آن یک تعامل اجتماعی رخ داده است. هدف نهایی این است که URL های مشابهی بین ردیابی صفحه و تجزیه و تحلیل افزونه اجتماعی گزارش شوند. از آنجایی که برخی از کاربران ممکن است URL صفحه پیش‌فرض را که با ردیابی مشاهده صفحه ردیابی می‌شود لغو کنند، برای دستیابی به گزارش‌دهی منسجم، به راهی برای لغو URL در Social Plug-in 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 از مقدار پیش فرض پارامتر تعریف نشده استفاده می کند.

توجه : در این مثال، چند بررسی نیز اضافه شده است تا اطمینان حاصل شود که اگر API فیس بوک بارگیری نشده باشد، خطای اسکریپت رخ نمی دهد. به عنوان یک توسعه دهنده مسئول، باید مطمئن شوید که خطاها را به درستی مدیریت می کنید.

ردیاب های متعدد

برخی از کاربران گوگل آنالیتیکس شی ردیابی خود را برای تشخیص چندین ردیاب در یک صفحه نامگذاری می کنند. در حالی که ما استفاده از ردیاب‌های متعدد در یک صفحه وب‌سایت را تشویق نمی‌کنیم، ممکن است به فکر مدیریت چند ردیاب باشید.

در زیر مثالی از نحوه تکرار و فراخوانی متد _trackSocial برای هر شی ردیاب آورده شده است. از متد _getTrackers استفاده می کند که آرایه ای از تمام اشیاء ردیاب را در صفحه برمی گرداند.

در این مثال، زمانی که رویداد فیس‌بوک راه‌اندازی می‌شود، متد _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) {}
}