Feedback and Issue Reporting

When an advertisement slips through, a website layout breaks, or a video player fails to load, reporting the issue helps the maintainer reproduce and fix the problem without requiring you to inspect page source code.

Choosing the Right Channel#

Nvirya AdGuard provides built-in reporting in About → Community & Support:

GoalWhere to GoWhat to Expect
Report a bug (missed ad, broken layout, video player issue, false positive, slowdown)Tap Feedback in About → Community & Support and choose Missed ad, Broken page layout, Video playback issue, or OtherSends a one-way diagnostic report to the maintainer's Discord webhook; does not open a live chat thread
Suggest a featureTap Feedback in About → Community & Support and choose Feature suggestionSends your text suggestion, script version (v11.7.0), and platform category (iOS / iPadOS or Android / Desktop) to the maintainer
Ask a general support question or get two-way helpTap Telegram (https://t.me/nvirya) or Discord in About → Community & SupportOpens a direct community/author channel where you can receive replies

Rate Limit: To prevent accidental duplicate submissions, the built-in Send Feedback tool enforces a 30-second cooldown per hostname (nvirya_x_last_report). If you submit again within 30 seconds on the same site, a toast displays: Please wait {sec}s before sending more feedback.

What Data Is Collected in a Bug Report#

When you select Missed ad, Broken page layout, Video playback issue, or Other in the Send Feedback modal and tap Submit, submitReport() constructs a JSON payload and sends it via HTTP POST (GM_xmlhttpRequest or fetch) to the project's configured Discord webhook.

Every bug report includes the following exact fields:

  1. Website Hostname (Domain): The current location.hostname (for example, news.example.com).
  2. Script Version (Version): v11.7.0.
  3. Selected Issue Category (Reason): Missed ad, Broken layout, Player issue, or Other.
  4. Sanitized Page URL (URL (Sanitized)): Generated by getSanitizedUrl() (truncated to 1,000 characters):
    • Removes the URL #hash fragment completely.
    • Scans all URL query parameter names (?key=value). Any parameter whose key matches /auth|token|session|key|pass|code|secret|credential|email|user/i has its value replaced with [REDACTED].
  5. Optional User Notes (Note): Any text you type into the Details (optional): box (truncated to 1,000 characters), or (Không có) if left blank.
  6. Blocking Statistics:
    • Session: stats.session.ads, stats.session.hidden, and stats.session.popups.
    • Lifetime: stats.lifetime.ads and stats.lifetime.hidden.
  7. Recent Filter Logs: The last 4 entries from the in-memory logRing buffer ([LEVEL] type: message extra, truncated to 900 characters).
  8. Browser User-Agent: Your browser's navigator.userAgent string (truncated to 200 characters) so the maintainer knows which browser and operating system version exhibited the issue.

What is sent for a Feature Suggestion#

When you select Feature suggestion (Feature request), a description is required (Please enter a brief description first if empty). The script sends only:

  • Your suggestion text (up to 1,000 characters)
  • Script version (v11.7.0)
  • Device platform (iOS / iPadOS or Android / Desktop)

It does not send the current website hostname, page URL, blocking statistics, logs, or full User-Agent.

Privacy Boundaries: What to Review Before Submitting#

Nvirya AdGuard does not claim that bug reports are completely anonymous or guaranteed free of sensitive context:

  • Webhook transport: Reports are transmitted over HTTPS to a Discord webhook configured in the script, which means the report payload is processed through Discord's infrastructure (discord.com / discordapp.com).
  • Limits of automatic URL sanitization: While getSanitizedUrl() redacts query parameter values whose names contain words like token, session, auth, key, pass, code, secret, email, or user, it cannot know if a website embeds private identifiers directly in the URL path (for example, https://example.com/account/orders/987654) or uses non-standard query keys (such as ?id=12345).
  • Recent logs: The last 4 log entries may contain URLs of blocked ad requests or redirect targets triggered on the current page.

Before tapping Submit on a bug report:

  1. Check whether you are on a private, logged-in account page, private document URL, or internal company portal. If the URL path itself is private, do not submit an automated bug report from that page.
  2. Never paste passwords, session cookies, personal contact information, or private tokens into the Details (optional): text box.

Inspecting diagnostics manually (Copy Diagnostics)#

If you want to see your diagnostic state before sharing anything, open About → Diagnostics → Copy Diagnostics ("Copy system & filter logs to clipboard"). This copies a plain-text summary generated by collectDebugInfo()—including version, hostname, URL without query parameters, active toggles, session/lifetime stats, decision counters, anti-adblock diagnostics, and the last 15 log entries—directly to your clipboard so you can review or edit it before pasting it into Telegram or Discord.

How to Write a Useful Report (No Technical Jargon Required)#

You do not need to know HTML, CSS, or JavaScript to submit a helpful report. Because the script automatically attaches the URL, version, stats, and recent logs, a single plain-English sentence in the Details (optional): box is enough:

  • Missed advertisements (Missed ad): State where the ad is and when it appears.
    • Good example: "A sticky banner stays at the bottom of the screen when reading an article."
    • Good example: "Tapping the play button opens a new tab to a gambling site."
  • Broken page layouts (Broken page layout): State what part of the page is missing or unclickable, and whether pausing Nvirya AdGuard fixes it.
    • Good example: "The article images are blank when the script is on, but load normally when I tap Pause for This Session."
    • Good example: "Page cannot scroll after the newsletter popup closes."
  • Video player issues (Video playback issue): State whether the video fails to start, buffers endlessly, or plays an unskipped ad.
    • Good example: "Video stays on a black loading spinner unless I turn off Media Guard."
  • False-positive blocking (Broken page layout or Other): Mention which button, login popup, or download link was blocked.
    • Good example: "The 'Download APK' button at the bottom of the post does nothing when tapped."
  • Performance problems (Other): Mention what action makes the page lag.
    • Good example: "Scrolling down the search results stutters heavily on Android until I pause protection."