The free, open-source URL builder for marketers who work with tracking links every day.
π Try it now β no login required π
Imagine you run ads on Google, Facebook, TikTok, or mobile ad networks. Every time you launch a campaign, you need to add special tags (called parameters) to your URLs so you can track where your traffic is coming from. Doing this by hand is slow and error-prone.
URL Parameter Manager is a web app that lets you paste any URL, visually add or edit those tracking tags, pick from ready-made templates for popular platforms, generate a QR code, and copy the final link β all in seconds. Think of it as a Swiss Army knife for anyone who builds marketing links.
| Feature | Description |
|---|---|
| π― UTM Builder | Add utm_source, utm_medium, utm_campaign and more with one click |
| π± MMP Templates | Pre-built templates for AppsFlyer, Adjust, Branch, and Singular |
| π€ DSP Templates | Ready-to-use macros for Moloco, Kayzen, Smadex, AppLovin, and Appnext |
| π§ Macro Preservation | Keeps {campaign_id}, ${CLICK_ID}, xapnt1x and other tracking macros intact β never URL-encodes them |
| π QR Code Generator | Instant, customizable QR codes (7 color themes, 3 sizes) with PNG download |
| π URL Metadata Preview | Automatically fetches page title, description, and Open Graph image for any URL |
| πΎ URL History | Your last 20 URLs are saved locally in your browser β no account needed |
| π¨ Syntax Highlighting | The generated URL is color-coded so you can spot base path vs. query parameters at a glance |
| π 100% Private | Everything runs in your browser. No data is sent to any server (except the metadata preview, which calls the public Microlink API) |
1. Paste a URL --> Parameters are auto-detected and shown in an editable table
2. Pick a template --> One-click presets for Google, Meta, TikTok, AppsFlyer, Moloco...
3. Edit values --> Change any parameter name or value β macros stay safe
4. Copy or scan --> Copy the final URL to clipboard, or download a QR code
Analytics & Ad Platforms
| Platform | Template included? | Macro format |
|---|---|---|
| Google Ads | β | {campaignid}, {keyword}, {gclid} |
| Meta (Facebook) Ads | β | {{campaign.name}}, {{ad.name}} |
| TikTok Ads | β | __CAMPAIGN_NAME__, __CLICKID__ |
Mobile Measurement Partners (MMPs)
| MMP | Template included? | Key parameters |
|---|---|---|
| AppsFlyer | β | pid, c, af_siteid, af_c_id, clickid |
| Adjust | β | tracker, campaign, adgroup, creative |
| Branch | Param-ready | Custom deep link params |
| Singular | Param-ready | Custom attribution params |
| Kochava | Param-ready | Custom attribution params |
Demand-Side Platforms (DSPs)
| DSP | Template included? | Macro format |
|---|---|---|
| Moloco | β | ${CAMPAIGN_NAME}, ${CLICK_ID} |
| Kayzen | β | {campaign_name}, {CONVERSION_ID} |
| Smadex | β | {CAMPAIGN_NAME}, {CLICK_ID} |
| Appnext | β | xapnt1x, {apnt_campid} |
| AppLovin | Param-ready | Custom macros |
| Liftoff | Param-ready | Custom macros |
| Unity Ads | Param-ready | Custom macros |
| Digital Turbine | Param-ready | Custom macros |
| Mintegral | Param-ready | Custom macros |
| Layer | Technology | Purpose |
|---|---|---|
| UI Framework | React 18 | Component-based interface |
| Build Tool | Vite 5 | Fast dev server & optimized production builds |
| Styling | Tailwind CSS 3 | Utility-first responsive design |
| Icons | Lucide React | Clean, consistent SVG icons |
| QR Codes | qrcode.react | Client-side QR code generation |
| Metadata | Microlink API | Fetches Open Graph data for URL previews |
| Deployment | GitHub Actions + FTP | Auto-deploy on every push to main |
- Node.js 18 or higher
- npm (comes with Node.js)
# 1. Clone the repository
git clone https://github.com/JanNafta/url-parameter-manager.git
cd url-parameter-manager
# 2. Install dependencies
npm install
# 3. Start the development server
npm run devThe app will open at http://localhost:5173.
npm run buildThe optimized output goes to the dist/ folder, ready to deploy anywhere (static hosting, CDN, FTP, etc.).
url-parameter-manager/
βββ public/ # Static assets (favicons, robots.txt, sitemap)
βββ src/
β βββ components/
β β βββ Header.jsx # Top navigation bar with feature badges
β β βββ Footer.jsx # CTA section + services grid
β β βββ UrlInput.jsx # URL input field with validation & examples
β β βββ ParameterTable.jsx # Editable table of URL parameters
β β βββ UTMTemplates.jsx # One-click template presets (9 platforms)
β β βββ UpdatedUrl.jsx # Generated URL display with copy button
β β βββ MetadataPreview.jsx # OG metadata + favicon preview
β β βββ QRCodeGenerator.jsx # QR code with color/size options
β β βββ URLHistory.jsx # LocalStorage-based URL history
β β βββ index.js # Barrel exports
β βββ hooks/
β β βββ useDebounce.js # Debounce hook (avoids API spam)
β βββ utils/
β β βββ urlUtils.js # URL parsing, macro preservation, encoding
β βββ App.jsx # Main application component
β βββ main.jsx # React entry point
β βββ index.css # Global styles + animations
βββ index.html # HTML entry point with SEO meta tags & schemas
βββ vite.config.js # Vite configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ package.json # Dependencies and scripts
βββ deploy.sh # Manual deployment script
Most URL builders break tracking macros like {campaign_id} by URL-encoding the curly braces into %7Bcampaign_id%7D. Ad networks then cannot read them.
This tool detects and preserves six macro formats automatically:
| Format | Example | Used by |
|---|---|---|
{macro} |
{campaign_id} |
AppsFlyer, Kayzen, Smadex |
${macro} |
${CLICK_ID} |
Moloco |
[macro] |
[timestamp] |
Various |
%%macro%% |
%%CLICK_ID%% |
Legacy networks |
@[macro] |
@[CLICK_ID] |
Custom integrations |
xapntNx |
xapnt1x |
Appnext |
Everything else gets properly URL-encoded. The logic lives in src/utils/urlUtils.js.
The app includes production-grade SEO out of the box:
- Open Graph & Twitter Card meta tags for rich link previews
- JSON-LD structured data β WebApplication, Person, and FAQ schemas
- Canonical URL, sitemap, and robots.txt
- Accessibility: ARIA labels, focus rings, reduced-motion support, keyboard navigation
Contributions are welcome! Feel free to open an issue or submit a pull request.
# Fork the repo, then:
git checkout -b feature/my-new-feature
# Make your changes...
git commit -m "feat: add my new feature"
git push origin feature/my-new-feature
# Open a Pull Request on GitHubJan Naftanaila β Media Buyer & AI Automation Specialist
Specializing in programmatic advertising (DSP/SSP), mobile attribution (AppsFlyer, Adjust, Branch), and user acquisition strategy for mobile apps.
MIT License β free to use, modify, and distribute. See LICENSE for details.
If this tool saved you time, consider giving it a β on GitHub!
Made with β€οΈ by JanNafta