لوگوی سایت
پشتیبانی
ماژول کلاینت

جمع‌آوری داده (لندر وب)

راهنمای کامل ردیابی رویدادها با Lander Web SDK در پلتفرم داده‌لند؛ جمع‌آوری بدون سمپلینگ و ارسال داده به انبار داده داده‌لند (Dadeland).

لندر (Lander) کتابخانه و SDK اختصاصی داده‌لند برای جمع‌آوری داده‌های رفتاری کلاینت است. این ابزار به عنوان جایگزینی برای گوگل تگ منیجر، امکان رهگیری خودکار و سفارشی رویدادها را در وب‌سایت‌ها فراهم می‌سازد. نمونه‌های عملی پیاده‌سازی در وب‌سایت dadelib.ir در دسترس است.


تنظیمات لندر وب

جهت دسترسی به این بخش، در صفحه مدیریت دیتاست و از نوار کناری، روی تنظیمات ماژول کلاینت مدنظر کلیک نموده و تب تنظیمات لندر (وب) را انتخاب فرمایید.


شیوه استفاده

لندر به صورت سلف‌هاستد (Self-Hosted) بر روی سرور سازمان میزبانی و لود می‌شود؛ بنابراین اجرای آن نیازی به ارسال درخواست دریافت اسکریپت به سرورهای داده‌لند ندارد و بدون نیاز به پیکربندی در سمت سرور راه‌اندازی می‌گردد. جهت پیاده‌سازی لندر، مراحل زیر را دنبال فرمایید:

دانلود اسکریپت

پس از اعمال و ذخیره تنظیمات مورد نظر، فایل شخصی‌سازی‌شده lander.js را از بالای صفحه دانلود کنید.

آپلود روی سرور

فایل lander.js را در مسیر دلخواه بر روی هاست، سرور یا CDN وب‌سایت خود قرار دهید.

درج در تگ head

قطعه کد زیر را داخل تگ <head> تمامی صفحات وب‌سایت قرار دهید (در صورت تغییر مسیر فایل، نشانی خط ۴ را جایگزین نمایید):

<script>
  window.dadeLand = window.dadeLand || [];
</script>
<script src="/assets/dadeland/lander.js"></script>
در وب‌سایت‌های وردپرسی می‌توانید از افزونه رایگان WPCode جهت درج کد در تگ <head> بدون ویرایش قالب استفاده نمایید.

رویدادهای خودکار

رویدادهای زیر به شکل خودکار و بدون نیاز به کدنویسی اضافی جمع‌آوری و ارسال می‌گردند:


مقادیر ارسالی

لندر به ازای تمامی رویدادها، اطلاعات زمینه‌ای زیر را به شکل خودکار یا بر اساس مقادیر موجود در حافظه مرورگر و کوکی ارسال می‌نماید:

نام ستوننوعاقدام کاربرتوضیحات و شیوه جمع‌آوری
dl_idرشته❌شناسه یکتای رویداد تولیدشده توسط لندر جهت جلوگیری از ثبت تکراری است.
event_timeتاریخ و ساعت❌زمان دقیق وقوع رویداد در مرورگر است.
locationرشته❌نشانی کامل صفحه جاری در لحظه وقوع رویداد است.
referrer_locationرشته❌نشانی صفحه مبدأ پیش از ورود به صفحه فعلی است.
guest_idعدد❌شناسه ماندگار دستگاه کاربر است که با هر مراجعه تمدید می‌شود.
session_idعدد❌شناسه نشست فعال کاربر بر مبنای بازه عدم فعالیت است.
session_sourceجیسون❌منبع ورودی و پارامترهای ترافیک کاربر در قالب JSON است.
session_landingرشته❌صفحه فرود کاربر در آغاز نشست مربوطه است.
device_typeرشته❌نوع دستگاه کاربر (Desktop، Mobile یا Tablet) است.
device_screenرشته❌ابعاد صفحه نمایش کاربر بر حسب پیکسل است.
browserرشته❌نام مرورگر کاربر است.
browser_versionرشته❌شماره نسخه مرورگر کاربر است.
osرشته❌سیستم‌عامل دستگاه کاربر است.
os_versionرشته❌نسخه سیستم‌عامل کاربر است.
user_idرشته✅شناسه کاربر در سیستم شما است که باید با کلید dl_user_id در Local Storage ذخیره شود.
clientرشته✅ (اختیاری)بستر کلاینت است (پیش‌فرض Web، قابل تنظیم در Local Storage با کلید dl_client).
client_versionرشته✅ (اختیاری)نسخه وب‌سایت است (قابل تنظیم در Local Storage با کلید dl_client_version).
experiment_idرشته✅ (اختیاری)شناسه گروه آزمایشی تست A/B در کوکی dl_experiment_id است.
metaجیسون✅ (اختیاری)متای سراسری ذخیره‌شده در کوکی __dl_meta است که با متای تمام رویدادها ادغام می‌شود.
شناسه کاربر (dl_user_id) باید در سناریوهای لاگ‌اوت یا تعویض حساب کاربری، بلافاصله از حافظه محلی مرورگر پاک‌سازی شود تا رفتار بعدی به عنوان کاربر مهمان ثبت گردد.

انواع رویدادها

رویدادهای تعاملی فرانت‌اند در ۵ دسته‌بندی اصلی طبقه‌بندی شده‌اند:

