[{"data":1,"prerenderedAt":1375},["ShallowReactive",2],{"navigation":3,"/client-module/intro":203},[4,22,47,64,101,126,143,156,169,190],{"title":5,"path":6,"stem":7,"children":8,"page":21},"آشنایی و مبانی","/intro","01.intro",[9,13,17],{"title":10,"path":11,"stem":12},"معماری داده‌ها","/intro/architecture","01.intro/1.architecture",{"title":14,"path":15,"stem":16},"الگوهای پیشنهادی","/intro/best-practices","01.intro/2.best-practices",{"title":18,"path":19,"stem":20},"مقایسه ETL و ELT","/intro/etl-vs-elt","01.intro/3.etl-vs-elt",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"ساخت و مدیریت فضا","/space","02.space",[27,31,35,39,43],{"title":28,"path":29,"stem":30},"ساختار فضا و پروژه","/space/structure","02.space/1.structure",{"title":32,"path":33,"stem":34},"ذخیره در باکت اختصاصی","/space/dedicated-bucket","02.space/2.dedicated-bucket",{"title":36,"path":37,"stem":38},"آموزش ساخت فضا","/space/create-space","02.space/3.create-space",{"title":40,"path":41,"stem":42},"طرح فضا","/space/plan","02.space/4.plan",{"title":44,"path":45,"stem":46},"سرور MCP","/space/mcp-server","02.space/5.mcp-server",{"title":48,"path":49,"stem":50,"children":51,"page":21},"مدیریت کاربران","/user-management","03.user-management",[52,56,60],{"title":53,"path":54,"stem":55},"آشنایی با نقش‌ها","/user-management/roles","03.user-management/1.roles",{"title":57,"path":58,"stem":59},"اعطای دسترسی","/user-management/access","03.user-management/2.access",{"title":61,"path":62,"stem":63},"آموزش اعطای دسترسی","/user-management/manage-users","03.user-management/3.manage-users",{"title":65,"path":66,"stem":67,"children":68,"page":21},"ایجاد و مدیریت دیتاست","/dataset","04.dataset",[69,73,77,81,85,89,93,97],{"title":70,"path":71,"stem":72},"ایجاد دیتاست","/dataset/create-dataset","04.dataset/1.create-dataset",{"title":74,"path":75,"stem":76},"الگوهای نام‌گذاری","/dataset/naming-conventions","04.dataset/2.naming-conventions",{"title":78,"path":79,"stem":80},"تفاوت درج با ورژن و آپدیت","/dataset/write-modes","04.dataset/3.write-modes",{"title":82,"path":83,"stem":84},"انواع ستون و نوع مقدار","/dataset/column-types","04.dataset/4.column-types",{"title":86,"path":87,"stem":88},"متادیتا و ویژگی‌های ستون","/dataset/column-settings","04.dataset/5.column-settings",{"title":90,"path":91,"stem":92},"قوانین امنیتی جدول","/dataset/table-settings","04.dataset/6.table-settings",{"title":94,"path":95,"stem":96},"ویرایش اسکیما","/dataset/schema-evolution","04.dataset/7.schema-evolution",{"title":98,"path":99,"stem":100},"آموزش ایجاد جدول سفارشی","/dataset/create-custom-table","04.dataset/8.create-custom-table",{"title":102,"path":103,"stem":104,"children":105,"page":21},"لود داده","/data-load","05.data-load",[106,110,114,118,122],{"title":107,"path":108,"stem":109},"لندر گو (Lander Go)","/data-load/lander-go","05.data-load/1.lander-go",{"title":111,"path":112,"stem":113},"لود مستقیم (API)","/data-load/api-load","05.data-load/2.api-load",{"title":115,"path":116,"stem":117},"لود با تبدیل (Transform)","/data-load/transform-load","05.data-load/3.transform-load",{"title":119,"path":120,"stem":121},"یکتاسازی و مدیریت Late Data","/data-load/idempotency-and-late-data","05.data-load/4.idempotency-and-late-data",{"title":123,"path":124,"stem":125},"لاگ درخواست‌های رد شده","/data-load/dropped-requests","05.data-load/5.dropped-requests",{"title":127,"path":128,"stem":129,"children":130,"page":21},"داشبورد","/dashboard","06.dashboard",[131,135,139],{"title":132,"path":133,"stem":134},"ساختار و دسترسی","/dashboard/structure","06.dashboard/1.structure",{"title":136,"path":137,"stem":138},"فیلترهای استوری","/dashboard/story-filters","06.dashboard/2.story-filters",{"title":140,"path":141,"stem":142},"آموزش ساخت استوری","/dashboard/create-story","06.dashboard/3.create-story",{"title":144,"path":145,"stem":146,"children":147,"page":21},"کوئری","/query","07.query",[148,152],{"title":149,"path":150,"stem":151},"نکات نوشتن کوئری","/query/query-notes","07.query/1.query-notes",{"title":153,"path":154,"stem":155},"توابع اختصاصی داده‌لند","/query/dadeland-sql","07.query/2.dadeland-sql",{"title":157,"path":158,"stem":159,"children":160,"page":21},"فانل","/funnel","08.funnel",[161,165],{"title":162,"path":163,"stem":164},"آموزش ایجاد فانل","/funnel/create-funnel","08.funnel/1.create-funnel",{"title":166,"path":167,"stem":168},"شیوه کار فانل","/funnel/how-funnel-works","08.funnel/2.how-funnel-works",{"title":170,"path":171,"stem":172,"children":173,"page":21},"ماژول کلاینت","/client-module","09.client-module",[174,178,182,186],{"title":175,"path":176,"stem":177},"آشنایی با ماژول کلاینت","/client-module/intro","09.client-module/1.intro",{"title":179,"path":180,"stem":181},"تنظیمات ماژول","/client-module/settings","09.client-module/2.settings",{"title":183,"path":184,"stem":185},"جمع‌آوری داده (لندر وب)","/client-module/lander-web","09.client-module/3.lander-web",{"title":187,"path":188,"stem":189},"آموزش راه‌اندازی","/client-module/up-and-running","09.client-module/4.up-and-running",{"title":191,"path":192,"stem":193,"children":194,"page":21},"عملیات","/activation","10.activation",[195,199],{"title":196,"path":197,"stem":198},"توزیع داده (Reverse ETL)","/activation/reverse-etl","10.activation/1.reverse-etl",{"title":200,"path":201,"stem":202},"یکپارچه‌سازی‌های توزیع داده","/activation/integrations","10.activation/2.integrations",{"id":204,"title":175,"body":205,"description":1368,"extension":1369,"links":1370,"meta":1371,"navigation":1372,"path":176,"seo":1373,"stem":177,"__hash__":1374},"docs/09.client-module/1.intro.md",{"type":206,"value":207,"toc":1362},"minimark",[208,217,220,225,228,250,253,256,263,265,269,272,284,296,307,314,321,328,347,362,376,383,390,397,399,403,406,732,941,943,946,949,986,1007,1164,1314,1358],[209,210,211,212,216],"p",{},"ماژول کلاینت (Client Module) جهت جمع‌آوری و مدیریت داده‌های رفتاری کاربران در سطح وب‌سایت، وب‌اپلیکیشن و اپلیکیشن موبایل طراحی شده است. این ماژول جایگزینی جامع و یکپارچه برای ابزارهایی چون گوگل تگ منیجر و گوگل آنالیتیکس در بستر انبار داده به شمار می‌رود. عملیات جمع‌آوری و ارسال داده‌ها از سمت کلاینت توسط SDKهای اختصاصی داده‌لند تحت عنوان ",[213,214,215],"strong",{},"لندر (Lander)"," انجام می‌پذیرد.",[218,219],"hr",{},[221,222,224],"h3",{"id":223},"تفکیک-دادهها","تفکیک داده‌ها",[209,226,227],{},"در مهندسی داده استاندارد، داده‌های رفتاری نباید با اطلاعات حساس هویتی یا وقایع مالی آمیخته شوند. داده‌لند بر مبنای اصل تفکیک مسئولیت‌ها (Separation of Concerns)، سه لایه داده‌ای مستقل تعریف می‌کند:",[229,230,231,238,244],"ul",{},[232,233,234,237],"li",{},[213,235,236],{},"ماژول کلاینت:"," داده‌های رفتاری، کلیک‌ها و بازدیدهای صفحات در وب و اپلیکیشن را ثبت می‌نماید.",[232,239,240,243],{},[213,241,242],{},"جداول پروفایل کاربران:"," مشخصات هویتی و ویژگی‌های کاربران در جداول مجزا و سفارشی (ابعاد / Dimension) به صورت سرورساید ذخیره می‌شوند.",[232,245,246,249],{},[213,247,248],{},"جداول وقایع مالی:"," تراکنش‌ها، مبالغ پرداختی و وضعیت فاکتورها در جداول مجزا (وقایع / Fact) به شکل سرورساید مدیریت می‌گردند.",[209,251,252],{},"این ساختار علاوه بر ارتقای امنیت کلاینت و تضمین نرخ مغایرت صفر در داده‌های مالی، امکان جوین (Join) سریع داده‌های رفتاری با سوابق خرید و اطلاعات کاربران را در موتور تحلیلی فراهم می‌سازد.",[254,255],"br",{},[209,257,258],{},[259,260],"img",{"alt":261,"src":262},"Modules Connection","/images/modules-connection.webp",[218,264],{},[221,266,268],{"id":267},"مزایای-ماژول","مزایای ماژول",[209,270,271],{},"ماژول کلاینت چالش‌های مرسوم ابزارهای آنالیتیکس سنتی را با تکیه بر انبار داده برطرف نموده است:",[209,273,274,275,278,279,283],{},"۱. ",[213,276,277],{},"تطبیق هویت ۵ دقیقه‌ای (Near Real-Time):"," موتور پردازشی هر ۵ دقیقه یک‌بار، نشست‌هایی را که به صورت مهمان (ناشناس) آغاز شده و در ادامه دارای شناسه کاربری (",[280,281,282],"code",{},"user_id",") شده‌اند شناسایی می‌کند. سپس شناسه کاربر را به تمامی رویدادهای قبلی همان نشست بک‌فیل (Backfill) می‌نماید؛ این تطبیق نزدیک به لحظه امکان اجرای خودکار سناریوهای eCRM و ارسال پیام‌های بهینه‌سازی‌شده را در بازه‌های زمانی کوتاه فراهم می‌سازد.",[209,285,286,287,290,291,295],{},"۲. ",[213,288,289],{},"ارسال کلاینت‌ساید و سرورساید:"," رویدادها هم به صورت مستقیم از کلاینت و هم به شیوه سرورساید از طریق سرویس ",[292,293,294],"a",{"href":108},"لندر گو"," قابل ارسال هستند تا قطعی‌های شبکه و مسدودکننده‌های تبلیغاتی مانع ثبت داده‌ها نشوند.",[209,297,298,299,302,303,306],{},"۳. ",[213,300,301],{},"دقت کامل بدون Sampling:"," تمامی رویدادها با دقت ۱۰۰ درصدی و بدون نمونه‌برداری آماری یا کاهش کاردینالیتی در ابعاد با تنوع بالا (برخلاف گروه ",[280,304,305],{},"(other)"," در گوگل آنالیتیکس) ثبت می‌گردند.",[209,308,309,310,313],{},"۴. ",[213,311,312],{},"کتابخانه سبک با میزبانی First-Party:"," اسکریپت Lander حجمی در حدود ۳۵ کیلوبایت دارد و مستقیماً روی دامنه اصلی وب‌سایت لود می‌شود؛ در نتیجه لود آن در برابر مسدودکننده‌ها مصون است و کوکی‌های ماندگار First-Party تولید می‌کند.",[209,315,316,317,320],{},"۵. ",[213,318,319],{},"رهگیری خودکار SPA و MPA:"," بازدیدهای صفحات (Pageview) در برنامه‌های تک‌صفحه‌ای مدرن (نظیر React، Vue و Nuxt) و ساختارهای چندصفحه‌ای سنتی به صورت هوشمند و بدون اختلال تفکیک می‌شوند.",[209,322,323,324,327],{},"۶. ",[213,325,326],{},"سورس فلو (Source Flow):"," تغییرات منابع ورودی کاربر در طول یک نشست بدون شکستن نشست ثبت می‌گردد و سیستم با تفکیک منابع معتبر بازاریابی از سورس‌های ضعیف (مانند درگاه‌های بانکی)، مدل‌های انتساب اولین لمس و چندلمسی را میسر می‌سازد.",[209,329,330,331,334,335,338,339,342,343,346],{},"۷. ",[213,332,333],{},"شناسایی خودکار دامنه‌های محتوایی:"," در صورت وجود سایت‌هایی نظیر وبلاگ، پایگاه دانش یا مستندات، امکان ثبت این دامنه‌ها در تنظیمات ماژول وجود دارد. داده‌لند ورودی‌های حاصل از آن‌ها را به صورت خودکار با عنوان سورس رسمی ",[280,336,337],{},"content"," در ستون ",[280,340,341],{},"session_source"," ثبت می‌نماید؛ بنابراین بدون نیاز به بررسی دستی ستون ",[280,344,345],{},"referrer_location"," یا تحلیل‌های پیچیده، میزان اثرگذاری سایت‌های محتوایی در جذب کاربران مستقیماً ارزیابی می‌شود.",[209,348,349,350,353,354,357,358,361],{},"۸. ",[213,351,352],{},"پایداری هویت در زیردامنه‌ها:"," با تنظیم خودکار دامنه ریشه (Root Domain)، شناسه‌های مهمان (",[280,355,356],{},"guest_id",") و نشست (",[280,359,360],{},"session_id",") میان وب‌سایت اصلی، بلاگ و زیردامنه‌های دیگر حفظ می‌شوند.",[209,363,364,365,372,373,375],{},"۹. ",[213,366,367,368,371],{},"دسترسی به داده‌های خام و ستون ",[280,369,370],{},"meta",":"," داده‌ها به شکل خام در دسترس هستند و پارامترهای سفارشی درون ستون JSON به نام ",[280,374,370],{}," نگهداری می‌شوند؛ بنابراین برای ارسال مقادیر جدید نیازی به تغییر اسکیما یا تعریف متغیر وجود ندارد.",[209,377,378,379,382],{},"۱۰. ",[213,380,381],{},"سنجش خودکار کیفیت شبکه:"," شاخص‌های کلیدی عملکرد اینترنت کاربر (نظیر TTFB، تاخیر رفت‌وبرگشت RTT و زمان DNS) جهت ریشه‌یابی اختلالات فنی و سرعت لود کاربران به صورت خودکار ثبت می‌گردند.",[209,384,385,386,389],{},"۱۱. ",[213,387,388],{},"تخصیص گروه‌های آزمایش (A/B Testing):"," امکان تقسیم خودکار کاربران به گروه‌های آزمایشی به صورت تصادفی با وزن‌های معین یا بر اساس سورس ورودی ترافیک فراهم است.",[209,391,392,393,396],{},"۱۲. ",[213,394,395],{},"پاک‌سازی خودکار داده‌های تست:"," رویدادهای مربوط به دامنه‌های استیجینگ، محیط‌های توسعه و شناسه‌های پرسنل به شکل سیستمی شناسایی و از آمارهای اصلی تفکیک می‌شوند.",[218,398],{},[221,400,402],{"id":401},"اسکیما-و-جداول","اسکیما و جداول",[209,404,405],{},"ماژول کلاینت دو جدول هم‌زمان در فضای کاری ایجاد می‌نماید:",[407,408,415,421],"collapsible",{":ui":409,"className":410,"close-text":413,"name":414,"open-text":413},"{\"trigger\": \"text-base\", \"triggerIcon\": \"size-5\"}",[411,412],"[&_button]:!text-base","[&_svg]:!size-5"," ","جدول رویدادها",[209,416,417,418,420],{},"این جدول برای ثبت مستقیم وقایع رفتاری کاربران (بازدید صفحه، کلیک و رویدادهای سفارشی) از طریق SDK اختصاصی لندر به کار می‌رود. این جدول تغییر اسکیما ندارد و کلیه متغیرهای سفارشی در ستون ",[280,419,370],{}," نگهداری می‌شوند.",[422,423,424,441],"table",{},[425,426,427],"thead",{},[428,429,430,435,438],"tr",{},[431,432,434],"th",{"align":433},"left","نام ستون",[431,436,437],{"align":433},"نوع",[431,439,440],{"align":433},"توضیحات",[442,443,444,458,471,484,496,508,520,531,543,555,566,577,589,600,611,623,635,647,659,671,683,695,707,719],"tbody",{},[428,445,446,452,455],{},[447,448,449],"td",{"align":433},[280,450,451],{},"request_id",[447,453,454],{"align":433},"عدد",[447,456,457],{"align":433},"شناسه یکتای درخواست برای رهگیری عملیات لود است.",[428,459,460,465,468],{},[447,461,462],{"align":433},[280,463,464],{},"dl_id",[447,466,467],{"align":433},"رشته",[447,469,470],{"align":433},"شناسه یکتای هر رویداد تولیدشده توسط Lander است.",[428,472,473,478,481],{},[447,474,475],{"align":433},[280,476,477],{},"record_time",[447,479,480],{"align":433},"تاریخ و ساعت",[447,482,483],{"align":433},"زمان دریافت و ثبت درخواست در سرور داده‌لند است.",[428,485,486,491,493],{},[447,487,488],{"align":433},[280,489,490],{},"event_time",[447,492,480],{"align":433},[447,494,495],{"align":433},"زمان دقیق وقوع رویداد در سمت کلاینت است.",[428,497,498,503,505],{},[447,499,500],{"align":433},[280,501,502],{},"event",[447,504,467],{"align":433},[447,506,507],{"align":433},"نام رویداد ارسالی را مشخص می‌کند.",[428,509,510,515,517],{},[447,511,512],{"align":433},[280,513,514],{},"location",[447,516,467],{"align":433},[447,518,519],{"align":433},"آدرس کامل یا مسیر صفحه محل وقوع رویداد است.",[428,521,522,526,528],{},[447,523,524],{"align":433},[280,525,345],{},[447,527,467],{"align":433},[447,529,530],{"align":433},"آدرس صفحه مبدأ قبل از وقوع رویداد است.",[428,532,533,537,540],{},[447,534,535],{"align":433},[280,536,370],{},[447,538,539],{"align":433},"جیسون",[447,541,542],{"align":433},"پارامترها و داده‌های سفارشی رویداد را در ساختار JSON نگهداری می‌کند.",[428,544,545,550,552],{},[447,546,547],{"align":433},[280,548,549],{},"transaction_id",[447,551,467],{"align":433},[447,553,554],{"align":433},"شناسه تراکنش مالی جهت جوین با جداول مالی است.",[428,556,557,561,563],{},[447,558,559],{"align":433},[280,560,282],{},[447,562,467],{"align":433},[447,564,565],{"align":433},"شناسه کاربر لاگین‌شده در سیستم کسب‌وکار است.",[428,567,568,572,574],{},[447,569,570],{"align":433},[280,571,356],{},[447,573,454],{"align":433},[447,575,576],{"align":433},"شناسه ماندگار دستگاه یا مرورگر کاربر است.",[428,578,579,584,586],{},[447,580,581],{"align":433},[280,582,583],{},"experiment_id",[447,585,467],{"align":433},[447,587,588],{"align":433},"شناسه آزمون A/B اختصاص‌یافته به کاربر است.",[428,590,591,595,597],{},[447,592,593],{"align":433},[280,594,360],{},[447,596,454],{"align":433},[447,598,599],{"align":433},"شناسه نشست فعال کاربر بر اساس زمان تعامل است.",[428,601,602,606,608],{},[447,603,604],{"align":433},[280,605,341],{},[447,607,539],{"align":433},[447,609,610],{"align":433},"منبع ورودی ترافیک نشست (نظیر پارامترهای UTM) است.",[428,612,613,618,620],{},[447,614,615],{"align":433},[280,616,617],{},"session_landing",[447,619,467],{"align":433},[447,621,622],{"align":433},"صفحه فرود کاربر در آغاز نشست مربوطه است.",[428,624,625,630,632],{},[447,626,627],{"align":433},[280,628,629],{},"client",[447,631,467],{"align":433},[447,633,634],{"align":433},"بستر تعامل کاربر (مانند Web یا App) است.",[428,636,637,642,644],{},[447,638,639],{"align":433},[280,640,641],{},"client_version",[447,643,467],{"align":433},[447,645,646],{"align":433},"نسخه اپلیکیشن یا بیلد وب‌سایت است.",[428,648,649,654,656],{},[447,650,651],{"align":433},[280,652,653],{},"device_type",[447,655,467],{"align":433},[447,657,658],{"align":433},"نوع دستگاه کاربر (Desktop، Mobile یا Tablet) است.",[428,660,661,666,668],{},[447,662,663],{"align":433},[280,664,665],{},"browser",[447,667,467],{"align":433},[447,669,670],{"align":433},"نام مرورگر کاربر است.",[428,672,673,678,680],{},[447,674,675],{"align":433},[280,676,677],{},"browser_version",[447,679,467],{"align":433},[447,681,682],{"align":433},"نسخه مرورگر کاربر است.",[428,684,685,690,692],{},[447,686,687],{"align":433},[280,688,689],{},"os",[447,691,467],{"align":433},[447,693,694],{"align":433},"سیستم‌عامل دستگاه کاربر است.",[428,696,697,702,704],{},[447,698,699],{"align":433},[280,700,701],{},"os_version",[447,703,467],{"align":433},[447,705,706],{"align":433},"نسخه سیستم‌عامل کاربر است.",[428,708,709,714,716],{},[447,710,711],{"align":433},[280,712,713],{},"device_screen",[447,715,467],{"align":433},[447,717,718],{"align":433},"ابعاد صفحه نمایش کاربر به پیکسل است.",[428,720,721,726,729],{},[447,722,723],{"align":433},[280,724,725],{},"debug_data",[447,727,728],{"align":433},"بولین",[447,730,731],{"align":433},"مشخص‌کننده داده‌های آزمایشی برای حذف خودکار است.",[407,733,736,739],{":ui":409,"className":734,"close-text":413,"name":735,"open-text":413},[411,412],"جدول لاگ فعالیت روزانه کاربر",[209,737,738],{},"این جدول برای تجمیع روزانه رفتارها، نشست‌ها و منابع ترافیکی کاربران به کار می‌رود و داده‌های آن در پایان هر روز به صورت خودکار و بدون هزینه لود می‌شوند. ریزدانگی (Grain) هر رکورد در این جدول بر مبنای ترکیب روز تقویمی، هر کاربر (شناس یا مهمان) و منبع ورودی است؛ بنابراین چنانچه کاربری در طول یک روز با دو منبع ترافیکی مختلف وارد شود، اطلاعات فعالیت او در دو ردیف مجزا ثبت می‌گردند.",[422,740,741,751],{},[425,742,743],{},[428,744,745,747,749],{},[431,746,434],{"align":433},[431,748,437],{"align":433},[431,750,440],{"align":433},[442,752,753,764,775,788,799,810,822,835,847,859,871,882,893,905,917,929],{},[428,754,755,759,761],{},[447,756,757],{"align":433},[280,758,451],{},[447,760,454],{"align":433},[447,762,763],{"align":433},"شناسه یکتای درخواست پردازش تجمیعی است.",[428,765,766,770,772],{},[447,767,768],{"align":433},[280,769,477],{},[447,771,480],{"align":433},[447,773,774],{"align":433},"زمان ثبت فرآیند تجمیع در سیستم است.",[428,776,777,782,785],{},[447,778,779],{"align":433},[280,780,781],{},"date",[447,783,784],{"align":433},"تاریخ",[447,786,787],{"align":433},"تاریخ روز فعالیت کاربر را مشخص می‌سازد.",[428,789,790,794,796],{},[447,791,792],{"align":433},[280,793,356],{},[447,795,454],{"align":433},[447,797,798],{"align":433},"شناسه یکتای مرورگر یا دستگاه کاربر است.",[428,800,801,805,807],{},[447,802,803],{"align":433},[280,804,282],{},[447,806,467],{"align":433},[447,808,809],{"align":433},"شناسه کاربر احراز هویت‌شده است.",[428,811,812,817,819],{},[447,813,814],{"align":433},[280,815,816],{},"source",[447,818,467],{"align":433},[447,820,821],{"align":433},"منبع اصلی ورود کاربر در آن روز است.",[428,823,824,829,832],{},[447,825,826],{"align":433},[280,827,828],{},"source_flow",[447,830,831],{"align":433},"آرایه",[447,833,834],{"align":433},"توالی زمانی منابع ورودی کاربر در طول روز است.",[428,836,837,842,844],{},[447,838,839],{"align":433},[280,840,841],{},"source_flow_times",[447,843,831],{"align":433},[447,845,846],{"align":433},"زمان‌های تغییر منابع ورودی کاربر است.",[428,848,849,854,856],{},[447,850,851],{"align":433},[280,852,853],{},"session_ids",[447,855,831],{"align":433},[447,857,858],{"align":433},"فهرست شناسه‌های نشست کاربر با این منبع است.",[428,860,861,866,868],{},[447,862,863],{"align":433},[280,864,865],{},"session_count",[447,867,454],{"align":433},[447,869,870],{"align":433},"تعداد نشست‌های کاربر با این منبع در روز است.",[428,872,873,877,879],{},[447,874,875],{"align":433},[280,876,629],{},[447,878,467],{"align":433},[447,880,881],{"align":433},"بستر تعاملی کاربر است.",[428,883,884,888,890],{},[447,885,886],{"align":433},[280,887,653],{},[447,889,467],{"align":433},[447,891,892],{"align":433},"نوع دستگاه کاربر است.",[428,894,895,900,902],{},[447,896,897],{"align":433},[280,898,899],{},"user_snapshot",[447,901,539],{"align":433},[447,903,904],{"align":433},"آخرین وضعیت مشخصات کاربر در لحظه تجمیع است.",[428,906,907,912,914],{},[447,908,909],{"align":433},[280,910,911],{},"total_events",[447,913,454],{"align":433},[447,915,916],{"align":433},"مجموع کل رویدادهای کاربر با این منبع است.",[428,918,919,924,926],{},[447,920,921],{"align":433},[280,922,923],{},"time_spent",[447,925,454],{"align":433},[447,927,928],{"align":433},"مجموع مدت زمان حضور فعال کاربر بر حسب میلی‌ثانیه است.",[428,930,931,936,938],{},[447,932,933],{"align":433},[280,934,935],{},"event_counts",[447,937,539],{"align":433},[447,939,940],{"align":433},"شمارش تفکیکی رویدادهای کاربر در ساختار JSON است.",[218,942],{},[221,944,14],{"id":945},"الگوهای-پیشنهادی",[209,947,948],{},"رعایت الگوهای استاندارد زیر تضمین‌کننده دقت تحلیل‌ها و صحت رهگیری داده‌ها در ماژول کلاینت است:",[407,950,953,960],{":ui":409,"className":951,"close-text":413,"name":952,"open-text":413},[411,412],"مدیریت شناسه در حافظه محلی",[209,954,955,956,959],{},"مدیریت مقدار ",[280,957,958],{},"dl_user_id"," در حافظه محلی مرورگر (Local Storage) باید در سناریوهای مختلف کاملاً قابل اتکا باشد تا رویدادهای تعیین‌شده برای ورود و ثبت‌نام در پنل، با شناسه قطعی کاربر ارسال گردند:",[229,961,962,971,980],{},[232,963,964,967,968,970],{},[213,965,966],{},"خروج از حساب:"," به محض خروج (Logout) کاربر، کلید ",[280,969,958],{}," باید بلافاصله از حافظه محلی حذف شود تا رفتارهای بعدی به عنوان کاربر مهمان ثبت گردند.",[232,972,973,976,977,979],{},[213,974,975],{},"تغییر حساب کاربری:"," در صورت جابه‌جایی یا ورود کاربر با حسابی دیگر، مقدار ",[280,978,958],{}," باید بلافاصله با شناسه جدید جایگزین گردد تا داده‌ها به اشتباه به حساب قبلی متصل نشوند.",[232,981,982,985],{},[213,983,984],{},"صحت تطبیق هویت:"," عدم همگام‌سازی به‌موقع این مقدار در سناریوهای ورود و خروج، فرآیندهای تطبیق هویت و تفکیک حساب‌های کاربری را دچار اختلال می‌سازد.",[407,987,990,993],{":ui":409,"className":988,"close-text":413,"name":989,"open-text":413},[411,412],"نصب چندباره ماژول در فضا",[209,991,992],{},"هر ماژول کلاینت یک تنظیمات مستقل لندر دارد. در صورت وجود جریان‌های تعاملی کاملاً مجزا، توصیه می‌شود ماژول کلاینت را به تعداد مورد نیاز نصب کنید:",[229,994,995,1001],{},[232,996,997,1000],{},[213,998,999],{},"کسب‌وکارهای چندگانه (هلدینگ):"," برای هر کسب‌وکار یک پروژه مجزا تعریف نموده و ماژول کلاینت را به تفکیک نصب نمایید.",[232,1002,1003,1006],{},[213,1004,1005],{},"تفکیک پلتفرم‌های دوسویه:"," در سامانه‌های دارای دو سمت عرضه و تقاضا (نظیر پنل تامین‌کنندگان و اپلیکیشن مشتریان)، هر بخش دارای ماژول کلاینت اختصاصی خود باشد.",[407,1008,1011,1030],{":ui":409,"className":1009,"close-text":413,"name":1010,"open-text":413},[411,412],"نام‌گذاری استاندارد رویدادها",[229,1012,1013,1024],{},[232,1014,1015,1016,1019,1020,1023],{},"نام رویدادها به زبان انگلیسی و با فرمت حروف کوچک و خط زیرین (",[280,1017,1018],{},"snake_case"," مانند ",[280,1021,1022],{},"add_to_cart",") تعریف شوند.",[232,1025,1026,1027,1029],{},"نام رویداد کلی باشد و جزئیات مکانی یا موضوعی درون ستون ",[280,1028,370],{}," ارسال گردند:",[1031,1032,1034,1118],"code-group",{"dir":1033},"ltr",[1035,1036,1042],"pre",{"className":1037,"code":1038,"filename":1039,"language":1040,"meta":1041,"style":1041},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"event\": \"click_sales\",\n  \"meta\": {\"event_type\": \"menu\"}\n}\n","حالت پیشنهادی","json","",[280,1043,1044,1053,1079,1113],{"__ignoreMap":1041},[1045,1046,1049],"span",{"class":1047,"line":1048},"line",1,[1045,1050,1052],{"class":1051},"sMK4o","{\n",[1045,1054,1056,1059,1062,1065,1067,1070,1074,1076],{"class":1047,"line":1055},2,[1045,1057,1058],{"class":1051},"  \"",[1045,1060,502],{"class":1061},"spNyl",[1045,1063,1064],{"class":1051},"\"",[1045,1066,371],{"class":1051},[1045,1068,1069],{"class":1051}," \"",[1045,1071,1073],{"class":1072},"sfazB","click_sales",[1045,1075,1064],{"class":1051},[1045,1077,1078],{"class":1051},",\n",[1045,1080,1082,1084,1086,1088,1090,1093,1095,1099,1101,1103,1105,1108,1110],{"class":1047,"line":1081},3,[1045,1083,1058],{"class":1051},[1045,1085,370],{"class":1061},[1045,1087,1064],{"class":1051},[1045,1089,371],{"class":1051},[1045,1091,1092],{"class":1051}," {",[1045,1094,1064],{"class":1051},[1045,1096,1098],{"class":1097},"sBMFI","event_type",[1045,1100,1064],{"class":1051},[1045,1102,371],{"class":1051},[1045,1104,1069],{"class":1051},[1045,1106,1107],{"class":1072},"menu",[1045,1109,1064],{"class":1051},[1045,1111,1112],{"class":1051},"}\n",[1045,1114,1116],{"class":1047,"line":1115},4,[1045,1117,1112],{"class":1051},[1035,1119,1122],{"className":1037,"code":1120,"filename":1121,"language":1040,"meta":1041,"style":1041},"{\n  \"event\": \"click_sales_menu\",\n  \"meta\": {}\n}\n","حالت غیرپیشنهادی",[280,1123,1124,1128,1147,1160],{"__ignoreMap":1041},[1045,1125,1126],{"class":1047,"line":1048},[1045,1127,1052],{"class":1051},[1045,1129,1130,1132,1134,1136,1138,1140,1143,1145],{"class":1047,"line":1055},[1045,1131,1058],{"class":1051},[1045,1133,502],{"class":1061},[1045,1135,1064],{"class":1051},[1045,1137,371],{"class":1051},[1045,1139,1069],{"class":1051},[1045,1141,1142],{"class":1072},"click_sales_menu",[1045,1144,1064],{"class":1051},[1045,1146,1078],{"class":1051},[1045,1148,1149,1151,1153,1155,1157],{"class":1047,"line":1081},[1045,1150,1058],{"class":1051},[1045,1152,370],{"class":1061},[1045,1154,1064],{"class":1051},[1045,1156,371],{"class":1051},[1045,1158,1159],{"class":1051}," {}\n",[1045,1161,1162],{"class":1047,"line":1115},[1045,1163,1112],{"class":1051},[407,1165,1168,1174],{":ui":409,"className":1166,"close-text":413,"name":1167,"open-text":413},[411,412],"ارسال داده مسطح در meta",[209,1169,1170,1171,1173],{},"پیشنهاد می‌شود مقادیر ارسالی در ستون ",[280,1172,370],{}," به صورت مسطح (Flat JSON) باشند و از ارسال ساختارهای تو در تو خودداری شود تا سرعت کوئری‌نویسی و پردازش داده‌ها حفظ گردد:",[1031,1175,1176,1247],{"dir":1033},[1035,1177,1180],{"className":1037,"code":1178,"filename":1179,"language":1040,"meta":1041,"style":1041},"{\n  \"product_id\": 1001,\n  \"product_name\": \"Mobile Phone\",\n  \"category\": \"Electronics\"\n}\n","مسطح (پیشنهادی)",[280,1181,1182,1186,1203,1223,1242],{"__ignoreMap":1041},[1045,1183,1184],{"class":1047,"line":1048},[1045,1185,1052],{"class":1051},[1045,1187,1188,1190,1193,1195,1197,1201],{"class":1047,"line":1055},[1045,1189,1058],{"class":1051},[1045,1191,1192],{"class":1061},"product_id",[1045,1194,1064],{"class":1051},[1045,1196,371],{"class":1051},[1045,1198,1200],{"class":1199},"sbssI"," 1001",[1045,1202,1078],{"class":1051},[1045,1204,1205,1207,1210,1212,1214,1216,1219,1221],{"class":1047,"line":1081},[1045,1206,1058],{"class":1051},[1045,1208,1209],{"class":1061},"product_name",[1045,1211,1064],{"class":1051},[1045,1213,371],{"class":1051},[1045,1215,1069],{"class":1051},[1045,1217,1218],{"class":1072},"Mobile Phone",[1045,1220,1064],{"class":1051},[1045,1222,1078],{"class":1051},[1045,1224,1225,1227,1230,1232,1234,1236,1239],{"class":1047,"line":1115},[1045,1226,1058],{"class":1051},[1045,1228,1229],{"class":1061},"category",[1045,1231,1064],{"class":1051},[1045,1233,371],{"class":1051},[1045,1235,1069],{"class":1051},[1045,1237,1238],{"class":1072},"Electronics",[1045,1240,1241],{"class":1051},"\"\n",[1045,1243,1245],{"class":1047,"line":1244},5,[1045,1246,1112],{"class":1051},[1035,1248,1251],{"className":1037,"code":1249,"filename":1250,"language":1040,"meta":1041,"style":1041},"{\n  \"product\": {\n    \"id\": 1001,\n    \"name\": \"Mobile Phone\"\n  }\n}\n","تودرتو (غیرپیشنهادی)",[280,1252,1253,1257,1271,1287,1304,1309],{"__ignoreMap":1041},[1045,1254,1255],{"class":1047,"line":1048},[1045,1256,1052],{"class":1051},[1045,1258,1259,1261,1264,1266,1268],{"class":1047,"line":1055},[1045,1260,1058],{"class":1051},[1045,1262,1263],{"class":1061},"product",[1045,1265,1064],{"class":1051},[1045,1267,371],{"class":1051},[1045,1269,1270],{"class":1051}," {\n",[1045,1272,1273,1276,1279,1281,1283,1285],{"class":1047,"line":1081},[1045,1274,1275],{"class":1051},"    \"",[1045,1277,1278],{"class":1097},"id",[1045,1280,1064],{"class":1051},[1045,1282,371],{"class":1051},[1045,1284,1200],{"class":1199},[1045,1286,1078],{"class":1051},[1045,1288,1289,1291,1294,1296,1298,1300,1302],{"class":1047,"line":1115},[1045,1290,1275],{"class":1051},[1045,1292,1293],{"class":1097},"name",[1045,1295,1064],{"class":1051},[1045,1297,371],{"class":1051},[1045,1299,1069],{"class":1051},[1045,1301,1218],{"class":1072},[1045,1303,1241],{"class":1051},[1045,1305,1306],{"class":1047,"line":1244},[1045,1307,1308],{"class":1051},"  }\n",[1045,1310,1312],{"class":1047,"line":1311},6,[1045,1313,1112],{"class":1051},[407,1315,1318,1324,1347,1349],{":ui":409,"className":1316,"close-text":413,"name":1317,"open-text":413},[411,412],"تفکیک داده‌های هویتی و مالی",[209,1319,1320,1321,1323],{},"به جای تجمیع مشخصات کاربران یا اطلاعات مالی در ستون ",[280,1322,370],{},"، توصیه می‌شود جداول مجزایی در انبار داده برای کاربران و تراکنش‌ها بسازید و داده‌های آن‌ها را به صورت سرورساید ارسال نمایید تا نرخ مغایرت به صفر برسد؛ سپس به کمک ستون‌های متناظر در ماژول کلاینت می‌توانید به سادگی عملیات جوین (Join) را انجام دهید:",[229,1325,1326,1338],{},[232,1327,1328,1331,1332,1334,1335,1337],{},[213,1329,1330],{},"مشخصات کاربران:"," در سمت کلاینت تنها به نگهداری شناسه کاربر (",[280,1333,958],{},") بسنده شود و مشخصات هویتی و پروفایل مستقیماً به جدول سرورساید کاربران ارسال گردند تا از طریق ستون ",[280,1336,282],{}," متصل شوند.",[232,1339,1340,1343,1344,1346],{},[213,1341,1342],{},"اطلاعات تراکنش‌ها:"," در رویدادهای خرید، صرفاً شناسه یکتای تراکنش در ستون ",[280,1345,549],{}," ثبت شود و ارقام مالی، فاکتورها و وضعیت پرداخت به جداول وقایع مالی سرورساید منتقل گردند.",[254,1348],{},[1350,1351,1352],"note",{},[209,1353,1354,1355,1357],{},"چنانچه قصد ارسال ارزش تبدیل (Conversion Value) به گوگل ادز یا سایر شبکه‌های تبلیغاتی را به صورت وابسته به سورس ورودی دارید، توصیه می‌شود صرفاً رقم ارزش تبدیل را درون ستون ",[280,1356,370],{}," قرار دهید تا جهت ارسال مستقیم به این سامانه‌ها استفاده گردد.",[1359,1360,1361],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":1041,"searchDepth":1048,"depth":1055,"links":1363},[1364,1365,1366,1367],{"id":223,"depth":1081,"text":224},{"id":267,"depth":1081,"text":268},{"id":401,"depth":1081,"text":402},{"id":945,"depth":1081,"text":14},"آشنایی با ماژول کلاینت و جمع‌آوری داده‌های رفتاری کاربران (Lander SDK) به عنوان جایگزین گوگل آنالیتیکس و تگ منیجر در داده‌لند.","md",null,{},true,{"title":175,"description":1368},"_QU6jMceFyW5jwGismLnU_cPSSGvfFbwyGm8Ek24Cf8",1793189280775]