GH GambleHub

تست A/B از سناریوهای پرداخت

1) چرا سناریوهای پرداخت تست

افزایش تأییدیه ها (AR) و کاهش خرابی ها (DR).
کاهش هزینه: نرخ (مبادله/طرح/نشانه گذاری/ثابت) و هزینه برای تایید.
کاهش خطر: بازپرداخت کمتر/تقلب با همان مصوبات.
پایداری: یک استراتژی/مسیریابی provider/3DS را برای روشهای خاص GEO/BIN/انتخاب کنید.

مهم: تست های پرداخت در زمان واقعی پول و ریسک را تحت تاثیر قرار می دهند. حفاظت و اخلاق اجباری است.

2) طراحی آزمایش

2. 1. واحد تصادفی سازی

User-level (توصیه می شود): تمام تلاش های یک کاربر به یک شاخه می افتد ؛ هیچ «مخلوط کردن» 3DS/tokens وجود ندارد.
سطح BIN: هنگامی که آزمون در مورد مسیریابی توسط صادر کننده است ؛ خطر تداخل کاربر متقابل.
سطح سفارش/تلاش: قابل قبول برای آزمایش های UI کوچک (به عنوان مثال، یک کپی از یک خطا)، نامطلوب برای routing/3DS.

2. 2. طبقه بندی (قبل از تصادفی)

طبقه بندی توسط: پخش کننده GEO، country/BIN6 صادر کننده، روش پرداخت، کانال (وب/برنامه)، بخش مبلغ، نرخ ریسک. این امر باعث کاهش واریانس و خطر SRM خواهد شد.

2. 3. آنچه ما آزمایش می کنیم

مسیریابی/آبشار: PSP_A در مقابل PSP_B، BIN چسبنده، محدود آگاه است.
سیاست 3DS: بدون اصطکاک → چالش، 3DS برای BIN/GEO اجرا شده است.
جریان UX: دنباله ای از مراحل، متون خطا/تکرار.
پارامترها: ویندوز و کدهای کاهش نرم.
قیمت گذاری: ارائه دهنده با IC++ در مقابل مخلوط و تاثیر بر هزینه همه در.

3) معیارها: هدف، ثانویه، گارد محافظ

3. 1. اصلی ترین

AR (نرخ تایید) = تایید/تلاش.
هزینه به ازای تایید = (auth + کاهش هزینه )/تایید شده است.
Take-rate% (همه در همه) = هزینه/حجم (در گزارش ارز).

نرخ عبور 3DS ؛ انتقال مسئولیت%

تاخیر جریان پرداخت p95/p99.

3. 2. معیارهای ریسک

نسبت بازپرداخت (CBR)، نرخ بازپرداخت، هشدارهای تقلب/1000 trx.
لغزش FX (bps) = موثر در مقابل مرجع FX.

3. 3. گاردریل (شرایط توقف)

کاهش AR> Y bps یا افزایش CBR/بازپرداخت بالاتر از آستانه.
SRM (عدم تطابق نسبت نمونه) - عدم تعادل ترافیک در مقابل انتظار می رود.
سنبله: تاخیر، افزایش نرم افزاری، ناهنجاری 3DS.

4) آمار و قدرت

4. 1. اندازه نمونه (تقریبی برای کسری)


n_per_group ≈ 2 (Z_{1-α/2} + Z_{1-β})^2 p(1-p) / δ^2

که در آن «p» AR پایه است، «δ» افزایش مورد انتظار در AR است، α سطح معنی دار است، β یک خطای نوع II است.

4. 2. تجزیه و تحلیل متوالی (توقف زودهنگام)

آلفا هزینه (O'Brien-Fleming/Pocock): ما برنامه بازرسی را تعمیر می کنیم و α را در مراحل صرف می کنیم.
SPRT/Bayes - برای راه حل های عملیاتی، اما پروتکل را اصلاح کنید.

4. 3. سرمقاله واریس

«Y = Y (X )»، جایی که X کوواریته پیش تجربی (AR/DR/risk rate) است، ضریب کوواریته است.
نمرات طبقه بندی شده، خطاهای خوشه ای قوی (خوشه های کاربر/BIN).
بوت استرپ برای معیارهای نرخ/هزینه (دم های سنگین).

4. 4. تست های چند متغیره و راهزنان

MAB (UCB/Thompson): وقتی «یادگیری» در پرواز مهم است و چرخش را ادامه می دهد.
برای معیارهای انطباق بحرانی (CBR، مسئولیت) - ترجیح می دهند A/B کلاسیک با guardrails.

5) معماری پلت فرم تجربی

1. سرویس تخصیص: هش قطعی '(user_id، experiment_id، نمک) → سطل.
2. پرچم های ویژگی/قوانین موتور: فعال سازی route/3DS/retract در امتداد شاخه.
3. رویدادها: تلاش/نتایج (مجوز/ضبط/بازپرداخت/cb) → اتوبوس (کافکا/PubSub).
4. Idempotency: مجموع 'idemotency _ key' per cascade.
5. DWH/ویترین: وضعیت عادی، هزینه، FX، پرچم خطر.
6. نظارت: آنلاین SLI (AR/3DS/latency)، هشدار، بررسی SRM.
7. پروتکل ها: فرضیه پیش ثبت نام، معیارهای نهایی، فریز کردن داده ها.