دسته‌بندی رویدادتریگر و نحوه ارسال
مشاهده URL یا صفحهبازدید مسیر در وب یا صفحه در اپلیکیشن که با نام view به صورت خودکار ثبت می‌شود.
مشاهده یک المانقرار گرفتن کامل المان مشخص‌شده (مانند بنر یا کارت محصول) در محدوده دید (Viewport) کاربر است.
کلیک روی یک المانکلیک یا تپ کاربر بر روی المان خاص مانند دکمه خرید یا لینک است.
پخش مدیاپخش فایل صوتی یا ویدیویی توسط کاربر در صفحه است.
رویداد کاستومارسال داده‌های سفارشی (مانند ثبت‌نام یا خرید) از طریق متد dadeLand.push است.
رویداد اسکرول عمومی به دلیل ارزش تحلیلی پایین توسط لندر ثبت نمی‌شود؛ در صورت نیاز به سنجش اسکرول صفحه، از رویداد مشاهده المان برای بخش‌های انتهایی صفحه استفاده فرمایید.

مشاهده المان

این رویداد در صورت وجود دو شرط زیر ثبت می‌شود:

۱. وجود اتربیوت data-dl-view در المان: نام رویداد در ستون event به صورت ترکیب مقدار اتربیوت با پیشوند view_ ثبت می‌گردد.
۲. ورود ۱۰۰ درصد المان به Viewport: تریگر تنها با نمایش کامل المان در دید کاربر فعال می‌شود.

جهت ارسال پارامترهای سفارشی، اتربیوت data-dl-meta به صورت آبجکت JSON به المان اضافه می‌گردد:

<article class="border rounded-3xl bg-white" 
data-dl-view="card" data-dl-meta='{"name":"Deep Learning","rate":4.4}'>

خروجی ارسالی این المان به شکل زیر در انبار داده می‌نشیند:

{
  "event": "view_card",
  "meta": {"name":"Deep Learning","rate":4.4}
}
  • الگوی پیشنهادی: مقدار data-dl-view با حروف کوچک و خط زیرین (snake_case) و بدون کلمه view درج شود؛ همچنین مقادیر data-dl-meta ساختار مسطح (Flat JSON) داشته باشند و اتربیوت بر روی المان والد معنادار در DOM قرار گیرد.

رویداد کلیک

شرط ارسال این رویداد، وجود اتربیوت data-dl-click در المان کلیک‌شده یا والد آن است. مقدار اتربیوت همراه با پیشوند click_ در ستون event ذخیره می‌شود:

<a href="/product/practical-sql" class="text-brand items-center"
data-dl-click="card" data-dl-meta='{"name":"Deep Learning","price":120000}'>

خروجی ارسالی رویداد کلیک:

{
  "event": "click_card",
  "meta": {"name":"Deep Learning","price":120000}
}
  • الگوی پیشنهادی: اتربیوت در بالاترین المان والد مرتبط با محل کلیک قرار گیرد تا با کلیک روی متن یا آیکون‌های داخلی نیز رهگیری شود؛ نام رویداد به صورت snake_case و داده‌های متا به صورت مسطح باشند.

رویداد پخش مدیا

شرط ارسال این داده، درج اتربیوت data-dl-meta در تگ‌های <video> یا <audio> است:

<video class="w-full rounded-2xl"
data-dl-meta='{"name":"Video Title","duration":10000}'>

نام رویدادهای پخش مدیا سیستمی است و به صورت خودکار بر اساس جدول زیر ارسال می‌گردد:

نام رویدادمتای پیش‌فرضتوضیحات
start_mediatypeبا آغاز پخش مدیا ارسال می‌شود و نوع مدیا (video یا audio) را ثبت می‌کند.
playing_mediatype و progressبا ادامه پخش مدیا به ازای هر ۲۰ درصد پیشروی ارسال می‌شود و مقادیر ۲۰، ۴۰، ۶۰، ۸۰ و ۱۰۰ را در کلید progress ثبت می‌نماید.

خروجی آغاز پخش مدیا:

{
  "event": "start_media",
  "meta": {"name":"Video Title","duration":10000,"type":"video"}
}
  • الگوی پیشنهادی: ارسال نام مدیا (name) و کل مدت زمان به میلی‌ثانیه (duration) در متای رویداد توصیه می‌گردد.

رویداد کاستوم

رویدادهایی که دارای تریگر اختصاصی هستند یا نیازمند دریافت تایید از بکند می‌باشند (نظیر افزودن به سبد خرید، نهایی‌سازی پرداخت یا ارسال فرم)، از طریق متد dadeLand.push (مشابه dataLayer) ارسال می‌گردند:

<script>
window.dadeLand.push({
  event: 'purchase',
  transaction_id: 'TXN-1773053889',
  meta: {
    quantity: 3,
    total_amount: 1500000
  }
});
</script>

پارامترهای قابل ارسال در رویداد کاستوم:

کلیدنوعتوضیحات
eventرشتهنام رویداد است و ارسال آن الزامی است.
metaجیسونپارامترهای سفارشی رویداد در قالب ساختار مسطح JSON است (اختیاری).
transaction_idرشتهشناسه تراکنش مالی جهت اتصال مستقیم به جداول وقایع مالی در انبار داده است (اختیاری).
جهت بررسی و دیباگ رویدادهای کاستوم، کافی است عبارت dadeLand را در کنسول مرورگر وارد نمایید تا لاگ درخواست‌های ارسالی نمایش داده شود.
  • الگوی پیشنهادی: نام رویداد با فرمت snake_case درج شود، مقادیر متا ساختار مسطح (Flat) داشته باشند و اطلاعات مالی و هویتی حساس به جای کلاینت، از طریق سرورساید به جداول اختصاصی انبار داده منتقل گردند.