فرهنگنامهٔ رویدادها برای هر نوع کسبوکار
فهرست آمادهٔ رویدادها و ویژگیهایشان برای فروشگاه اینترنتی، سوپراپ، فینتک، سفر، آموزش و اشتراک محتوا. کپی کنید و شروع کنید.
این صفحه برای کپیکردن نوشته شده است. شش نوع کسبوکار، و برای هرکدام فهرستی از رویدادها با ویژگیهایشان که میتوانید همانطور که هست بردارید و کار را شروع کنید. قاعدههای پشت این انتخابها در تعریف رویداد است؛ اگر هنوز آن را نخواندهاید، دستکم بخش درآمد را بخوانید، چون تنها جایی است که یک نام ویژگی، عدد پرونده کاربر را عوض میکند. و برای اینکه این فهرست را واقعا روی سایت یا اپ خودتان بنشانید، گذاشتن رویداد را ببینید. و اگر میخواهید در پیامها محصول پیشنهاد بدهید، شناسهای که اینجا در product_id میگذارید باید با کاتالوگ محصولات یکی باشد.
چطور این فهرست را بخوانید
ستون «وضعیت» در همه جدولها دو مقدار دارد و فرقشان مهم است:
- استاندارد یعنی این نام در خود پلتفرم اعلام شده است و در پنل برچسب فارسی میگیرد. همین و نه بیشتر.
- پیشنهادی یعنی این نام قرارداد ماست. پلتفرم آن را نمیشناسد و مثل هر نام دیگری با آن رفتار میکند. میتوانید عوضش کنید؛ فقط قبل از اولین ارسال عوضش کنید.
یک تصور غلط رایج را همینجا ببندیم: «استاندارد» بهمعنی «در فهرست انتخاب رویداد هست» نیست. سگمنتساز تا بارگذاری اسکیمای واقعی تنانت، ده نام ثابت را نشان میدهد (order_completed، product_viewed، product_added_to_cart، checkout_started، order_refunded، searched، app_opened، signed_up، message_opened، message_clicked) و بعد از آن فهرست را از رویدادهای واقعی خودتان میسازد. سناریوساز هم فقط هشت نام را برچسب میزند. نام استانداردی که هرگز نفرستادهاید، در هیچ فهرستی ظاهر نمیشود.
سه چیزی که باید در فهرست «استاندارد» جدا نگه دارید:
فقط سه نام واقعا رفتار دارند. order_completed مبلغ را به total_revenue پرونده اضافه میکند، order_count را یکی بالا میبرد و last_order_at را جلو میبرد. order_refunded و order_cancelled قدرمطلق مبلغ را کم میکنند و شمارش سفارش را یکی پایین میآورند، هر دو با کف صفر. بقیه نامهای استاندارد هیچ رفتاری ندارند.
استاندارد یعنی شناختهشده، نه خودکار. هیچ رویدادی خودبهخود فرستاده نمیشود. نامهای app_installed و app_opened و app_updated و app_removed و session_started و session_ended در کد بهعنوان «رویدادهای چرخه عمر که SDKها خودکار میفرستند» اعلام شدهاند، ولی هیچ SDKای آنها را نمیفرستد. اگر میخواهیدشان، خودتان بفرستید.
**نامهای message_* را خودتان نفرستید.** آنها را ورکرهای خود سگمنتیک مینویسند و در بخش رویدادهایی که سگمنتیک مینویسد فهرست شدهاند.
نامهایی که پلتفرم میشناسد
| نام | برچسب در پنل | کد چه میکند |
|---|---|---|
order_completed | خرید | درآمد و شمارش سفارش پرونده را بالا میبرد، last_order_at را جلو میبرد، و شمارنده orders در گزارش روزانه را میسازد |
order_refunded | مرجوعی | درآمد و شمارش سفارش را کم میکند، با کف صفر |
order_cancelled | لغو سفارش | همان کار order_refunded |
product_viewed | مشاهده محصول | هیچ. فقط برچسب |
product_added_to_cart | افزودن به سبد | هیچ |
product_removed_from_cart | حذف از سبد | هیچ |
cart_viewed | مشاهده سبد | هیچ |
checkout_started | شروع پرداخت | هیچ |
searched | جستجو | هیچ |
signed_up | ثبتنام | هیچ |
signed_in | ورود | هیچ |
app_opened | باز کردن اپ | هیچ، و هیچ SDKای آن را نمیفرستد |
page_viewed | مشاهده صفحه | نام پیشفرض یک پیام page بدون نام |
screen_viewed | ندارد | نام پیشفرض یک پیام screen بدون نام |
ویژگیهایی که روی هر رویداد میگذارید
قبل از جدولها، پنج قاعده که در هر شش کسبوکار یکی است.
زمینه را دوباره نفرستید. context همین حالا دستگاه، سیستمعامل، نسخه اپ، صفحه، کمپین و منطقه زمانی را حمل میکند و کلکتور آنها را در ستونهای خودشان میگذارد. ویژگی platform روی هر رویداد فقط یک نسخه بدتر از device_type است.
شناسهها را رشته بفرستید. "order_id": "A-100294" نه "order_id": 100294. عدد بهشکل متن هم ذخیره میشود، ولی رشته از اول با سیستم خودتان join میشود.
عدد را عدد بفرستید و بولی را بولی. "quantity": 3 نه "quantity": "3". رشته عددشکل هرگز به نقشه عددی نمیرود و فیلتر «بیشتر از» روی آن هیچوقت جواب نمیدهد.
برای مقدار ویژگیها یک زبان انتخاب کنید و بمانید. مقدارها همانطور که فرستاده میشوند ذخیره میشوند (فقط با نرمالسازی فارسی). gold و طلایی دو مقدار جدا هستند و در یک سگمنت نمیافتند.
revenue و total و value و جفت price با quantity را فقط روی رویداد پولی بگذارید. درآمد از هر رویدادی که این کلیدها را داشته باشد استخراج میشود و به ارزش طول عمر آن کاربر اضافه میشود. برای مبلغی که پول واقعی نیست از نام دیگری استفاده کنید. در جدولهای زیر عمدا unit_price و cart_total و amount آمده است، چون هیچکدام رزرو نیستند.
فروشگاه اینترنتی
| نام رویداد | وضعیت | چه وقت بفرستید | ویژگیها |
|---|---|---|---|
product_viewed | استاندارد | صفحه محصول باز شد | product_id رشته، product_name رشته، category رشته، brand رشته، unit_price عدد، currency رشته، in_stock بولی |
searched | استاندارد | جستوجو ثبت شد | query رشته، results_count عدد، sort رشته، filters رشته |
product_added_to_cart | استاندارد | افزودن به سبد | product_id رشته، product_name رشته، unit_price عدد، quantity عدد، cart_size عدد |
product_removed_from_cart | استاندارد | حذف از سبد | product_id رشته، quantity عدد، cart_size عدد |
cart_viewed | استاندارد | صفحه سبد باز شد | cart_size عدد، cart_total عدد، currency رشته |
checkout_started | استاندارد | ورود به مرحله پرداخت | cart_size عدد، cart_total عدد، currency رشته، shipping_method رشته، coupon_code رشته |
order_completed | استاندارد | پرداخت موفق شد | order_id رشته، revenue عدد، currency رشته، item_count عدد، shipping_cost عدد، discount عدد، coupon_code رشته، payment_method رشته |
order_refunded | استاندارد | مرجوعی تایید شد | order_id رشته، revenue عدد یعنی مبلغ برگشتی، currency رشته، reason رشته |
order_cancelled | استاندارد | سفارش پیش از ارسال لغو شد | order_id رشته، revenue عدد، currency رشته، cancelled_by رشته |
signed_up | استاندارد | ثبتنام کامل شد | method رشته، referral_code رشته |
signed_in | استاندارد | ورود موفق | method رشته |
order_shipped | پیشنهادی | مرسوله تحویل پست شد | order_id رشته، carrier رشته، hours_since_order عدد |
order_delivered | پیشنهادی | مرسوله به دست مشتری رسید | order_id رشته، carrier رشته، days_since_order عدد |
review_submitted | پیشنهادی | نظر ثبت شد | product_id رشته، rating عدد، has_photo بولی |
wishlist_item_added | پیشنهادی | افزودن به علاقهمندی | product_id رشته، unit_price عدد |
back_in_stock_requested | پیشنهادی | درخواست اطلاع از موجودی | product_id رشته |
قیف پیشفرضی که با همین فهرست کار میکند: product_viewed بعد product_added_to_cart بعد checkout_started بعد order_completed. سگمنت «سبد رهاشده» هم همان است: کسی که در هفت روز گذشته product_added_to_cart داشته و order_completed نداشته.
curl -X POST https://in.segmentic.net/v1/track \
-H "Content-Type: application/json" \
-H "Authorization: Bearer wk_seg_..." \
-d '{
"message_id": "b3d51f28-4c6a-4b1e-9d70-2f8a3c5e7d10",
"user_id": "u_88123",
"event": "order_completed",
"timestamp": "2026-08-07T10:02:41.000Z",
"properties": {
"order_id": "A-100294",
"revenue": 2450000,
"currency": "IRR",
"item_count": 3,
"shipping_cost": 49000,
"discount": 150000,
"coupon_code": "NOWRUZ",
"payment_method": "gateway"
}
}'
{"status":"ok","accepted":1}
سوپراپ و درخواست خودرو
| نام رویداد | وضعیت | چه وقت بفرستید | ویژگیها |
|---|---|---|---|
app_opened | استاندارد | هر بار اپ به پیشزمینه میآید. خودتان باید بفرستید | is_first_open بولی، source رشته |
service_selected | پیشنهادی | کاربر یکی از سرویسهای سوپراپ را باز کرد | service رشته |
ride_requested | پیشنهادی | درخواست سفر ثبت شد | ride_id رشته، service_class رشته، origin_city رشته، destination_city رشته، estimated_fare عدد، surge_multiplier عدد |
ride_accepted | پیشنهادی | راننده پذیرفت | ride_id رشته، wait_seconds عدد |
ride_cancelled | پیشنهادی | سفر پیش از پایان لغو شد | ride_id رشته، cancelled_by رشته، seconds_to_cancel عدد |
ride_completed | پیشنهادی | سفر تمام شد و کرایه قطعی شد | ride_id رشته، revenue عدد، currency رشته، distance_km عدد، duration_minutes عدد، payment_method رشته |
ride_rated | پیشنهادی | امتیاز ثبت شد | ride_id رشته، rating عدد |
order_completed | استاندارد | سفارش غذا یا خرید فروشگاهی پرداخت شد | order_id رشته، revenue عدد، currency رشته، vendor_id رشته، item_count عدد، service رشته |
wallet_topped_up | پیشنهادی | کیف پول شارژ شد | revenue عدد، currency رشته، method رشته |
promo_applied | پیشنهادی | کد تخفیف اعمال شد | coupon_code رشته، discount عدد، service رشته |
support_ticket_opened | پیشنهادی | تیکت پشتیبانی باز شد | topic رشته، service رشته، ride_id رشته |
اینجا revenue روی wallet_topped_up و ride_completed عمدی است. کد صریحا این حالت را در نظر گرفته: درآمد از هر رویدادی جمع میشود، نه فقط سفارش، چون مشتری ممکن است اشتراک یا شارژ را رویداد خودش بداند. اما توجه کنید که فقط order_completed شمارنده order_count را بالا میبرد، پس «تعداد سفارش» در پرونده، سفرها را نمیشمارد.
ویژگی service را روی هر رویداد سوپراپ بگذارید. بدون آن نمیتوانید بپرسید «کسی که تاکسی گرفته ولی هرگز غذا سفارش نداده».
فینتک و پرداخت
| نام رویداد | وضعیت | چه وقت بفرستید | ویژگیها |
|---|---|---|---|
signed_up | استاندارد | ثبتنام کامل شد | method رشته، referral_code رشته |
kyc_started | پیشنهادی | کاربر وارد فرایند احراز هویت شد | level رشته، hours_since_signup عدد |
kyc_submitted | پیشنهادی | مدارک ارسال شد | level رشته، document_type رشته |
kyc_approved | پیشنهادی | احراز هویت تایید شد | level رشته، hours_to_approve عدد |
kyc_rejected | پیشنهادی | احراز هویت رد شد | level رشته، reason رشته |
card_linked | پیشنهادی | کارت بانکی متصل شد | bank رشته، card_type رشته |
transfer_completed | پیشنهادی | انتقال وجه انجام شد | transfer_id رشته، amount عدد، currency رشته، destination_type رشته |
bill_paid | پیشنهادی | قبض پرداخت شد | bill_type رشته، amount عدد، currency رشته |
payment_completed | پیشنهادی | پرداخت در پذیرنده انجام شد | revenue عدد یعنی کارمزد شما، currency رشته، merchant_id رشته، category رشته، amount عدد |
loan_application_started | پیشنهادی | درخواست تسهیلات آغاز شد | amount عدد، term_months عدد |
loan_approved | پیشنهادی | تسهیلات تایید شد | amount عدد، term_months عدد، days_to_decision عدد |
investment_order_placed | پیشنهادی | سفارش خرید یا فروش دارایی ثبت شد | asset رشته، side رشته، amount عدد |
اینجا amount عمدا بهجای revenue آمده. مبلغ انتقال وجه، پول شما نیست: اگر آن را revenue بنامید، total_revenue هر کاربر برابر گردش حسابش میشود و سگمنت «مشتری پرارزش» عملا «کسی که زیاد پول جابهجا میکند» میشود. روی payment_completed هر دو آمده است، چون هر دو عدد را میخواهید: revenue کارمزدی که مال شماست و amount مبلغی که کاربر پرداخته.
شماره کارت، شماره شبا، cvv و توکن پرداخت را در ویژگیها نگذارید. ویژگیهای رویداد عینا در صفحه تایملاین کاربر به تیم پشتیبانی نشان داده میشوند و در خروجی CSV هم میآیند. اگر لازم دارید، چهار رقم آخر را در یک ویژگی جدا مثل card_last4 بگذارید.
سفر و رزرو
| نام رویداد | وضعیت | چه وقت بفرستید | ویژگیها |
|---|---|---|---|
searched | استاندارد | جستوجوی مسیر یا اقامتگاه ثبت شد | origin رشته، destination رشته، depart_date رشته، return_date رشته، passengers عدد، results_count عدد |
product_viewed | استاندارد | یک پرواز، هتل یا تور باز شد | product_id رشته، product_type رشته، unit_price عدد، currency رشته، star_rating عدد |
checkout_started | استاندارد | فرایند رزرو شروع شد | cart_total عدد، currency رشته، passengers عدد، product_type رشته |
order_completed | استاندارد | رزرو قطعی و پرداخت شد | order_id رشته، revenue عدد، currency رشته، product_type رشته، origin رشته، destination رشته، depart_date رشته، days_to_departure عدد |
order_cancelled | استاندارد | رزرو لغو شد | order_id رشته، revenue عدد، refund_amount عدد، days_to_departure عدد |
trip_started | پیشنهادی | روز حرکت رسید | order_id رشته، product_type رشته، destination رشته |
trip_completed | پیشنهادی | سفر تمام شد | order_id رشته، product_type رشته، nights عدد |
price_alert_created | پیشنهادی | هشدار قیمت ساخته شد | origin رشته، destination رشته، target_price عدد |
booking_modified | پیشنهادی | تاریخ یا مسافر عوض شد | order_id رشته، change_type رشته، fee عدد |
days_to_departure روی خود رویداد ذخیره میشود، نه محاسبه در زمان پرسوجو. تفاوتش این است که چند ماه بعد هنوز میتوانید بپرسید «چند نفر در فاصله کمتر از سه روز مانده به پرواز رزرو کردند»، در حالی که اگر فقط depart_date را داشته باشید باید در زمان گزارش دو رشته را تفریق کنید و رشته تاریخ در نقشه ویژگیها متن است.
آموزش
| نام رویداد | وضعیت | چه وقت بفرستید | ویژگیها |
|---|---|---|---|
signed_up | استاندارد | ثبتنام کامل شد | method رشته، referral_code رشته |
course_viewed | پیشنهادی | صفحه دوره باز شد | course_id رشته، course_name رشته، category رشته، unit_price عدد، is_free بولی |
course_enrolled | پیشنهادی | ثبتنام در دوره انجام شد | course_id رشته، is_free بولی |
order_completed | استاندارد | دوره یا اشتراک خریداری شد | order_id رشته، revenue عدد، currency رشته، course_id رشته |
lesson_started | پیشنهادی | یک جلسه باز شد | course_id رشته، lesson_id رشته، lesson_index عدد |
lesson_completed | پیشنهادی | جلسه تا انتها دیده شد | course_id رشته، lesson_id رشته، lesson_index عدد، watch_seconds عدد |
quiz_submitted | پیشنهادی | آزمون ثبت شد | course_id رشته، quiz_id رشته، score عدد، passed بولی |
assignment_submitted | پیشنهادی | تکلیف ارسال شد | course_id رشته، assignment_id رشته، days_late عدد |
certificate_issued | پیشنهادی | گواهی صادر شد | course_id رشته، days_to_complete عدد |
course_abandoned | پیشنهادی | مدتی است جلسهای باز نشده و شما آن را رها شده میدانید | course_id رشته، last_lesson_index عدد، days_idle عدد |
course_abandoned را باید سیستم خودتان تصمیم بگیرد و از سرور بفرستد؛ پلتفرم رویدادی از روی نبود رویداد نمیسازد. اگر نمیخواهید آن را بسازید، همان کار را با یک سناریو انجام دهید که بعد از lesson_completed منتظر میماند.
درصد پیشرفت دوره را بهعنوان ویژگی پرونده نگذارید، مگر کاربر فقط یک دوره داشته باشد. ویژگی پرونده یک مقدار برای هر آدم است، پس با دو دوره، دومی اولی را پاک میکند.
اشتراک محتوا
| نام رویداد | وضعیت | چه وقت بفرستید | ویژگیها |
|---|---|---|---|
signed_up | استاندارد | حساب ساخته شد | method رشته |
content_viewed | پیشنهادی | پخش یک قسمت یا خواندن یک مقاله شروع شد | content_id رشته، content_type رشته، title رشته، genre رشته، is_premium بولی |
content_completed | پیشنهادی | تا انتها دیده یا خوانده شد | content_id رشته، watch_seconds عدد، completion_ratio عدد |
paywall_viewed | پیشنهادی | دیوار پرداخت نمایش داده شد | content_id رشته، plan_shown رشته |
trial_started | پیشنهادی | دوره آزمایشی شروع شد | plan رشته، trial_days عدد |
subscription_started | پیشنهادی | اشتراک فعال شد و پول گرفته شد | plan رشته، revenue عدد، currency رشته، billing_period رشته |
subscription_renewed | پیشنهادی | تمدید خودکار انجام شد | plan رشته، revenue عدد، currency رشته، renewal_number عدد |
subscription_cancelled | پیشنهادی | کاربر لغو کرد | plan رشته، reason رشته، days_subscribed عدد |
payment_failed | پیشنهادی | تمدید ناموفق بود | plan رشته، attempt عدد، failure_code رشته |
download_started | پیشنهادی | دانلود برای تماشای آفلاین | content_id رشته، content_type رشته |
نکتهای که در اشتراک همیشه غافلگیر میکند: subscription_cancelled هیچ پولی را برنمیگرداند. فقط order_refunded و order_cancelled از total_revenue کم میکنند. لغو اشتراک یعنی تمدید بعدی نمیآید، نه اینکه پول ماههای قبل پس داده شود، و پرونده هم همین را نشان میدهد.
ویژگیهای پرونده که با identify میفرستید
اینها کلیدهایی هستند که کد به آنها معنی میدهد و به ستون واقعی پرونده تبدیل میشوند:
| کلید | نوع | نکته |
|---|---|---|
email | رشته | فقط کوچک میشود، بدون بررسی قالب |
phone | رشته | تجزیه و به شکل E.164 ذخیره میشود، بهعلاوه phone_operator |
first_name و last_name | رشته | همانطور که فرستاده میشود |
gender | رشته | به male یا female یا other نگاشت میشود |
birthday | تاریخ | قالبهای 2006-01-02 و 2006/01/02 و RFC3339 پذیرفته میشوند؛ تاریخ بدشکل بیصدا حذف میشود |
national_id | رشته | رقم کنترلی بررسی میشود؛ نامعتبر کلا حذف میشود |
city و region و country | رشته | اگر نفرستید، از موقعیت مکانی رویداد پر میشوند |
language | رشته | اگر نفرستید، از بخش اول locale پر میشود |
timezone | رشته | اگر نفرستید، از context.timezone رویداد پر میشود |
push_opt_in و email_opt_in و sms_opt_in | بولی | مقدارهای درست: true و 1 و yes و on و «بله». هر چیز دیگری نادرست است |
پرونده تازه هر سه رضایت را روشن میسازد. دلیلش این است که پایگاه مشتری موجود شما از قبل در فرایند خودتان رضایت داده است، و اگر پیشفرض خاموش بود، اولین کمپین شما به هیچکس نمیرسید.
name و created_at هم بهعنوان کلید رزرو اعلام شدهاند، ولی به ستون تبدیل نمیشوند و ویژگی معمولی میمانند. اگر نام کامل را میخواهید، first_name و last_name را بفرستید.
هر کلید دیگری ویژگی آزاد است و در دو نقشه traits و traits_num مینشیند. برای فروشگاه معمولا اینها را هم میفرستند: loyalty_tier رشته، loyalty_points عدد، is_wholesale بولی، preferred_category رشته.
curl -X POST https://in.segmentic.net/v1/identify \
-H "Content-Type: application/json" \
-H "Authorization: Bearer wk_seg_..." \
-d '{
"message_id": "c74a9e01-5f22-4a8b-8c31-7ee2d9b40a55",
"user_id": "u_88123",
"traits": {
"phone": "09123456789",
"email": "Hamid@Example.com",
"first_name": "حمید",
"city": "تهران",
"birthday": "1993-04-11",
"sms_opt_in": true,
"loyalty_tier": "gold",
"loyalty_points": 1840
}
}'
{"status":"ok","accepted":1}
نتیجه روی پرونده: phone به +989123456789 تبدیل میشود و phone_operator برابر mci نوشته میشود، email به hamid@example.com تبدیل میشود، loyalty_points هم در نقشه متنی و هم در نقشه عددی مینشیند تا فیلتر «بیشتر از» کار کند، و loyalty_tier فقط متنی میماند.
رویدادهایی که سگمنتیک مینویسد
این چهار نام را ورکرهای خود پلتفرم داخل جریان رویدادهای شما مینویسند. خودتان نفرستیدشان، ولی میتوانید مثل هر رویداد دیگری روی آنها سگمنت و قیف بسازید.
| نام | چه وقت نوشته میشود | ویژگیها |
|---|---|---|
message_sent | ارسال موفق یک پیام کمپین | channel، category، transport، node_id، arm که treatment یا control است، can_open، can_click. بهعلاوه why_open و why_click وقتی سنجش ممکن نباشد، که جملههای فارسی آماده چاپاند |
message_failed | ارسال شکست خورد | همان مجموعه، بهعلاوه reason |
message_withheld | کاربر برای کمپین انتخاب شد و عمدا پیامی نرفت | همان مجموعه، با arm برابر control و reason برابر دلیل نگهداشتن |
message_opened | نقطه ردیابی باز شدن پیام صدا زده شد | هیچ ویژگیای ندارد. شناسه پیام کمپین در source_message_id مینشیند و دستگاه و موقعیت از همان درخواستی میآید که نرمافزار ایمیل زده است |
message_id این رویدادها ترکیب شناسه درخواست و نام رویداد است، تا ارسال و شکست یک پیام در حذف تکراری به هم نخورند.
نامهای message_delivered و message_bounced و unsubscribed بهعنوان ثابت اعلام شدهاند و هیچ جای دیگر بکاند از آنها استفاده نمیکند: نه ورکری آنها را مینویسد و نه چیزی آنها را میخواند، پس گزارشی که روی message_delivered بسازید خالی برمیگردد. با این حال خود پنل رویداد تحویل میخواهد. قالب داشبورد «عملکرد پیامرسانی» و متریکهای پایه «نرخ تحویل پیام» و «نرخ بازشدن پیام» و «نرخ کلیک پیام» هرکدام به یک رویداد تحویل نیاز دارند که از اسکیمای رویداد خودتان به آنها وصل شود، و تا اسمی ندهید فعالسازی جلو نمیرود، پس اگر خودتان رویداد تحویل نفرستید، آن داشبورد و آن سه متریک هرگز ساخته نمیشوند.
آنچه کم است رویداد است، نه داده. گزارش کمپین شمار پیامهای تحویلشده خودش را از رسیدهایی میگیرد که مسیر ارسال پس میفرستد، سرویس تحویلپذیری برگشتیها را از مسیر بازگشت SMTP میخواند و روی فهرست مسدود مینویسد، و لغو اشتراک روی پرونده آن آدم در مرکز تنظیمات مینشیند و در ارسال بعدی بهعنوان دلیل سرکوب برمیگردد. هیچکدام اینها بهشکل سطر وارد جریان رویداد شما نمیشود.
ورکر انتساب دقیقا چهار نام را میشناسد، message_sent و message_withheld و message_opened و message_clicked، و هر رویداد دیگری را که به دستش برسد نادیده میگیرد. message_clicked را هم ورکر نمینویسد: SDK وب آن را وقتی میفرستد که بازدیدکننده روی لینکی با sg_mid وارد سایت شود، یک بار، تا وقتی شناسه پیام دیگری جایش را بگیرد. مقایسه با همان یک شناسه داخل حافظه است نه با تاریخچهای از شناسهها، پس بازدیدکنندهای که روی یک پیام بیاید، بعد روی پیام دوم، و بعد دوباره روی همان پیام اول، کلیک پیام اول را دو بار گزارش میکند.
قدم بعد: هویت میگوید این رویدادها چطور به یک آدم وصل میشوند، و تعریف رویداد فهرست تصمیمهایی را دارد که بعدا برگشت ندارند.