Free WordPress Plugin. Open-source. Built for casino and sportsbook traffic.
Track clicks on your own domain, capture SubIDs and creative IDs, apply GEO/state gating, and export clean audit logs—without paying for a third-party short-link tool.
Compatible with WordPress 6.3+ · PHP 8.1+ · GPL-2.0-or-later
What iGaming Affiliate Link Tracking Plugin Does?
- First-party tracking on your domain (
/go/offer-name
) so ad blockers are less likely to kill attribution. - Logs every click with timestamp, hashed IP, user agent, referrer, device, GEO/state (if enabled), and custom parameters.
- Captures affiliate parameters (SubID, click_id, creative_id, campaign, placement) and forwards them to the destination.
- Optional GEO/state gating (send New Jersey traffic to NJ offer, Pennsylvania to PA, everything else to fallback).
- Optional age notice and disclosure line for compliance pages.
- Cookieless mode (no client storage) or first-party cookie with short TTL—your choice.
- Webhooks & postbacks to send clicks to your tracker/CRM.
- CSV export + REST API for reports and finance reconciliation.
- Gutenberg block and shortcode so non-technical users can insert buttons/links in seconds.
Why iGaming teams use it?
- First-party redirects = fewer lost clicks.
- GEO/state rules = fewer compliance headaches.
- Structured logs = faster dispute resolution.
- Zero license cost = safer pilots and proof-of-concepts.
Quick start (5 minutes)
- Install → In WP Admin go to Plugins → Add New → Upload Plugin, select the ZIP, activate.
- Open Settings → iGaming Links → choose:
- Parameter names you use (
subid
,click_id
,creative_id
,utm_campaign
). - Cookieless vs. first-party cookie mode.
- GEO provider (none, GeoLite2 DB, or HTTPS API) and your key if used.
- Parameter names you use (
- Create your first link → iGaming Links → Add New:
- Destination URL (your affiliate link with macros if needed).
- Allowed regions (GEO/state list) + fallback URL.
- Default parameters to append automatically.
- Insert it in content:
- Block: add iGaming Link Button.
- Shortcode:
[iga_link id="123" text="Play now" class="btn-primary"]
. - Direct URL: copy the pretty link (e.g.,
https://yoursite.com/go/brand-nj/
).
- Test → Append
?test=1
to avoid logging while you verify redirects. - Check logs → iGaming Links → Clicks; export CSV if needed.
What’s inside?
- Redirect tracking:
/go/{slug}
→ destination (301/302/307) - Logging with privacy-safe IP hashing, UA, referrer, UTM
- On-page click capture (optional): beacon script; “track all anchors” or only
data-nowg-track
- Admin: Links, Reports, Settings
- Uninstall cleanup; daily purge job; admin-footer credit linking to “Free Affiliate Tools” → nowg.net
- Shortcode:
[nowg_link slug="offer" rel="nofollow sponsored" class="btn"]Click me[/nowg_link]
How to install?
- Plugins → Add New → Upload Plugin → select the zip above
- Activate → “NowG Links” menu
- Add a slug; test your redirect at
https://your.site/go/slug
- If 404, visit Settings → Permalinks → Save (flush rewrites)
Defaults set
- Requires at least: WP 6.2, PHP 8.0
- Data retention: 180 days (changeable)
- IP hashing: ON
- Beacon tracking: OFF (toggle in Settings)
- Redirect base:
/go/
Feature matrix
Area | What you get | Where to use it |
---|---|---|
First-party redirects | Clean /go/* links with 302/307 | Landing pages, menus, CTAs |
Parameter capture | subid, click_id, creative_id, utm_* | Attribution, partner disputes |
GEO/state gating | Per-state routing + fallback | US regulated markets |
Age & disclosure | Optional interstitial + auto footnote | Compliance pages |
Anti-bot basics | User-agent rules, ASN/IP denylist, click velocity | Click quality hygiene |
Webhooks/Postbacks | Send click JSON to your tracker/CRM | Real-time analytics |
Exports & API | CSV export, /wp-json/iga/v1/clicks | BI, finance, backups |
Roles & caps | Editor can create links; Admin sets rules | Safer workflows |
Event & parameter schema (defaults)
Field | Description | Example |
---|---|---|
click_id | Passed through if present; generated if missing | abc123 |
subid | Your partner’s sub-parameter | siteA_topnav |
creative_id | Map creative/placement | hp_300x250_v3 |
utm_source / utm_campaign | Optional campaign tags | igaming_blog / nj_launch |
geo_country / geo_state | Resolved at click (if enabled) | US / NJ |
ip_hash | One-way salted hash of IP | sha256:… |
ua / ref | User agent / referrer | … |
ts | Server timestamp | 2025-08-22T10:15:31Z |
You can rename parameters in Settings → Parameters. The plugin forwards all captured params to the destination URL (unless you choose “internal-only”).
GEO/state gating
- Modes: Off / GeoLite2 (local DB) / HTTPS API (enter your key).
- Rules: Route by country → optional state; anything unmatched goes to the fallback URL.
- Privacy: GEO lookups run server-side; IP is hashed in the stored record.
- Note: Geo databases are not bundled—you provide your own key or DB (license reasons).
Example rule:
US→NJ → send to …/nj-offer?subid={{subid}}
US→PA → send to …/pa-offer?subid={{subid}}
Elsewhere → fallback …/intl-offer
Shortcode & Block examples
- Button with icon class:
[iga_link id="123" text="Claim Bonus" class="btn btn-lg btn-cta"]
- Raw URL (for menus): copy from the link editor sidebar.
- Gutenberg: search “iGaming Link Button,” set Link, Style, Nofollow, and “Open in new tab.”
Webhooks & postbacks
- Outbound webhook: on every logged click the plugin can POST JSON to a URL you configure.
- Retry logic: exponential backoff up to 5 attempts.
- Security: sign payloads (HMAC-SHA256 with your shared secret).
- Placeholders: send raw and resolved fields (
subid
,geo_state
,ip_hash
, etc.).
Exports & API
- CSV export from the Clicks screen (date range, link IDs, columns).
- REST API:
GET /wp-json/iga/v1/clicks?from=2025-08-01&to=2025-08-31&link=123
- Requires an admin/app password or token; supports pagination.
Compliance & privacy
- No PII stored by default. IPs are hashed with a rotating salt; you can disable referrer/user agent storage if your policy requires.
- Age notice & disclosure: toggle an interstitial (“21+ only…”) and auto-append a disclosure line under the link block.
- Data retention: choose rolling retention (e.g., 90/180/365 days) or manual purge.
- Cookie mode: off by default; turn on if you need continuity across multiple clicks.
This plugin assists with operational compliance but does not replace your legal review.
Performance & security
- Redirects are server-side and cache-friendly (302/307).
- Database writes use prepared statements; options validated and nonce-protected.
- Optional async logging to reduce TTFB on high-traffic pages.
- Works with popular page/cdn caches; mark
/go/*
to bypass full-page caching.
System requirements
- WordPress 6.3 or newer
- PHP 8.1+ (intl, json, mbstring enabled)
- MariaDB/MySQL 10.4+
- Optional: cron or real cron for async queue
Free download & license
- Download: Use the “Download ZIP” button on this page (or install from your WordPress dashboard if it’s in the repository).
- Price: Free, forever.
- License: GPL-2.0-or-later (you can modify and redistribute under GPL-compatible terms).
- Attribution: Not required (nice if you keep it). No tracking, no nags.
Support & contributions
- Issues/bugs: open a ticket with steps to reproduce and your WP/PHP versions.
- Security: email a short report; we acknowledge within 48 hours and ship patches quickly.
- Contribute: PRs welcome—new gateways for GEO, additional parameter presets, or export formats.
Changelog (highlights)
- 1.0.0 — First public release: first-party redirects, parameter capture, GEO/state gating, age notice, webhooks, CSV export, REST API, block + shortcode.
FAQ
Does it cloak links?
Yes—on your own domain. It preserves or appends the affiliate parameters you set.
Can I use it without cookies?
Yes—cookieless mode logs server-side only.
Will it break my cache/CDN?
No. Redirect endpoints are separate; just exclude /go/*
from full-page caching.
How accurate is GEO/state?
As accurate as your DB/API. For regulated U.S. states, pair this with your compliance stack’s geofencing; this plugin routes links, it isn’t a geolocation compliance engine.
Can I add custom fields?
Yes. Use the “Custom Params” panel; they’re stored and forwarded.
Does it track conversions?
This plugin is click-tracking with smart routing. You can receive conversion webhooks from your affiliate networks into another system, then join on click_id/subid
.
Developer hooks (summary)
apply_filters( 'iga_destination_url', $url, $click_context )
do_action( 'iga_click_logged', $click_array )
apply_filters( 'iga_webhook_payload', $payload, $click_array )
Final thought
If your iGaming links still rely on third-party shorteners and manual spreadsheets, you’re giving away attribution and time. Drop this in, route by state, capture the IDs that matter, export the CSV finance actually wants—and move on to the fun part: scaling what works.