6) مدل داده (حداقل)

sql ref. experiments (
exp_id PK, name, hypothesis, owner, start_at, end_at,
unit -- USER      BIN      ORDER,
target_metric, guardrails JSONB, design JSONB, alpha NUMERIC, power NUMERIC, meta JSONB
);

ref. experiment_arms (
exp_id FK, arm_id, name, traffic_share NUMERIC, params JSONB, enabled BOOLEAN
);

assignments. buckets (
exp_id, user_id, assigned_arm, assigned_at, salt, hash_key, PRIMARY KEY (exp_id, user_id)
);

events. payments (
attempt_id PK, user_id, exp_id, arm_id,
provider, method, bin, iso2, risk_score,
status, decline_code, three_ds_used BOOLEAN, liability_shift BOOLEAN,
amount_minor BIGINT, currency, latency_ms INT,
authorized_at, captured_at, settled_at, meta JSONB
);

finance. fees (
attempt_id FK, interchange_amt NUMERIC, scheme_amt NUMERIC, markup_amt NUMERIC,
auth_amt NUMERIC, refund_amt NUMERIC, cb_amt NUMERIC, gateway_amt NUMERIC,
fx_slippage_amt NUMERIC, reporting_currency TEXT
);

risk. outcomes (
attempt_id FK, is_refund BOOLEAN, is_chargeback BOOLEAN, fraud_alert BOOLEAN
);

7) قالب های SQL

7. 1. بررسی SRM (سهم ترافیک با دست)

sql
SELECT arm_id,
COUNT() AS n,
ROUND(100. 0 COUNT() / SUM(COUNT()) OVER (), 2) AS share_pct
FROM assignments. buckets
WHERE exp_id =:exp
GROUP BY 1;

7. 2. معیارهای کلیدی با دست

sql
WITH base AS (
SELECT e. arm_id,
COUNT()                  AS attempts,
COUNT() FILTER (WHERE status='APPROVED') AS approvals,
AVG(latency_ms)              AS latency_avg_ms,
AVG((three_ds_used)::int)         AS three_ds_share
FROM events. payments e
WHERE e. exp_id=:exp AND e. authorized_at BETWEEN:from AND:to
GROUP BY 1
),
cost AS (
SELECT e. arm_id,
SUM(f. interchange_amt + f. scheme_amt + f. markup_amt +
f. auth_amt + f. refund_amt + f. cb_amt + f. gateway_amt + f. fx_slippage_amt) AS fees_rep,
SUM(e. amount_minor)/100. 0 AS volume_rep
FROM events. payments e
JOIN finance. fees f USING (attempt_id)
WHERE e. exp_id=:exp AND e. settled_at BETWEEN:from AND:to
GROUP BY 1
)
SELECT b. arm_id,
approvals::numeric/NULLIF(attempts,0)             AS ar,
fees_rep/NULLIF(volume_rep,0)                 AS take_rate,
(SELECT COUNT() FROM risk. outcomes r
JOIN events. payments e2 USING (attempt_id)
WHERE e2. exp_id=:exp AND e2. arm_id=b. arm_id AND r. is_chargeback)=0
AS cb_zero_flag,
latency_avg_ms, three_ds_share
FROM base b LEFT JOIN cost c ON c. arm_id=b. arm_id;

7. 3. PAPED برای AR (به عنوان مثال)

sql
WITH pre AS (
SELECT user_id, AVG((status='APPROVED')::int) AS ar_pre
FROM events. payments
WHERE authorized_at <:pre_from_end
GROUP BY 1
),
cur AS (
SELECT e. user_id, e. arm_id, (e. status='APPROVED')::int AS ar_flag
FROM events. payments e
WHERE e. exp_id=:exp AND e. authorized_at BETWEEN:from AND:to
)
SELECT arm_id,
AVG(ar_flag - theta (ar_pre - mu_pre)) AS ar_cuped
FROM cur
LEFT JOIN pre USING (user_id),
LATERAL (SELECT AVG(ar_pre) AS mu_pre FROM pre) mu,
LATERAL (SELECT COVAR_SAMP(ar_flag, ar_pre)/VAR_SAMP(ar_pre) AS theta FROM cur LEFT JOIN pre USING(user_id)) t
GROUP BY arm_id;

7. 4. بررسی گارد محافظ (به عنوان مثال)

