روششناسی
منابع داده
پیشنهادهای عمومی کانالها: فهرست اولیهای که دستی گردآوری شده، بازبینی URLهای شناختهشده صفحات محصول، و نامزدهای کشفشدهای که پس از بررسی ادغام میشوند. نه رابط پنل فروشگاه است و نه رسید خرید.
خط لوله (discover → review → snapshot)
- کشف (discover): یافتن URLهای جدید محصول فروشندگان و افزودن به صف بررسی؛ قیمت زنده مستقیماً تغییر نمیکند.
- بررسی (review): ادغام در فهرست توسط انسان یا قاعده با اطمینان بالا؛ فیلدهایی که دستی قفل شدهاند هرگز کورکورانه بازنویسی نمیشوند.
- اسنپشات (snapshot): انتشار JSON کامل در فضای ذخیرهسازی اشیا؛ سایت اشارهگر فعلی را میخواند و در صورت خطا نسخه قبلی را نگه میدارد.
- بهروزرسانی (refresh): فقط قیمت، موجودی و متن ضمانت روی URLهای شناختهشده فروشنده بهروز میشود. خطای HTTP یا خزش به معنای «ناموجود» نیست و آخرین مشاهده معتبر حفظ میشود، مگر اینکه صفحه صراحتاً بگوید تمام شده یا حذف شده، یا URL قطعاً از کار افتاده و حذف شده باشد.
چه فروشگاههایی فهرست میشوند (بدون غرفههای بازارچه)
ما فقط فروشگاههای مستقل را مقصد خروجی قرار میدهیم: دامنه و ویترین خود فروشنده. غرفههای داخل بازارچهها را فهرست نمیکنیم — یعنی صفحه فروشندگان شخص ثالث درون یک بازار بزرگ دیگر. این پلتفرمها (مثلاً GamsGo) روی کارت هر فروشگاه امتیاز، درصد رضایت و سطح فروشنده خود پلتفرم را نشان میدهند که تعهد ضمانت فروشنده نیست؛ نمایش آنها بهعنوان دهها فروشگاه مستقل یعنی در واقع پلتفرم تحویل میدهد، نه فروشندهای که در ردیف نوشته شده. از 2026-11-04 چنین مقصدهایی در مراحل کشف، بهروزرسانی، اعتبارسنجی فهرست و خروج رد میشوند و موارد موجود حذف شدهاند.
چند فروشگاه روی یک دامنه، بازارچه به حساب نمیآید. برخی سایتهای فروش کارت چند فروشگاه را روی یک میزبان دارند (این سایت هم چنین مواردی دارد). تا وقتی «بازاری با فروشندگان شخص ثالث فراوان» نباشد، میماند؛ معیار این است که فروشگاه غرفه دیگری باشد یا نه، نه اینکه چند فروشگاه یک دامنه دارند.
سایتهای مقایسه قیمت مشابه (OpenPrice، AiCheap، Shuita) فقط بهعنوان سرنخ برای یافتن صفحه محصول خود فروشندگان استفاده میشوند و هرگز مقصد خروجی این سایت نیستند.
دفعات بهروزرسانی
بازبینی نامنظم بهعلاوه بررسی لینکهای مرده در صورت نیاز. نسخه فعلی اسنپشات 2026-11-04T13-45-33-746Z (منبع زمان اجرا r2، کش درون ایزوله 60 ثانیه). نمایش صفحه ممکن است از تغییر قیمت فروشنده عقب باشد.
تازگی داده در سطح سایت. بالای هر جدول دو عدد میآید: زمان ساخت اسنپشات (generatedAt، مطابق نسخه منتشرشده در فضای ذخیرهسازی) و «از N ردیف این نما، M ردیف در 72 ساعت گذشته بررسی شدهاند». زمان ساخت فقط میگوید این داده کی بستهبندی شده، نه اینکه همه پیشنهادها در آن زمان دوباره خوانده شدهاند؛ برای همین جدا از ستون «بهروزرسانی» هر ردیف نشان داده میشود و تعداد ردیفهای تأییدنشده صریحاً نوشته میشود.
صفحات عمومی (جدولها، صفحه فروشگاهها، این صفحه، قیمتهای رسمی) کش لبه s-maxage=60 دارند، پس ممکن است HTMLی بگیرید که تا 60 ثانیه پیش ساخته شده؛ زمان اسنپشات روی صفحه همچنان زمان خود همان HTML است و بهخاطر کش تازهتر به نظر نمیرسد. لینک خروجی /go هرگز کش نمیشود و همیشه ابتدا صفحه «در حال خروج» را نشان میدهد: پس از دیدن دامنه فروشنده و سلب مسئولیت، «ادامه» تغییر مسیر 302 را انجام میدهد و یک کلیک ثبت میکند (فقط فروشگاه، طرح، زمان و صفحه مبدأ؛ باز کردن صفحه خروج کلیک نیست). صفحه خروج شمارش معکوس هم دارد (پیشفرض 5 ثانیه) و با همان لینک confirm=1 خودکار ادامه میدهد، پس آنچه ثبت میشود تغییری نمیکند؛ برای ماندن «لغو انتقال خودکار» یا «بازگشت به مقایسه» را بزنید.
«از» و قیمتهای قابل مقایسه
قیمت «از» کانال و برجستهسازی کمترین قیمت فقط پیشنهادهایی را حساب میکند که موجود یا کمموجود باشند، غیرقابلمقایسه علامت نخورده باشند، در 72 ساعت گذشته با موفقیت توسط ما بررسی شده باشند و دوره پرداختشان معلوم باشد. موارد ناموجود، حذفشده، هرگز بررسینشده یا با دوره نامعلوم هرگز شرکت داده نمیشوند.
مقایسه فقط درون یک دوره پرداخت انجام میشود: رایجترین دوره بین پیشنهادهای یک سطح (معمولاً ماهانه) را برمیداریم و کمترین قیمت را فقط در همان دوره پیدا میکنیم. بنابراین «آزمایش 10 روزه» نمیتواند از قیمت ماهانه کمتر نشان داده شود و بسته 18 ماهه هرگز کنار ماهانهها رتبهبندی نمیشود. دوره کنار قیمت نوشته میشود.
ترتیب جدول همان قاعده «از» را دنبال میکند. «قیمت صعودی» بر اساس همان دوره اصلی گروهبندی میشود: اول پیشنهادهای موجودِ همدوره که اخیراً بررسی شدهاند، بعد پیشنهادهای همدوره تأییدنشده (در بخش جداگانه با توضیح)، و فقط پس از آن دورههای دیگر، کمموجود و ناموجود. عنوان هر بخش میگوید شامل کدام سطح موجودی و کدام دوره است، تا وقتی قیمت جهش دارد، دلیلش روی صفحه باشد نه در حدس خواننده. ترتیب فقط از فیلدهای عینی منتشرشده (موجودی، دوره، زمان بررسی، قیمت) استفاده میکند؛ امتیاز یا وزندهی در کار نیست.
وقتی هیچ موردی شرایط را ندارد، «از» بهجای عددی که نمیتوانیم تأیید کنیم «—» نشان میدهد. اگر آن سطح هنوز پیشنهادی برای نمایش داشته باشد، خلاصه قیمت با «(مرجع)» علامت میخورد؛ یعنی کمترین قیمت فهرست، نه کمترین قیمت تأییدشده.
فیلترها
«فقط موجود» پیشنهادهایی را نگه میدارد که سطحشان موجود است: کمموجود و ناموجود هر دو پنهان میشوند، چون «موجود» نیستند. عدد «N مورد در این نما» در بالای صفحه همیشه با ردیفهای واقعی جدول برابر است؛ ردیفهای پنهانشده با فیلتر جداگانه شمرده میشوند و پاک کردن فیلترها با یک کلیک ممکن است.
ستون «بهروزرسانی»
فقط آخرین زمانی را نشان میدهد که صفحه آن فروشنده را با موفقیت خواندهایم. پیشنهادهایی که هرگز بررسی نشدهاند «تأییدنشده» نشان داده میشوند، نه زمان ساخت فهرست یا مقدار حدسی دیگر؛ پس «تأییدنشده» یعنی قیمت آن ردیف هنوز در خزش فعلی تأیید نشده است.
ستونهای عینی
- ضمانت: متن خود فروشنده؛ خالی یا بدون توضیح → «بدون تعهد».
- اگر از ضمانت حرف زده اما تعداد روز را ننوشته → «در صفحه محصول (بدون مدت مشخص)» نشان داده میشود و در «کمترین قیمت با ضمانت» حساب نمیشود.
- موجودی: موجود / کم / ناموجود. اگر صفحه فروشنده تعداد را صریحاً بنویسد (مثلاً «موجودی: 12»، حالت موجودی دقیق Dujiao، فیلد inventory در GamsGo)، عدد پس از نشان موجودی میآید، مثلاً «موجود 12»؛ در غیر این صورت فقط سطح نشان داده میشود و هرگز از «موجود» عددی ساخته نمیشود.
- دوره: طبق صفحه فروشنده؛ اگر قابل تعیین نباشد «نامشخص» نشان داده میشود و در «از» حساب نمیشود.
- نوع (شارژ حساب شما / حساب آماده) مستقل از SKU است؛ قیمت مرجع رسمی بالای SKU میآید و وارد ترتیب پیشنهادها نمیشود.
- همه لینکهای خروجی از /go میگذرند؛ ما هرگز پول دریافت نمیکنیم و در معامله دخالتی نداریم.
ادغام آگهیهای مشابه
یک SKU اغلب توسط چند فروشگاه با عنوانهای تقریباً یکسان عرضه میشود. وقتی دو ردیف در سطح، نوع، دوره پرداخت و عنوان نرمالشده یکی باشند، در یک ردیف «N آگهی مشابه» ادغام میشوند که با بازکردنش همه فروشگاهها دیده میشوند؛ بازه قیمت فقط کمترین و بیشترین قیمت آن گروه را نشان میدهد.
ادغام فقط تکرار را حذف میکند و هیچ نتیجهای نمیگیرد: نه جایگاه ویژه، نه امتیاز اعتبار، نه وزندهی. ردیفهایی با عنوان یا دوره متفاوت هرگز ادغام نمیشوند («1 ماه» و «3 ماه»، «اشتراکی» و «اختصاصی» همیشه جدا میمانند)، چون محصولات متفاوتیاند.
قیمت رسمی در برابر قیمت کانال
قیمتهای رسمی قیمتهای اعلامشده اشتراک هر شرکت را در چند منطقه فهرست میکند، با منبع و تاریخ خواندن در هر ردیف، که دستی بررسی شده و نه با خزنده؛ ستون یوان تبدیلی با نرخ ثابت برای مرجع است. قیمت رسمی مبنا است: هرگز وارد جدول پیشنهادها، «از» یا هیچ مرتبسازیای نمیشود و به معنای امکان خرید از منطقه دیگر نیست.
«مرجع رسمی» بالای صفحه هر SKU از همان جدول، همان ردیف و همان نرخ (پیشفرض قیمت ماهانه آمریکا) میآید، پس همیشه با صفحه قیمتهای رسمی یکی است و مرجع دستی جداگانهای وجود ندارد. روی ترتیب تأثیری ندارد.
نام فروشگاهها
فهرستها نام خود فروشنده را نشان میدهند، با حذف شعارهای تبلیغاتی، کدهای معرف و دعوت، نمادهای تزئینی و بقایای HTML. اگر عنوان فروشنده فقط کلمات کلیدی محصول باشد (چند نام محصول کنار هم) یا فقط یک دامنه، دامنه خروجی واقعی را نشان میدهیم؛ دامنه یک واقعیت است، ساختن نام فروشگاه نه. پاکسازی فقط روی نمایش اثر دارد، نه لینک، شناسه یا انتساب کلیک.
قیمت تبلیغشده ≠ قیمت تأییدشده فروشگاه
اعداد این سایت از صفحات عمومی محصول یا بازبینی فهرست اولیه میآیند و ممکن است با پوستر، حرفهای گروهها یا مبلغ نهایی پرداخت فرق کنند. هنگام سفارش، آنچه صفحه فروشنده نشان میدهد ملاک است.
لینکهای مرده و حذف از فهرست
URLهای خروجی مرتب بررسی میشوند. خطای DNS، رد اتصال، 404/410 پایدار، صفحه پارکشده یا صفحه حذف صریح باعث حذف از فهرست پیشفرض میشود (دیگر «رفتن» نخواهد داشت). WAF/403 گاهبهگاه یا 5xx ناپایدار با یک بار خطا باعث حذف دستهجمعی نمیشود.
بدون ضمانت
Dingge قیمت، موجودی، ضمانت یا تحویل را تضمین نمیکند؛ پس از رفتن به لینک خارجی، ارزیابی ریسک معامله با خود شماست. ما واسطه معامله نیستیم و هیچ امتیاز ذهنی مانند رتبه اعتماد یا فهرست سیاه منتشر نمیکنیم.