دستاویزات
براؤزر میں ایک اسکرپٹ، سرور سے ایک API کال۔ لائیو ہونے کے لیے جو کچھ چاہیے، ایک ہی پیج پر۔
کوئیک اسٹارٹ
براؤزر کے لیے آپ کو اپنی پبلک کی (pk_...) اور سرور کے لیے اپنی سیکرٹ کی (sk_...) درکار ہے۔ دونوں ڈیش بورڈ میں Sites and keys کے تحت موجود ہیں۔
1. اسکرپٹ لگائیں
یہ ٹیگ ان پیجز پر لگائیں جہاں صارفین سائن اپ، لاگ اِن، آفرز پر کلک یا کیش آؤٹ کی درخواست کرتے ہیں۔ یہ خود کو یہاں سے initialise کرتا ہے: data-key
<script src="https://cashoutguard.com/v1/agent.js" data-key="pk_live_YOUR_PUBLIC_KEY" async></script>
2. collect کریں اور request_id اپنے سرور کو بھیجیں
اہم لمحے پر ایونٹ کے نام کے ساتھ collect() کال کریں۔ یہ اس ویلیو پر resolve ہوتا ہے: { request_id, visitor_id }
const { request_id } = await CashoutGuard.collect({ event: 'cashout' });
collect() کبھی reject نہیں ہوتا۔ ناکامی کی صورت میں (بلاک، آف لائن، ٹائم آؤٹ) یہ request_id: null اور ایک ایرر اسٹرنگ کے ساتھ resolve ہوتا ہے۔ فارم پھر بھی بھیجیں اور فیصلہ اپنے سرور پر چھوڑ دیں۔
3. اپنے سرور سے فیصلہ مانگیں
ایونٹ کو /v1/evaluate پر POST کریں، اور اپنی سیکرٹ کی اس ہیڈر میں رکھیں: Authorization: Bearer sk_live_...
سیکرٹ کی کبھی بھی براؤزر کوڈ یا موبائل ایپ میں نہ رکھیں۔ صرف آپ کا سرور ہی /v1/evaluate کال کرے۔
Evaluate ریکوئسٹ
POST https://cashoutguard.com/v1/evaluate ایک اکاؤنٹ کے ایک ایونٹ کو اسکور کرتا ہے، اسے اس کی ڈیوائس، نیٹ ورک اور پے آؤٹ ایڈریس سے جوڑتا ہے، اور فیصلہ واپس کرتا ہے۔ JSON بھیجیں۔
| فیلڈ | قسم | لازمی | تفصیل |
|---|---|---|---|
event | string | لازمی | signup، login، offer_click، conversion، cashout یا custom۔ |
account_id | string | لازمی | آپ کی یوزر ID، زیادہ سے زیادہ 191 حروف۔ ای میل نہیں، کوئی مبہم ID استعمال کریں۔ |
request_id | string | اختیاری | براؤزر میں collect() سے حاصل ہوتی ہے۔ 1 گھنٹے کے لیے درست۔ اس کے بغیر ہمارے پاس صرف نیٹ ورک ڈیٹا ہوتا ہے۔ |
ip | string | اختیاری | صارف کا IP۔ صرف تب ضروری ہے جب آپ کے پاس request_id نہ ہو، مثلاً postbacks کے لیے۔ |
email | string | اختیاری | ہیش کی صورت میں محفوظ۔ عارضی ڈومینز اور اکاؤنٹس کے درمیان مشترک ای میلز پکڑتا ہے۔ |
payout_address | string | اختیاری | PayPal ای میل، والٹ یا وہ اکاؤنٹ جس میں پیسہ جاتا ہے۔ ہیش کی صورت میں محفوظ۔ |
payout_method | string | اختیاری | آزاد متن، جیسے paypal، usdt یا giftcard۔ |
amount | number | اختیاری | کیش آؤٹ یا کنورژن کی رقم۔ |
currency | string | اختیاری | کرنسی کوڈ، مثلاً USD۔ کیش آؤٹس کے لیے ڈیفالٹ USD۔ |
offer_id | string | اختیاری | آفر ID، offer_click اور conversion کے لیے۔ آفر کی رفتار کے لیے استعمال ہوتی ہے۔ |
offer_country | string | اختیاری | وہ ملک جس کے لیے آفر ادائیگی کرتی ہے (ISO کوڈ، جیسے US)، کنورژنز پر۔ دوسرے ملک کا صارف نشان زد ہوتا ہے۔ |
geo_country | string | اختیاری | صارف کے IP کی آپ کی اپنی جیولوکیشن (ISO کوڈ)۔ ہماری سے مختلف ہو تو IP غالباً پراکسی ایگزٹ ہے۔ |
transaction_id | string | اختیاری | کنورژن کی نیٹ ورک ٹرانزیکشن ID۔ ڈپلیکیٹس پکڑنے کے لیے استعمال ہوتی ہے۔ |
offer_name | string | اختیاری | آفر کا عنوان جیسا آپ کے صارفین دیکھتے ہیں۔ ڈیش بورڈ میں ID کی جگہ یہی دکھتا ہے۔ |
click_id | string | اختیاری | آپ کی کلک ID۔ offer_click اور کنورژن دونوں میں ایک ہی قدر بھیجیں تاکہ وہ جڑ جائیں۔ |
source | string | اختیاری | ایونٹ کہاں سے آیا، جیسے آفر وال یا نیٹ ورک کا نام۔ |
meta | object | اختیاری | ایونٹ کے ساتھ محفوظ ہونے والے 20 تک اضافی ٹیکسٹ فیلڈز (جیسے sub IDs)۔ |
ریسپانس
ریسپانس کی ساخت ہمیشہ ایک جیسی ہوتی ہے۔ جو فیلڈز لاگو نہ ہوں وہ null ہوتی ہیں۔
score0 سے 100 تک ہوتا ہے۔ وجوہات اس طرح جوڑی جاتی ہیں کہ کئی درمیانے سگنلز مل کر بڑھتے ہیں مگر 100 سے آگے نہیں جاتے۔reasonsہر فعال سگنل کی فہرست دیتا ہے، سب سے مضبوط پہلے، اس کے وزن، تفصیلات اور براہِ راست دکھانے کے قابل سادہ انگریزی لیبل کے ساتھ۔device.confidenceبتاتا ہے کہ ڈیوائس کتنی منفرد لگتی ہے۔ فنگر پرنٹس اسپوف ہو سکتے ہیں، اس لیے ہم کبھی سو فیصد یقین کا دعویٰ نہیں کرتے۔linked_accountsان دوسرے اکاؤنٹس کی فہرست دیتا ہے جو اس اکاؤنٹ کے ساتھ ڈیوائس، پے آؤٹ ایڈریس یا ای میل شیئر کرتے ہیں۔cashoutصرف cashout ایونٹس کے لیے سیٹ ہوتا ہے اور آپ کی ریویو قطار میں اسٹیٹس بتاتا ہے۔
فیصلے اور ایکشنز
decision پر نہیں، action فیلڈ پر عمل کریں۔ نیچے دی گئی حدیں ڈیفالٹ ہیں اور ڈیش بورڈ میں ہر سائٹ کے لیے بدلی جا سکتی ہیں۔
| فیصلہ | اسکور (ڈیفالٹ) | شیڈو میں action | enforce میں action | کیا کریں |
|---|---|---|---|---|
allow | 0-49 | allow | allow | معمول کے مطابق جاری رکھیں۔ |
review | 50-79 | allow | review | کیش آؤٹ روکیں یا اضافی تصدیق مانگیں۔ یہ آپ کی ریویو قطار میں نظر آتا ہے۔ |
block | 80-100 | allow | block | ایکشن روک دیں۔ بیلنس فریز کریں یا سائن اپ مسترد کریں۔ |
شیڈو موڈ میں action ہمیشہ allow ہوتا ہے، اس لیے enforce سے پہلے یہی کوڈ بے فکری سے لائیو کیا جا سکتا ہے۔ enforce پر جانے سے آپ کے کوڈ میں کچھ نہیں بدلتا۔
ایونٹ کی اقسام
جو ایونٹس آپ کے پاس ہیں وہ بھیجیں۔ سائن اپ اور کیش آؤٹ سب سے اہم ہیں؛ کنورژنز سے آفر کی رفتار کے چیکس چلتے ہیں۔
| ایونٹ | کب بھیجیں | کیا پکڑتا ہے |
|---|---|---|
signup | اکاؤنٹ بن گیا | ملٹی اکاؤنٹس، بوٹس، VPN سائن اپس، عارضی ای میلز |
login | کامیاب لاگ اِن | اکاؤنٹ شیئرنگ، ملک کی تبدیلی، نئی ڈیوائسز |
offer_click | صارف کوئی آفر کھولتا ہے | آفر کی رفتار کے لیے ٹائمر شروع کرتا ہے |
conversion | offerwall یا نیٹ ورک سے postback | بہت تیزی سے مکمل آفرز، ڈپلیکیٹ ٹرانزیکشنز، کنورژنز کی بوچھاڑ |
cashout | صارف رقم نکلوانے کی درخواست کرتا ہے | مشترک پے آؤٹ ایڈریسز، کیش آؤٹ ویلاسٹی، نئے اکاؤنٹس کے کیش آؤٹس |
custom | کوئی بھی اور چیز جسے آپ اسکور کرانا چاہیں | ڈیوائس اور نیٹ ورک سگنلز |
آفر والز اور پوسٹ بیکس
آفر وال کنورژنز پوسٹ بیک کے ذریعے سرور سے سرور، بغیر براؤزر کے آتی ہیں۔ CashoutGuard ہر کنورژن کو اس کلک سے جوڑتا ہے جس سے وہ شروع ہوئی، اس لیے اس کا اسکور اسی کلک کی ڈیوائس اور نیٹ ورک سے بنتا ہے۔
1. جب صارف کوئی آفر کھولے
براؤزر میں کلیکٹ کریں اور آفر اور اپنی کلک ID کے ساتھ offer_click بھیجیں۔
2. جب پوسٹ بیک آئے
اپنے پوسٹ بیک ہینڈلر سے اسی account_id اور click_id کے ساتھ conversion بھیجیں۔ request_id کی ضرورت نہیں۔ اگر آفر وال صارف کا IP دے تو وہ بھی بھیجیں۔
کنورژنز کی جانچ ہوتی ہے: آفر کے لیے بہت تیزی سے مکمل ہونا، بغیر کلک کے کنورژن، کلک اور کنورژن مختلف ممالک سے، اکاؤنٹ کے عام دن سے کہیں زیادہ کمائی، اور ڈپلیکیٹ ٹرانزیکشن IDs۔
آفر وال نیٹ ورکس
اگر آپ کئی پبلشرز والا نیٹ ورک چلاتے ہیں تو پبلشر سمیت اکاؤنٹ IDs بھیجیں اور Sites میں "آفر وال نیٹ ورک موڈ" آن کریں۔ پھر اکاؤنٹس صرف ایک ہی پبلشر کے اندر جڑتے ہیں، کیونکہ ایک شخص کا کئی پبلشرز کی سائٹس استعمال کرنا معمول ہے۔ فارمیٹ: publisher_id:user_id
آفر کیٹلاگ
POST /v1/offers آپ کی آفرز کے نام بھیجتا ہے (ہر کال میں 1,000 تک)۔ پرانے اور نئے ایونٹس اصل نام دکھائیں گے، چاہے ان میں صرف ID ہو۔
ریزن کوڈز
یہ کوڈز reasons[].code میں آتے ہیں۔ متن اپنے ماڈریٹرز کو دکھائیں؛ اپنی لاجک میں کوڈ استعمال کریں۔
| کوڈ | مطلب | گروپ | وزن |
|---|---|---|---|
ip_tor | Tor ایگزٹ نوڈ | نیٹ ورک | 60 |
ip_vpn | VPN کنکشن | نیٹ ورک | 45 |
ip_datacenter | ڈیٹا سینٹر / ہوسٹنگ IP | نیٹ ورک | 40 |
timezone_mismatch | براؤزر کا ٹائم زون IP کی لوکیشن سے میل نہیں کھاتا | نیٹ ورک | 20 |
webrtc_ip_leak | اصل IP کسی دوسرے ملک میں لیک ہوا | نیٹ ورک | 30 |
ip_multi_timezone | ایک ہی IP پر کئی مختلف ٹائم زونز (پراکسی ایگزٹ) | نیٹ ورک | 50 |
proxy_farm_ip | ایک IP پر کئی اکاؤنٹس، سب کی ایک ہی غیر ملکی گھڑی (مشترکہ پراکسی) | نیٹ ورک | 60 |
provider_rotation | چند دنوں میں کئی انٹرنیٹ فراہم کنندگان، غیر ملکی گھڑی کے ساتھ (گھومنے والی رہائشی پراکسی) | نیٹ ورک | 45 |
privacy_relay | iCloud Private Relay (پرائیویسی فیچر) | نیٹ ورک | 5 |
proxy_headers | درخواست پراکسی کے ذریعے آئی | نیٹ ورک | 20 |
geo_sources_disagree | جیولوکیشن ذرائع میں اختلاف | نیٹ ورک | 45 |
ip_shared_with_accounts | آج یہی IP دوسرے اکاؤنٹس نے بھی استعمال کیا | نیٹ ورک | 25 |
country_changed | ملک بدل گیا | نیٹ ورک | 15 |
impossible_travel | ناممکن سفر: چند گھنٹوں میں دو دور دراز ممالک کے IP | نیٹ ورک | 50 |
locale_country_mismatch | دوسرے ملک کی براؤزر زبان | نیٹ ورک | 30 |
phone_country_mismatch | IP سے مختلف ملک کا فون | نیٹ ورک | 20 |
ip_flagged_on_network | دوسری ویب سائٹس پر بلاک IP | نیٹ ورک | 25 |
device_shared_with_accounts | ڈیوائس دوسرے اکاؤنٹس کے ساتھ مشترک ہے | ڈیوائس | 55 |
automation_detected | بوٹ یا آٹومیشن ٹول | ڈیوائس | 70 |
auto_clicker | فون پر آٹو کلکر | ڈیوائس | 55 |
scripted_behavior | اسکرپٹ سے صفحے کا استعمال | ڈیوائس | 45 |
emulator_or_vm | ایمولیٹر یا ورچوئل مشین | ڈیوائس | 45 |
browser_tampering | براؤزر میں چھیڑ چھاڑ / اسپوفنگ | ڈیوائس | 35 |
device_rooted | روٹ شدہ فون | ڈیوائس | 25 |
incognito | پرائیویٹ براؤزنگ | ڈیوائس | 10 |
device_spoofed | جعلی فون ماڈل | ڈیوائس | 55 |
emulator_profile | ایمولیٹر کا ڈیفالٹ پروفائل | ڈیوائس | 60 |
cloud_phone | کلاؤڈ فون | ڈیوائس | 60 |
phone_farm_display | فون فارم ڈسپلے | ڈیوائس | 45 |
device_market_mismatch | صرف چین والا فون بیرونِ ملک | ڈیوائس | 25 |
storage_cleared_reappeared | کوکیز صاف کر کے دوبارہ آیا | ڈیوائس | 15 |
no_device_data | ڈیوائس ڈیٹا نہیں بھیجا گیا | ڈیوائس | 15 |
request_reused | ڈیوائس ٹوکن کسی دوسرے اکاؤنٹ نے دوبارہ استعمال کیا | ڈیوائس | 40 |
device_farm_proxy | ریزیڈنشل پراکسی پر فون فارم | ڈیوائس | 85 |
device_clones | ڈیوائس کلون: ایک فون اپنی شناخت ری سیٹ کر کے ایک نیٹ ورک پر بہت سے نئے اکاؤنٹس بن رہا ہے | ڈیوائس | 55 |
payout_address_shared | پے آؤٹ ایڈریس دوسرے اکاؤنٹس بھی استعمال کر رہے ہیں | اکاؤنٹ | 70 |
email_disposable | عارضی ای میل | اکاؤنٹ | 25 |
email_invalid | ایسا ای میل جس پر میل نہیں آ سکتی (ایسا کوئی میل ڈومین نہیں) | اکاؤنٹ | 35 |
email_shared | کسی دوسرے اکاؤنٹ والی ای میل | اکاؤنٹ | 50 |
phone_shared | دوسرے اکاؤنٹس کے ساتھ مشترک فون نمبر | اکاؤنٹ | 50 |
phone_voip | VoIP یا ورچوئل نمبر | اکاؤنٹ | 40 |
phone_invalid | غلط فون نمبر | اکاؤنٹ | 30 |
many_devices_per_account | ایک اکاؤنٹ پر بہت زیادہ ڈیوائسز | اکاؤنٹ | 20 |
flagged_on_network | CashoutGuard سے محفوظ دوسری ویب سائٹس پر نشان زد | اکاؤنٹ | 45 |
face_same_person | دوسرے اکاؤنٹس جیسا ہی چہرہ | اکاؤنٹ | 0 |
offer_completed_too_fast | آفر ناممکن حد تک تیزی سے مکمل ہوئی | رویہ | 40 |
slow_after_click | کلک کے کافی دیر بعد کنورژن | رویہ | 0 |
conversion_velocity | فی گھنٹہ بہت زیادہ کنورژنز | رویہ | 30 |
conversion_without_click | آپ کی وال سے کلک کے بغیر کنورژن | رویہ | 35 |
click_conversion_country_mismatch | ایک ملک میں کلک، دوسرے میں کنورژن | رویہ | 30 |
offer_country_mismatch | آفر کا ملک صارف کے ملک سے مختلف | رویہ | 45 |
click_velocity | چند منٹوں میں بہت زیادہ آفر کلکس | رویہ | 35 |
earnings_spike | عام صارف سے کہیں زیادہ کمائی | رویہ | 30 |
source_high_reversals | زیادہ چارج بیک والا سورس | رویہ | 45 |
offer_high_reversals | زیادہ چارج بیک والی آفر | رویہ | 35 |
duplicate_transaction | ڈپلیکیٹ ٹرانزیکشن ID | رویہ | 60 |
offer_repeated_other_publisher | یہی آفر پہلے کسی دوسرے پبلشر کے ذریعے کی جا چکی ہے | رویہ | 85 |
offer_repeated_other_account | یہی آفر اس ڈیوائس پر دوسرے اکاؤنٹ سے پہلے ہی کی گئی | رویہ | 85 |
offer_farm_burst | فارم کی لہر: چند گھنٹوں میں اس آفر پر فارم ڈیوائسز والے بہت سے نئے اکاؤنٹس | رویہ | 30 |
signup_burst | سائن اپ کی بوچھاڑ: کئی اکاؤنٹس مختلف IP سے چند سیکنڈ میں بنے | رویہ | 25 |
face_check_required | چہرے کی جانچ ضروری ہے، ابھی نہیں ہوئی | رویہ | 0 |
face_check_failed | چہرے کی جانچ ناکام | رویہ | 0 |
publisher_farm_wave | اس کے پبلشر کی فارم لہر: اس آفر پر بھیجے گئے زیادہ تر نئے اکاؤنٹس کلاؤڈ فونز یا ایمولیٹرز سے آئے | رویہ | 55 |
cashout_velocity | روزانہ بہت زیادہ کیش آؤٹس | رویہ | 30 |
new_account_cashout | بالکل نئے اکاؤنٹ سے کیش آؤٹ | رویہ | 20 |
blocklisted | آپ کی بلاک لسٹ میں ہے | آپ کی لسٹس | 100 |
وزن noisy-OR سے جوڑے جاتے ہیں: score = 100 x (1 - product of (1 - weight/100))۔ 40 کے دو سگنلز 64 دیتے ہیں، 80 نہیں۔ بلاک لسٹ میچ ہمیشہ 100 دیتا ہے۔
Webhooks
ڈیش بورڈ میں ویب ہک URL سیٹ کریں۔ block اسکور والے ہر ایونٹ (event.blocked)، کسی اکاؤنٹ کے block ہونے (account.blocked) اور آپ کی ٹیم کے کیش آؤٹ فیصلے (cashout.decided) پر ہم POST بھیجتے ہیں۔ جو ٹائپ استعمال نہ کریں انہیں نظر انداز کریں۔
ہر ریکوئسٹ آپ کے webhook سیکرٹ سے سائن ہوتی ہے۔ raw باڈی کا hex HMAC-SHA256 اس ہیڈر میں ہوتا ہے: X-CashoutGuard-Signature
کسی بھی 2xx اسٹیٹس کے ساتھ جواب دیں۔ ناکام ڈیلیوریز 5 بار تک دوبارہ بھیجی جاتی ہیں: 10 سیکنڈ، 1 منٹ، 5 منٹ اور 15 منٹ بعد۔
اکاؤنٹ اسٹیٹس
GET /v1/accounts/{account_id} کوئی ایونٹ بنائے بغیر اکاؤنٹ کا موجودہ رسک ویو واپس کرتا ہے۔
POST /v1/accounts/{account_id}/status آپ کے اپنے ماڈریشن ٹولز کو اکاؤنٹ کا اسٹیٹس بدلنے دیتا ہے۔
active: معمول کی اسکورنگ۔allowlisted: اسکورز review کی حد سے نیچے محدود رہتے ہیں۔ بھروسہ مند صارفین اور اسٹاف کے لیے۔blocked: ہر ایونٹ اسکور 100 کے ساتھ block واپس کرتا ہے۔
ریورسلز اور درستگی
POST /v1/outcomes بتاتا ہے کہ اسکور کے بعد کنورژنز کا کیا ہوا: آفر وال یا ایڈورٹائزر نے ریورس کیا (chargeback) یا درست قرار دیا۔ ہم آپ کے ids ملا کر Accuracy صفحے پر آپ کی ٹریفک پر انجن ناپتے ہیں۔
بغیر کوڈ کے: Accuracy صفحے پر اپنی آفر والز کی ماہانہ ریورسل فائل (CSV یا Excel) اپ لوڈ کریں۔ id کالم ہم خود ڈھونڈ لیتے ہیں۔
PHP، Node.js، Python، Android
کسی SDK کی ضرورت نہیں۔ مختصر ٹائم آؤٹ کے ساتھ ایک سادہ HTTP کال کافی ہے۔ کیش آؤٹ کی مکمل مثال:
- cashoutguard.php: PHP 7.4+، ایک فائل، Composer نہیں۔ بس require کریں۔
- composer require cashoutguard/cashoutguard-php: وہی PHP کلائنٹ README کے ساتھ، آپ کے vendor فولڈر کے لیے۔
- npm install @cashoutguard/node: Node 18+، TypeScript ٹائپس کے ساتھ۔
- cashoutguard-wordpress.zip: WordPress پلگ اِن: ہر صفحے پر براؤزر اسکرپٹ، سائن اپ اور لاگ اِن کا اسکور، اور کیش آؤٹ، آفر وال کنورژنز اور ریورسلز کے لیے ہُکس۔
ایررز اور حدود
| HTTP | باڈی | مطلب |
|---|---|---|
| 401 | missing_or_invalid_secret_key | سیکرٹ کی موجود نہیں، غلط ہے یا منسوخ ہو چکی ہے۔ جواب میں وجہ "reason" (missing، public_key، unknown_secret، placeholder، malformed) میں اور حل "hint" میں ہوتا ہے۔ |
| 404 | not_found | اکاؤنٹ نہیں ملا (اکاؤنٹ اینڈ پوائنٹس)۔ |
| 422 | { "message", "errors" } | باڈی درست نہیں۔ errors میں ہر فیلڈ کی تفصیل ہوتی ہے۔ |
| 429 | Too Many Requests | ریٹ لمٹ پوری ہو گئی۔ سرور API فی سائٹ فی منٹ 3,000 ریکوئسٹس کی اجازت دیتی ہے۔ |
| 401 · agent.js | unknown_public_key | data-key کسی سائٹ کی پبلک کی نہیں ہے۔ Install سے pk_live_... دوبارہ کاپی کریں۔ |
| 403 · agent.js | origin_not_allowed | صفحے کا ڈومین سائٹ کے allowed origins میں نہیں ہے۔ Sites میں شامل کریں یا فہرست خالی چھوڑ دیں۔ localhost ہمیشہ چلتا ہے۔ agent.js براؤزر کنسول میں بھی یہ بتاتا ہے۔ ایپس کے WebView اوریجن "null" بھیجتے ہیں: انہیں قبول کرنے کے لیے فہرست میں null شامل کریں۔ نیٹو Android SDK کو کچھ نہیں چاہیے۔ |
| 403 | account_suspended | اکاؤنٹ معطل ہے، عموماً بقایا بل کی وجہ سے۔ Billing دیکھیں۔ |
| 503 | temporarily_unavailable | ہماری طرف مختصر خلل۔ ایکشن ہونے دیں اور بعد میں دوبارہ کوشش کریں۔ |
Fail open: اگر کال ٹائم آؤٹ ہو یا ایرر آئے تو ایکشن کی اجازت دیں اور اسے لاگ کریں۔ ہماری سروس بند ہونے سے آپ کے صارفین کبھی نہ رکیں۔