sql
SELECT arm_id,
100. 0 SUM(is_chargeback::int)::numeric / NULLIF(COUNT(),0) AS cbr_pct,
100. 0 SUM(is_refund::int)::numeric  / NULLIF(COUNT(),0) AS refund_pct
FROM risk. outcomes r
JOIN events. payments e USING (attempt_id)
WHERE e. exp_id=:exp AND e. settled_at BETWEEN:from AND:to
GROUP BY 1
HAVING 100. 0 SUM(is_chargeback::int)::numeric / NULLIF(COUNT(),0) >:cbr_threshold
OR 100. 0 SUM(is_refund::int)::numeric  / NULLIF(COUNT(),0) >:refund_threshold;

8) فرآیند تست (پایان به پایان)

1. پیش ثبت نام: فرضیه، معیارها، طراحی، ابعاد، قوانین توقف.
2. آزمون SRM/AA در اثر «خالی» (چند روز).
3. راه اندازی: انجماد انتساب، منطق در قوانین موتور/phicheflags.
4. نظارت آنلاین: AR/3DS/latency/health + گارد محافظ.
5. چک های آلفا هزینه متوسط (در صورت برنامه ریزی).
6. پایان و تاریخ فریز: تنها پس از حسابداری برای بودجه/ذخایر/اواخر CB/بازپرداخت.
7. تجزیه و تحلیل: CUPED/طبقه بندی، حساسیت، GEO/BIN/روش/ناهمگونی کانال.
8. راه حل: رول، رول پشت، و یا آزمون پیگیری ؛ به روز رسانی قوانین/مسیریابی.
9. مستند سازی و گذشته نگر: درس، به روز رسانی آستانه/وزن.

9) ضد الگوهای و تله

Peeking/re-review بدون پروتکل پیروزی های دروغین

تصادفی سازی سطح سفارش در آزمون های مسیریابی → نشت بین دست ها

بازی چندگانه (بسیاری از معیارها/برش ها) بدون اصلاح α.
هزینه ناقص (فراموش FX/هزینه های ذخیره/بازپرداخت) → نرخ اشتباه.
از دست رفته بررسی SRM → پین های ناسازگار.
Retrays غیر idempotent → مجوز AR دو/اعوجاج.

10) ایمنی، انطباق و اخلاق

روش مشابه/بازگشت به منبع نباید توسط آزمون شکسته شود.
تحریم ها/مجوزها/سیاست های GEO فراتر از آزمایش است.
RG/بازی مسئول: مکانیسم های دفاعی را به خاطر AR کاهش ندهید.
PCI/GDPR: نشانه ها به جای PAN، به حداقل رساندن اطلاعات شخصی، DPA/SOC2.

11) داشبورد آزمایش KPI

AR/DR، فواصل افزایش و اعتماد به نفس توسط سلاح و طبقه بندی کلیدی (GEO/BIN/روش).
هزینه هر تصویب، نرخ٪، لغزش FX (bps).
3DS پاس/مسئولیت تغییر، نرم کاهش سهم.
تاخیر p95/p99، خطاها/وقفه ها.
CB/بازپرداخت (تاخیر آگاه)، SRM، پوشش ترافیک، مدت زمان.

12) بهترین شیوه (کوتاه)

1. تصادفی در سطح کاربر و طبقه بندی.

2. استفاده از گارد محافظ و بررسی SRM ؛ پروتکل را اصلاح کنید

3. هزینه کامل (هزینه + FX + رزرو) و هزینه هر تایید را در نظر بگیرید.
4. از CAPPED، خطاهای خوشه ای قوی و بوت استرپ برای معیارهای هزینه استفاده کنید.
5. برای خطرات بحرانی - A/B کلاسیک ؛ راهزنان - برای عمدتا قیمت/AR وظایف.
6. بودجه/ذخایر/CBs اواخر قبل از خروج نهایی در نظر بگیرید.
7. سند و نسخه قوانین ؛ پس از مرگ انجام دهید.

13) چک لیست راه اندازی

  • فرضیه، معیارها، اثر، طراحی، اندازه نمونه، اصطلاح.
  • تصادفی واحد و اقشار، خدمات انتساب، phicheflags.
  • Guardrails/آستانه، SRM/AA-precheck، هشدار.
  • سیاهههای مربوط/حوادث، idemotency، عادی سازی وضعیت.
  • موارد نمایش هزینه ها/FX/رزرو ؛ گزارش واحد پول
  • برنامه آلفا هزینه و یخ زدن داده ها.
  • Playbooks رول کردن/رول برگشت ؛ مستندات نتایج.

خلاصه

تست های A/B از سناریوهای پرداخت یک رشته آماری مهندسی هستند: تصادفی سازی و طبقه بندی صحیح، معیارهای هزینه و ریسک کامل، گاردریل ها و SRM، تجزیه و تحلیل شسته و رفته (CUPED/خوشه-استحکام/تجزیه و تحلیل متوالی) و زیرساخت های «آماده مبارزه» (idempotency، تله متری، آشتی). با پیروی از این تکنیک، شما AR را افزایش می دهید، نرخ همه چیز را کاهش می دهید و در عین حال برای «پیروزی های دروغین» با افزایش بازپرداخت و خطرات قانونی پرداخت نمی کنید.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.