# بازپخش نشست > https://docs.errora.org/products/session-replay بازپخش نشست ثبت می‌کند در مرورگر چه گذشته است — تغییرات DOM، کلیک‌ها، ناوبری و کنسول — و آن را کنار خطایی که رخ داده بازپخش می‌کند. ## راه‌اندازی ```javascript import * as Sentry from "@sentry/browser"; Sentry.init({ dsn: "https://@/", integrations: [ Sentry.replayIntegration({ maskAllText: true, // پیش‌فرض‌های حریم خصوصی: روشن blockAllMedia: true, maskAllInputs: true, }), ], replaysSessionSampleRate: 0.1, // ۱۰٪ همهٔ نشست‌ها replaysOnErrorSampleRate: 1.0, // ۱۰۰٪ نشست‌هایی که به خطا خورده‌اند }); ``` دو نرخ نمونه‌برداری، آگاهانه جدا از هم: - `replaysSessionSampleRate` — مرور عادی. پایین نگهش دارید؛ هر نشست ضبط‌شده هزینه دارد. - `replaysOnErrorSampleRate` — نشست‌هایی که خطا داشته‌اند. این را روی `1.0` بگذارید؛ همین ضبط است که واقعاً می‌خواهید ببینید. ## حریم خصوصی بازپخش صفحهٔ کاربران شما را ضبط می‌کند، پس به‌طور پیش‌فرض با آن مثل دادهٔ حساس رفتار کنید: | کنترل | اثر | | --- | --- | | `maskAllText: true` | متن‌ها با بلوک جایگزین می‌شوند | | `maskAllInputs: true` | مقدار ورودی‌ها هرگز از مرورگر خارج نمی‌شود | | `blockAllMedia: true` | تصویر و ویدئو ضبط نمی‌شود | | `class="sentry-mask"` | ماسک‌کردن یک عنصر مشخص | | `class="sentry-block"` | ضبط‌نکردن کامل آن عنصر | | `class="sentry-ignore"` | ضبط عنصر، بدون ثبت تعامل با آن | ماسک‌کردن **در مرورگر و پیش از ارسال هر چیزی** انجام می‌شود. ماسک را فقط برای عنصرهایی خاموش کنید که آگاهانه بررسی‌شان کرده‌اید. ## در پنل صفحهٔ **بازپخش‌ها** نشست‌های ضبط‌شده را با کاربر، مدت، تعداد خطا، مرورگر و سیستم‌عامل فهرست می‌کند. با باز کردن یکی: - **بازپخش** ضبط rrweb همراه با خط زمان - **صفحه‌های بازدیدشده** در طول نشست - **خطاهای** رخ‌داده در آن نشست، با پیوند به خطای مربوطه - **ترِیس‌های پیوسته**، وقتی ردیابی روشن باشد از صفحهٔ خطا، پنل **بازپخش** مستقیم به لحظهٔ رخداد خطا می‌پرد. از [بازخورد کاربر](/products/user-feedback) هم `replay_id` همین کار را می‌کند. ## API ```text GET /api/v1/projects/{project_id}/replays?stats_period=24h&limit=&offset= GET /api/v1/projects/{project_id}/replays/{replay_id} GET /api/v1/projects/{project_id}/replays/{replay_id}/events ``` ## هزینه بازپخش‌ها زیر سرویس **بازپخش نشست** و به ازای هر نشست ضبط‌شده محاسبه می‌شوند — گران‌ترین واحد فهرست قیمت. اهرم کنترل هزینه‌تان نمونه‌برداری است؛ نگاه کنید به [کیف پول](/billing/wallet). ## عیب‌یابی | نشانه | علت / راه‌حل | | --- | --- | | هیچ بازپخشی ثبت نمی‌شود | `replayIntegration()` اضافه نشده یا هر دو نرخ نمونه‌برداری `0` است | | بازپخش هست ولی به خطا وصل نیست | خطا در نشست یا تب دیگری ثبت شده، یا ضبط بعد از خطا شروع شده | | بازپخش سفید یا خراب است | شیوه‌نامه‌های cross-origin قابل درج نیستند — CSS را از دامنهٔ خودتان سرو کنید یا CORS را باز کنید | | حجم ضبط خیلی زیاد است | نشست‌های طولانی روی DOM سنگین؛ `replaysSessionSampleRate` را کم کنید و ویجت‌های شلوغ را با `sentry-block` مسدود کنید | | دادهٔ حساس دیده می‌شود | جایی ماسک خاموش شده — گزینه‌های `mask*` و کلاس‌های هر عنصر را بازبینی کنید |