چگونه ردیابی S2S و postbacks کار
1) S2S چیست و چرا مورد نیاز است
S2S (سرور به سرور) ردیابی تبادل وقایع بین سرورهای منبع ترافیک (redirector/tracker/network) و سرورهای اپراتور (کازینو) بدون وابستگی به کوکی ها و قفل های مرورگر است.
Postback - یک درخواست HTTP خروجی با یک رویداد (reg/KYC/FTD/2nd_dep/...) از باطن فرستنده به URL گیرنده.
مزایای استفاده:- داده ها به دلیل حالت های adblock/ITP/private از بین نمی روند.
- دقت بالاتر انتساب و کیفیت صدور صورت حساب.
- شما می توانید با خیال راحت انتقال مقدار/ارز و خدمات پرچم.
2) زنجیره پایه و نقش
1. کلیک کنید: کاربر بر روی آگهی کلیک می کند → هدایت کننده شما یک «click _ id» ایجاد می کند و پارامترها (utm، geo، device، sub_id) را وارد می کند.
2. تغییر مسیر: کاربر به فرود اپراتور می رود، «click _ id» به URL منتقل می شود یا رمزگذاری می شود.
3. ثبت نام/CCM/سپرده در اپراتور رخ می دهد.
4. Postbacks: سرور اپراتور رویدادهای «ثبت نام»، «kyc _ approved»، «deposit _ success» و غیره را به ردیاب شما ارسال می کند و آنها را به «click _ id» اصلی متصل می کند.
5. BI/Reporting: شما رویدادها را در بخش های UTM/creative/geo/device جمع می کنید، CPA/ROAS/LTV را در نظر بگیرید.
طرح متن:
Ad → Click → [تغییر مسیر شما باعث ایجاد click_id میشود] → LP/App →
↑ │
پست └──────── (S2S) ─┘
3) شناسه رویداد و پیوند
click_id (اجباری) - شناسه منحصر به فرد اولین لمس ؛ کلید شناسایی
event_id (زرد) - شناسه منحصر به فرد هر رویداد (برای idempotency).
user_id/ account_id (عمده فروشی) - شناسه بازیکن در طرف اپراتور (فقط به S2S منتقل می شود).
session_id (عمده فروشی) - برای تجزیه UX/سرعت.
aff_sub/campaign/ creative_id - بخش برای تجزیه و تحلیل.
قانون: click_id توسط شما آفریده شده است. اپراتور در کنار آن نقشه برداری 'click _ id ↔ user/account' را ذخیره می کند.
4) زمینه های رویداد: حداقل ترکیب
4. 1. ثبت نام
جی سون
{
"رویداد": "ثبت نام"، " :" "،" : "" ""، "" ":" ""، "دستگاه": "آندروید"، "" " 0. 113. 7»، «ua»: «Mozilla/5. 0"، "امضا": "hmac_sha256 (محموله)"
}
4. 2. KYC تایید شده است
جی سون
{
«رویداد»: « » « :» «» : «» کامل «،» امضا «:»..
}
4. 3. سپرده (FTD/تکرار)
جی سون
{
"رویداد": " " " :" ":" 100 ". 00، "ارز": "USD"، "is_ftd": درست "، payment_method": "کارت پیکسل رمزنگاری کیف پول "،" ts_event": "2025-10-21T15:12:31Z," "امضا": "..
}
فیلدهای مورد نیاز عبارتند از «event»، «event _ id»، «click _ id»، «ts _ event» (UTC)، «signature».
زمینه های ارز همیشه با «ارز» (ISO-4217) و به عنوان اعداد، نه رشته ها.
5) امنیت: امضا و دسترسی
Подпись (HMAC-SHA256): 'امضا = HMAC (مخفی، canonical_payload)'; دستور فیلد canonize → اعتبار پایدار.
توکن های کوتاه مدت (JWT/مات) در سطح مجوز: TTL 5-15 دقیقه.
Idempotence: تکرار POST با همان «event _ id» باید «200 OK» بدون دو برابر شود.
IP allow-list و mTLS (در صورت امکان) بر روی prod.
محدود کردن نرخ: محافظت از نقطه پایانی از «انفجار» و رباتها.
ممنوعیت تغییر مسیر HTTP از نقطه پایانی postbeck ؛ فقط پاسخ های مستقیم
6) قابلیت اطمینان: Retrays، صف و سفارش
صف (Kafka/RabbitMQ/SQS) بین پذیرش رویداد و پردازش گزارش - به طوری که داده ها را در قله از دست ندهید.
Retray با مکث نمایشی و عقب نشینی jitter ؛ محدودیت تلاش و DLQ (صف نامه مرده).
سفارش اختیاری است، اما داشتن 'ts _ event' برای مرتب سازی در BI مطلوب است.
سیاهههای مربوط به درخواست/پاسخ (بدون اطلاعات حساس)، همبستگی توسط «event _ id».
7) مناطق زمانی، ارز و سازگاری
تمبرهای زمانی UTC ('2025-10-21T15: 12: 31Z').
در گزارش ها، منطقه زمانی پروژه را مشخص کنید، اما رویدادها را در UTC ذخیره کنید.
مقادیر را در ارز معامله ذخیره کنید و آنها را در ارز گزارش از طریق نرخ قابل اعتماد (FX مبتنی بر تاریخ) کپی کنید.
8) قوانین تقسیم و کسب و کار
event_id idempotency: تکرار → «قبلاً پردازش شده».
Deduplication توسط (click_id + نوع رویداد + ts-window) به عنوان یک مکانیزم برگشت.
قوانین اعتبار FTD: حداقل سپرده، بدون پاداش «صفر» دوباره پر کردن ؛ اصلاح در قرارداد
بازپرداخت/بازپرداخت رویدادهای جداگانه «درآمد منفی» برای NGR صادقانه است.
9) محرمانه بودن و انطباق
PII را به URL و جلو منتقل نکنید ؛ S2S مکانی برای مناطق حساس است.
رضایت فروشگاه (تجزیه و تحلیل/تبلیغات) و نسخه آنها.
به حداقل رساندن فیلدها: تنها آنچه برای انتساب و صدور صورت حساب مورد نیاز است.
به طور منظم سیاست های ورود به سیستم نگهداری را بررسی کنید.
10) واقعیت های Web2App و تلفن همراه
برای برنامه های کاربردی، اتصال 'click _ id' ↔ 'install _ id' در سمت MMP/SDK.
هنگامی که هیچ شناسه قطعی (حریم خصوصی iOS) وجود ندارد - از قوانین سرور استفاده کنید و S2S «حقیقت» برای صدور صورت حساب باقی می ماند.
11) نظارت و SLAs
معیارها:- postbacks موفق/اشتباه (٪/دقیقه)، p95 تاخیر، نسبت از retrays، نسبت تکراری.
- اختلاف رویداد بین طرفین (اپراتور در مقابل ردیاب) در روز.
- تاخیر تحویل (تاخیر مصرف) و «شکست» ساعت.
- در دسترس بودن پذیرش پست ≥ 99. 5٪ در ماه
- متوسط تاخیر قبل از نوشتن به DWH 60 ثانیه ≤ ؛ پاسخ API p95 ≤ 500ms.
- Desynchronization داده ها> 3% → آشتی اجباری سیاهههای مربوط خام در 5 روز کاری.
12) چک لیست
12. 1. بررسی فنی قبل از راه اندازی
- تغییر مسیر با نسل click_id و سیاهههای مربوط.
- نقطه پایانی Postback: TLS، HMAC، JWT، IP اجازه لیست، idempotency.
- طرح های بارگیری و سفارش فیلد متعارف مستند شده است.
- صف + DLQ ها، Retrays، خطا/هشدار تاخیر.
- زمان UTC، ارز ISO، قوانین FTD/بازپرداخت/بازپرداخت.
- اجرا می شود در sandbox با ثابت سیاهههای مربوط مرجع.
12. 2. چک عملیاتی (هر هفته)
- تطبیق «ردیاب ↔ اپراتور» با حجم رویدادها و مقادیر.
- تجزیه و تحلیل تکراری و «از دست رفته» حوادث ؛ بررسی بازرسیها
- بررسی کلید/نشانه, طول عمر, و چرخش.
- مشاهده حوادث و تنظیم قوانین.
13) اشتباهات مکرر و چگونگی اجتناب از آنها
1. بدون idempotency → FTD تکراری در Retrays. → «event _ id» را وارد کنید و «seen» را ذخیره کنید.
2. مناطق زمانی مختلف → D0/D1 «شناور» → همیشه UTC در رویداد رویداد.
3. مبالغ رشته/کاما → تجزیه خطاها → عبور اعداد با یک دوره و ارز ISO.
4. امضای «خام» JSON → از ترتیب کلیدها جدا می شود. → انجام کانونیزه کردن
5. بدون DLQ/Retrays → از دست دادن حوادث در Microsobes. → صف + عقب نشینی + هشدارها.
6. احراز هویت ضعیف → پست های جعلی → لیست HMAC + JWT + mTLS/IP.
7. عدم وجود قوانین FTD → اختلافات صورتحساب. → رفع تعاریف در قرارداد.
14) نمونه درخواست ها و پاسخ ها
14. 1. پست/پست برگشت (اپراتور → ردیاب)
HTTP/1 پست/پس زمینه 1
نوع محتوا: کاربرد/json
مجوز: حامل EYJHBGCIoi...
X-امضا: sha256 = ab12...
{"رویداد": "سپرده _ موفقیت"، "event _ id": "dep _ 9aa"، "click_id":"clk_123,""account_id":"u_456," مقدار ": 100. 00, «ارز «: «USD»,» is _ ftd»: درست است, «ts_event":"2025-10-21T15:12:31Z»}
پاسخ:
200 خوب است
{«وضعیت»:» خوب»، «idempotent»: نادرست}
ارسال مجدد با همان 'event _ id':
200 خوب است
{«وضعیت»:» خوب»، «idempotent»: درست}
14. 2. خطای امضا
403 ممنوع
{«error «: «signature _ invalid», «hint «:» check canonical order»}
15) حوادث و تجزیه
علائم: اپراتور FTD = 120 دارد، شما 117 دارید.
طرح:1. اصلاح محدوده زمانی (UTC) و ارزها.
2. تخلیه سیاهههای خام توسط 'event _ id '/' click _ id'.
3. جستجو برای نشانه رد/idempotency با توجه به امضا/TTL.
4. تحویل اضافی از رویدادهای «گیر» از DLQ، اعمال آشتی.
16) طرح اجرای 30-60-90
0-30 روز - مدار MVP
راه اندازی تغییر مسیر با 'click _ id' و سیاهههای مربوط.
پذیرش پستها را اجرا کنید: HMAC، JWT، idempotency، صف، DLQ، هشدارها.
sandbox را بالا ببرید، اسکریپت end-to-end reg/FTD را با مقادیر تست اجرا کنید.
شماتیک زمینه سند و کانونیزاسیون.
31-60 روز - کیفیت و مقیاس
شامل رویدادهای پولی و حسابداری ارز دوگانه (txn و گزارش).
تنظیم نظارت بر تاخیر p95، اختلاف و بازپرداخت.
ثبت نام SLA/روش های حادثه ؛ اضافه کردن رویدادهای بازپرداخت/بازپرداخت.
در BI، ویترین ها را جمع آوری کنید: FTD، Payback D7/D30 گروه های ARPU.
61-90 روز - پایداری و حسابرسی
چرخش اسرار/گواهینامه ها، آزمون تحمل خطا را وارد کنید.
انجام تست بار و «دریل اضطراری» (صف قطره/DB).
رسمی playbooks آشتی و ممیزی سه ماهه از طرح های FTD/قوانین.
17) خط پایین
ردیابی S2S «ستون فقرات» تخصیص صادقانه و صدور صورت حساب است: click_id به عنوان کلید اصلی، postbacks محافظت شده، idempotency، retrays و بهداشت دقیق زمان/ارز. اضافه کردن به این قوانین اعتبار FTD شفاف، حوادث chargeback و نظارت بالغ - و شما یک سیستم قابل اعتماد که در آن هر تبدیل توسط سرور تایید و همگرا در گزارش به یک درصد است.