Every capability, documented
DealsGroup converts and normalizes web links into affiliate links per your configured rules, and optionally broadcasts them. Every feature below — the Deal Feed, mobile preview, redirect tracer, reminders, and built-in tools — exists to support that one workflow.
Convert pipeline (the core)
Toolbar popup · context menu · dashboard composer · keyboard shortcuts · Deal Feed actions
Takes one input URL and runs it through an ordered, fully optional pipeline to produce a clean affiliate link, then optionally broadcasts it. Each stage is configurable per store and can be turned off.
| # | Step | What happens | Optional? |
|---|---|---|---|
| 1 | Resolve redirects | Follows HTTP 3xx and meta-refresh; optionally JS-driven redirects. Default max depth 4. | Yes |
| 2 | Unwrap embedded URLs | Extracts a destination URL nested inside a redirector, decoding none / url / base64 / base64url, up to 5 nested peels. | Yes (per-rule) |
| 3 | Clean tracking params | Removes tracking/junk query params per store, by exact name, substring, or re: regex. | Yes (per store) |
| 4 | Add affiliate tag / sub-IDs | Appends your affiliate tag and any sub-ID parameters for the matched store. | Yes |
| 5 | Affiliate-network wrap | Wraps the link in a network link template built from [DG-*] smart tokens. | Yes |
| 6 | Shorten | Sends the link to a configured shortener API or native short-link service. | Yes |
| 7 | Broadcast | Sends the finished message/link to configured Telegram channels and/or webhooks. | Yes |
Store presets
Pre-built rule sets that recognize a retailer by host and apply the right tracking-param cleaning and affiliate-tag behavior. You can also define fully custom stores. Built-in presets (11):
Amazon presets intentionally do not list amzn.to / amzn.in — short links are expanded first, then matched against the resolved Amazon host.
Affiliate networks
Wraps a cleaned store link inside an affiliate-network tracking URL using a reusable link template, and/or adds, removes, or replaces parameters. Supports a "covers all hosts" fallback so any link can be monetized.
User-defined trackers with custom link templates; param add / remove / replace.
Starter templates: Cuelinks, EarnKaro, INRDeals, Admitad.
Seeded defaults: INRDeals and Cuelink (Cuelink as the catch-all fallback).
Smart Replacement tokens [DG-*]
Dynamic placeholders you can drop into link templates and network values; substituted at conversion time. Built-in tokens include:
Shorteners
Replaces the final long affiliate link with a short link via an API or native short-link service.
Bundled default: ViaDeals Free (via.deals/api/links) — no sign-up.
Presets: TinyURL, is.gd, CleanURI, Bitly, Cutt.ly, YOURLS, native amzn.to/fkrt.it, and custom API.
Cookie allowlist; 64 KB response cap; SSRF guard on every custom URL.
Excluded domains & unwrap rules
Excluded domains mark a domain as pass-through so the pipeline leaves its links untouched, with optional keepOriginal.
Unwrap rules pull the real destination out of a redirector/wrapper URL — per domain + param, decoding none / url / base64 / base64url, up to 5 nested peels.
12 seeded redirector rules included (for example, paisawapas.com).
Telegram broadcasting
Sends your converted message/link to one or more Telegram channels via the Bot API.
Per-channel: bot token + chat id + parse mode (Markdown or HTML; upgraded to MarkdownV2/HTML so rich formatting survives).
Per-message image attach — sends as a photo with text as caption; falls back to caption-less photo + separate text on overflow.
Static inline reply-button sets (with fill-at-send empty slots). api.telegram.org — no browser cookies.
Webhooks
Posts your templated message/link to a generic HTTP webhook (Discord, Slack, n8n, or custom).
Method + custom headers configurable.
Body template tokens: {{message}}, {{message_json}}, {{message_url}}, {{timestamp}}, {{token}}.
Trigger types: message, all, or reminder. credentials:'omit'; SSRF-guarded.
Reminders & scheduled messages
Schedules future actions, backed by chrome.alarms.
Reminder — notifies about a URL + note (notification carries an "Open URL" button).
Message — broadcasts free text to your destinations.
Repeat: none / hourly / daily / weekly / monthly / custom. Missed reminders fire on startup within a 24-hour grace window.
Deal Feed
opt-in · receive-onlyA dashboard panel that connects, only on an explicit Connect click, to the DealsGroup broadcast server and shows incoming Telegram deal messages in real time.
Server: tg-forwarded-deals.deals.group over Socket.io WSS + /media/* images.
Receive-only; live-only (no backlog); auto-disconnects after 5 min idle; live online-client count.
Per-message: Convert, Convert & Send, Copy (WhatsApp/Markdown/Telegram/Plain). Incoming HTML re-sanitized (XSS-safe).
Mobile Preview side panel
Renders any user-supplied URL inside a side panel at real device dimensions. ~22 device presets — iPhone, Pixel, Galaxy, OnePlus, iPad — plus custom user agents.
Frames refusing sites via a scoped declarativeNetRequest rule applied only to sub-frame requests initiated by the extension's own pages. Registered only while open; never affects normal browsing.
Redirect Tracer & Resolver
Shows the full redirect chain for a URL so you can debug affiliate/redirector links.
Tracer: every hop — HTTP 3xx, meta-refresh, JS redirect — with timing. Resolver: manual one-off resolution.
JS redirects observed via webNavigation.onCommitted on a hidden tab you initiate; watchdog alarm closes orphans.
webRequest.onHeadersReceived reads the Location header — read-only, never modifies traffic.
Built-in tools
A small toolkit of link builders and utilities (Dashboard → Tools):
QR generation uses api.qrserver.com only when you click to generate, with an in-app warning that the URL leaves your browser.
Import / Export / Share
Export: redacts all secrets by default unless you choose "Include credentials".
Single-item shares: always strip secrets.
Import: validates per-key shape, runs the SSRF guard, writes atomically with rollback.
Themes & keyboard shortcuts
Light, Dark, or Auto (follows the system preference).
| Shortcut | Action |
|---|---|
| Alt+Shift+L | Open popup |
| Alt+Shift+K | Convert current tab |
| Alt+Shift+M | Open Mobile Preview |
| Alt+Shift+O | Open dashboard |
Use Command instead of Alt on macOS; remappable at chrome://extensions/shortcuts.
Context menu (right-click)
Three right-click items, each requiring an explicit click:
Process with dealsgroup — convert the link/page.
Preview in Mobile Sidebar — open the Mobile Preview side panel.
Remind Me… — create a reminder for the URL.
The content script does not read or exfiltrate page content; optional auto-detect is off by default.
Analytics
on by default · opt-outSends anonymous event counts (not content) via the GA4 Measurement Protocol to help improve the product. Change it any time at Settings → Behavior (takes effect within milliseconds across all contexts).
Default state
The first-run wizard shows the consent toggle pre-enabled; finishing onboarding resolves to enabled. Endpoint google-analytics.com/g/collect with non_personalized_ads:true.
What is sent
Allowlist: tab, tool, via, reason, kind, success, count, engagement_time_msec, app_version + random client id + 30-min session id. Strings capped at 40 chars; denylist drops URL/email/token-like values.
user_id, or user_properties. Chrome data-use disclosure: User activity = Yes (event counts only). Events batched ≤25, rate-limited 30/min.Network destinations (summary)
The complete set of network destinations. Each activates only on the inherent feature that needs it.
| Destination | When | Cookies |
|---|---|---|
| The link's own servers | Resolving redirects | credentials:'omit'; JS detection uses a hidden tab with your session |
| Configured shortener API (default ViaDeals) | When shortening is on | Only to the affiliate-shortener allowlist; others omit |
| Configured webhook (Discord/Slack/n8n/custom) | When you broadcast | credentials:'omit'; SSRF-guarded |
api.telegram.org | When you send to Telegram | Bot token; no browser cookies |
tg-forwarded-deals.deals.group | Only on Deal Feed Connect | None / images omit |
api.qrserver.com | Only on QR generate | None |
google-analytics.com/g/collect | While analytics is enabled | None |
Every user-supplied endpoint and every redirect hop passes the SSRF guard isPublicHttpUrl(). Outbound fetches concurrency-capped at 6 with 429/503 backoff. See Security.
Want the step-by-step walkthroughs?
Add DealsGroup Affiliate Engine to Chrome
Free on the Chrome Web Store — works on Chrome, Edge, Brave, Vivaldi and Arc.