لندر (Lander) کتابخانه و SDK اختصاصی دادهلند برای جمعآوری دادههای رفتاری کلاینت است. این ابزار به عنوان جایگزینی برای گوگل تگ منیجر، امکان رهگیری خودکار و سفارشی رویدادها را در وبسایتها فراهم میسازد. نمونههای عملی پیادهسازی در وبسایت dadelib.ir در دسترس است.
جهت دسترسی به این بخش، در صفحه مدیریت دیتاست و از نوار کناری، روی تنظیمات ماژول کلاینت مدنظر کلیک نموده و تب تنظیمات لندر (وب) را انتخاب فرمایید.
لندر به صورت سلفهاستد (Self-Hosted) بر روی سرور سازمان میزبانی و لود میشود؛ بنابراین اجرای آن نیازی به ارسال درخواست دریافت اسکریپت به سرورهای دادهلند ندارد و بدون نیاز به پیکربندی در سمت سرور راهاندازی میگردد. جهت پیادهسازی لندر، مراحل زیر را دنبال فرمایید:
پس از اعمال و ذخیره تنظیمات مورد نظر، فایل شخصیسازیشده lander.js را از بالای صفحه دانلود کنید.
فایل lander.js را در مسیر دلخواه بر روی هاست، سرور یا CDN وبسایت خود قرار دهید.
قطعه کد زیر را داخل تگ <head> تمامی صفحات وبسایت قرار دهید (در صورت تغییر مسیر فایل، نشانی خط ۴ را جایگزین نمایید):
<script>
window.dadeLand = window.dadeLand || [];
</script>
<script src="/assets/dadeland/lander.js"></script>
<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_media | type | با آغاز پخش مدیا ارسال میشود و نوع مدیا (video یا audio) را ثبت میکند. |
playing_media | type و 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) داشته باشند و اطلاعات مالی و هویتی حساس به جای کلاینت، از طریق سرورساید به جداول اختصاصی انبار داده منتقل گردند.