ga.js یک کتابخانه جاوا اسکریپت برای سنجش نحوه تعامل کاربران با وب سایت شما است. این یک کتابخانه قدیمی است. اگر با Google Analytics شروع به کار می کنید، باید از آخرین کتابخانه ردیابی، analytics.js استفاده کنید.
کد ردیابی شروع سریع
قطعه Analytics قطعه کوچکی از کد جاوا اسکریپت است که در صفحات خود قرار می دهید. با قرار دادن ga.js
در صفحه، ردیابی Google Analytics را فعال می کند. برای استفاده از آن در صفحات خود، قطعه کد زیر را کپی کنید و شناسه دارایی وب خود را جایگزین UA-XXXXX-X
کنید. این قطعه را در صفحه قالب وب سایت خود قرار دهید تا قبل از بسته شدن تگ </head>
ظاهر شود.
اگر نیاز به انجام بیشتر از ردیابی صفحه اولیه دارید، به مرجع ردیابی برای لیستی از روش های موجود در API مراجعه کنید و برای جزئیات بیشتر در مورد استفاده از نحو ناهمزمان ، راهنمای استفاده را ببینید. برای دستورالعمل های گام به گام در مورد راه اندازی ردیابی، به مقاله مرکز راهنمایی در مورد راه اندازی ردیابی مراجعه کنید.
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
قطعه بالا حداقل پیکربندی مورد نیاز برای ردیابی یک صفحه به صورت ناهمزمان را نشان می دهد. از _setAccount
برای تنظیم شناسه دارایی وب صفحه استفاده میکند و سپس _trackPageview
را فرا میخواند تا دادههای ردیابی را به سرورهای Google Analytics ارسال کند.
مهم: اگر صفحات خود را از قطعه سنتی به آخرین نسخه ناهمزمان بهروزرسانی میکنید، ابتدا باید قطعه ردیابی موجود را حذف کنید. استفاده از هر دو قطعه با هم در یک صفحه را توصیه نمی کنیم. برای دستورالعملهای انتقال، به مهاجرت به همگامسازی مراجعه کنید.
نحو ناهمزمان چگونه کار می کند
شی _gaq
چیزی است که نحو ناهمزمان را ممکن می کند. این به عنوان یک صف عمل می کند، که یک ساختار داده اولی است که تماس های API را جمع آوری می کند تا زمانی که ga.js
برای اجرای آنها آماده شود. برای اضافه کردن چیزی به صف، از روش _gaq.push
استفاده کنید.
برای فشار دادن یک فراخوانی API در صف، باید آن را از نحو سنتی جاوا اسکریپت به یک آرایه دستوری تبدیل کنید. آرایه های دستوری به سادگی آرایه های جاوا اسکریپت هستند که با فرمت خاصی مطابقت دارند. اولین عنصر در یک آرایه دستوری نام روش شی ردیاب است که می خواهید فراخوانی کنید. باید یک رشته باشد. بقیه عناصر آرگومان هایی هستند که می خواهید به متد شی ردیاب منتقل کنید. اینها می توانند هر مقدار جاوا اسکریپت باشند.
کد زیر با استفاده از سینتکس سنتی، _trackPageview()
را فراخوانی می کند:
var pageTracker = _gat._getTracker('UA-XXXXX-X'); pageTracker._trackPageview();
کد معادل در نحو ناهمزمان به دو فراخوانی _gaq.push
نیاز دارد.
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']);
در نحو ناهمزمان، ایجاد شی ردیاب به صورت ضمنی است، اما ما همچنان به راهی برای تنظیم شناسه ویژگی وب برای ردیاب نیاز داریم. برای ارائه این قابلیت متد _setAccount
اضافه شده است. همه روشهای شی ردیاب دیگر در ردیابی ناهمزمان و سنتی یکسان هستند. فقط نحو متفاوت است.
برای اطلاعات بیشتر در مورد نحو ناهمزمان، به مرجع پیگیری برای روش _gaq.push
مراجعه کنید.
ردیابی با HTML Event Handlers
نحو ردیابی ناهمزمان نیز باید از درون کنترل کننده رویداد DOM استفاده شود. برای مثال، دکمه زیر با کلیک روی آن یک رویداد ایجاد می کند.
<button onclick="_gaq.push(['_trackEvent', 'button3', 'clicked'])"></button>
حتی اگر این دکمه قبل از اتمام بارگیری ga.js
توسط مرورگر کلیک شود، رویداد ضبط شده و در نهایت اجرا خواهد شد. با استفاده از ردیابی سنتی، مرورگر ممکن است در این شرایط استثنایی ایجاد کند.
فشار دادن توابع به صف
علاوه بر آرایه های دستوری، می توانید اشیاء تابع را نیز در صف _gaq
قرار دهید. توابع می توانند حاوی هر جاوا اسکریپت دلخواه باشند و مانند آرایه های دستوری، به ترتیبی که روی _gaq
قرار می گیرند، اجرا می شوند. این تکنیک برای فراخوانی API های ردیابی که مقادیر را برمی گرداند مفید است. به عنوان مثال، کد زیر یک URL پیوند دهنده ایجاد می کند و ویژگی href
را برای یک پیوند با نتیجه تنظیم می کند.
_gaq.push(function() { var pageTracker = _gat._getTracker('UA-XXXXX-X'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); });
مثال بالا از _gat
برای ایجاد یک شی ردیاب استفاده می کند، اما چون به یک متغیر محلی اختصاص داده شده است، کد خارج از تابع نمی تواند از آن استفاده کند. در حالی که این قابل قبول است، می توانید از روش _gat._createTracker
برای ایجاد یک شی دائمی و قابل دسترسی جهانی استفاده کنید. کد زیر نشان می دهد که چگونه این کار می کند.
_gaq.push(function() { var pageTracker = _gat._createTracker('UA-XXXXX-X', 'myTracker'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); }); _gaq.push(['myTracker._trackPageview']);
مثال بالا یک ردیاب ناهمزمان در داخل تابع ایجاد میکند و بعداً با نام در آرایه فرمان به آن ارجاع میدهد.
مورد استفاده مخالف نیز امکان پذیر است. به عنوان مثال، اگر نیاز به استفاده از یک شی ردیاب ناهمزمان ایجاد شده از طریق یک آرایه دستوری قبلاً فشار داده شده دارید، از روش _gat._getTrackerByName
استفاده کنید. کد زیر نحوه عملکرد آن را نشان می دهد.
_gaq.push(['myTracker._setAccount', 'UA-XXXXX-X']); _gaq.push(function() { var pageTracker = _gat._getTrackerByName('myTracker'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); });
یک فشار، چند دستور
به جای تایپ _gaq.push(...)
برای هر تماس، می توانید همه دستورات خود را به یکباره فشار دهید. کد زیر این تکنیک را نشان می دهد.
_gaq.push( ['_setAccount', 'UA-XXXXX-X'], ['_setDomainName', 'example.com'], ['_setCustomVar', 1, 'Section', 'Life & Style', 3], ['_trackPageview'] );
این کار به این دلیل کار می کند که روش _gaq.push
از روش Array.push
تقلید می کند، که اجازه می دهد چندین آیتم را با یک فراخوانی فشار دهید.
تقسیم Snippet
اگر ترجیح می دهید قطعه Analytics را در پایین صفحه قرار دهید، باید بدانید که لازم نیست کل قطعه را در پایین صفحه قرار دهید. همچنان میتوانید با تقسیم قطعه به دو نیم، بیشتر مزایای بارگیری ناهمزمان را حفظ کنید - نیمه اول را در بالای صفحه نگه دارید و بقیه را به پایین ببرید. از آنجایی که قسمت اول قطعه ردیابی تأثیر کمی بر رندر صفحه ندارد، می توانید آن قسمت را در بالا رها کنید و بخشی از قطعه را که ga.js
را درج می کند در پایین قرار دهید.
صفحه ای با قطعه ناهمزمان به دو نیم شده ممکن است به شکل زیر باشد:
<html> <head> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); </script> </head> <body> <p>Page Content</p> <script src="some_random_script.js"></script> <p>Page Content</p> <script type="text/javascript"> (function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script> </body> </html>
هر دو قطعه کد باید در تگ های اسکریپت خود پیچیده شوند، اما تنها شش خط آخر قطعه ناهمزمان اصلی باید به پایین منتقل شوند. تمام خطوطی که متدها را به _gaq
فشار می دهند، می توانند در بالا باقی بمانند.
اجتناب از دام های رایج
هنگام استفاده از سینتکس ناهمزمان یا سنتی، موارد زیر را در نظر داشته باشید:
- نام روش ها به حروف بزرگ و کوچک حساس هستند.
اگر از نام روشی بدون پوشش مناسب استفاده کنید، فراخوانی روش شما کار نخواهد کرد. مثالها:_gaq.push(['_trackpageview']); // bad _gaq.push(['_trackPageview']); // good
- از نام روش های صحیح استفاده کنید.
اگر ردیابی شما به درستی کار نمی کند، بررسی کنید که از نام صحیح روش استفاده می کنید. مثالها:_gaq.push(['_setDomain', 'example.com']); // bad _gaq.push(['_setDomainName', 'example.com']); // good
- فقط رشته ها باید با نقل قول ارسال شوند . همه انواع دیگر باید بدون نقل قول رها شوند.
هر مقداری که رشته نیست، مانند یک بولی، حروف الفبای شی، توابع یا آرایه، باید بدون علامت نقل قول ارسال شود. زمانی که در حال عبور از چیزی هستید که قرار است به عنوان رشته تفسیر شود، فقط از علامت نقل قول استفاده کنید. اگر از نحو سنتی مهاجرت می کنید، هر پارامتر تابعی که بدون علامت نقل قول ارسال شده است باید در نحو ناهمزمان بدون نقل قول باقی بماند. مثال:_gaq.push(['_setAllowLinker', 'false']); // bad _gaq.push(['_setAllowLinker', false]); // good
- اطمینان حاصل کنید که رشته ها حاوی فضای خالی اصلی یا انتهایی نیستند.
مثالها:_gaq.push(['_setAccount', ' UA-65432-1']); // bad _gaq.push(['_setAccount', 'UA-65432-1']); // good
غیرفعال کردن ردیابی
در برخی موارد، ممکن است لازم باشد که کد رهگیری Google Analytics را در یک صفحه بدون نیاز به حذف قطعه کد غیرفعال کنید. به عنوان مثال، اگر سیاست حفظ حریم خصوصی سایت شما شامل امکان انصراف بازدیدکننده از ردیابی Google Analytics باشد، ممکن است این کار را انجام دهید.
قطعه ردیابی ga.js
اکنون شامل یک ویژگی پنجره است که وقتی روی true
تنظیم شود، قطعه ردیابی را از ارسال داده به Google Analytics غیرفعال می کند. هنگامی که Google Analytics تلاش می کند یک کوکی تنظیم کند یا داده ها را به سرورهای Google Analytics ارسال کند، بررسی می کند که آیا این ویژگی روی true
تنظیم شده است یا خیر. اگر اینطور باشد، همان تأثیری را خواهد داشت که بازدیدکننده افزونه مرورگر انصراف Google Analytics را نصب کرده باشد.
برای غیرفعال کردن ردیابی، ویژگی پنجره زیر را روی true تنظیم کنید:
window['ga-disable-UA-XXXXXX-Y'] = true;
جایی که مقدار UA-XXXXXX-Y
مربوط به شناسه دارایی وب است که میخواهید ردیابی را در آن غیرفعال کنید.
این ویژگی پنجره باید قبل از فراخوانی کد رهگیری تنظیم شود. این ویژگی باید در هر صفحه ای که می خواهید ردیابی Google Analytics را غیرفعال کنید، تنظیم شود. اگر ویژگی تنظیم نشده باشد یا روی false تنظیم نشده باشد، ردیابی طبق معمول کار خواهد کرد.
بنابراین، برای مثال، اگر کد رهگیری Google Analytics شما در یک صفحه شامل موارد زیر باشد:
_gaq.push['_setAccount', 'UA-123456-1']
و میخواهید آن کد رهگیری را برای تنظیم کوکیها یا ارسال دادهها به Google Analytics غیرفعال کنید، سپس قبل از فراخوانی کد رهگیری از کد زیر استفاده میکنید:
window['ga-disable-UA-123456-1'] = true;
اگر از چندین ردیاب در صفحهای با چندین شناسه دارایی وب استفاده میکنید، باید متغیر window['ga-disable-UA-XXXXXX-Y']
برای هر ویژگی وب روی true
تنظیم کنید تا ردیابی Google Analytics در آن صفحه کاملاً غیرفعال شود.
مثال
در اینجا یک مثال ساده از کدهایی وجود دارد که می توانید از آنها برای ارائه عملکرد انصراف برای کاربران خود استفاده کنید.
ابتدا یک لینک HTML جدید به سایت خود اضافه کنید تا منطق انصراف را اجرا کنید:
<a href="javascript:gaOptout()">Click here to opt-out of Google Analytics</a>
سپس قطعه کد زیر را قبل از قطعه کد ga.js اضافه کنید. مطمئن شوید که مقدار gaProperty
را از UA-XXXX-Y
به ویژگی مورد استفاده در سایت خود جایگزین کنید. این همان مقداری است که به دستور _setAccount
می دهید.
<script> // Set to the same value as the web property used on the site var gaProperty = 'UA-XXXX-Y'; // Disable tracking if the opt-out cookie exists. var disableStr = 'ga-disable-' + gaProperty; if (document.cookie.indexOf(disableStr + '=true') > -1) { window[disableStr] = true; } // Opt-out function function gaOptout() { document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; window[disableStr] = true; } </script>
وقتی کاربر روی پیوند HTML انصراف کلیک می کند، تابع gaOptout
سفارشی اجرا می شود. این یک کوکی برای مدت طولانی در آینده تنظیم می کند و جمع آوری داده های analytics.js را غیرفعال می کند. وقتی کاربر به این سایت باز می گردد، اسکریپت بالا بررسی می کند که آیا کوکی انصراف تنظیم شده است یا خیر. اگر چنین باشد، جمع آوری داده های analytics.js نیز غیرفعال می شود.
اجبار SSL (HTTPS)
برای اینکه Google Analytics را مجبور کنید همیشه داده ها را با استفاده از SSL ارسال کند، حتی از صفحات ناامن (HTTP)، از روش _gat._forceSSL
مانند این مثال استفاده کنید:
_gaq.push(['_setAccount', 'UA-12345-1']); _gaq.push(['_gat._forceSSL']); // Send all hits using SSL, even from insecure (HTTP) pages. _gaq.push(['_trackPageview']);