{"id":52013,"date":"2016-11-11T03:46:56","date_gmt":"2016-11-11T03:46:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/easy-utm-builder\/"},"modified":"2026-06-27T08:13:13","modified_gmt":"2026-06-27T08:13:13","slug":"easy-utm-builder","status":"publish","type":"plugin","link":"https:\/\/kk.wordpress.org\/plugins\/easy-utm-builder\/","author":13785152,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.0","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Easy UTM Builder","header_author":"Atlas Gondal","header_description":"","assets_banners_color":"f38b33","last_updated":"2026-06-27 08:13:13","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&hosted_button_id=YWT3BFURG6SGS&source=url","header_plugin_uri":"https:\/\/AtlasGondal.com\/","header_author_uri":"https:\/\/AtlasGondal.com\/","rating":0,"author_block_rating":0,"active_installs":300,"downloads":6423,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"Atlas_Gondal","date":"2020-08-20 02:42:33"},"1.1":{"tag":"1.1","author":"Atlas_Gondal","date":"2026-06-26 04:46:03"},"2.0.0":{"tag":"2.0.0","author":"Atlas_Gondal","date":"2026-06-27 08:13:13"}},"upgrade_notice":{"2.0.0":"<p>Major rewrite. Adds a single\/external URL builder, live preview, copy, QR codes, GA4 parameters and safer (streamed) exports.<\/p>\n\n<ul>\n<li>Complete rewrite on a modern, namespaced (PSR-4) architecture with a React admin UI.<\/li>\n<li>New: single \/ external URL builder with live preview.<\/li>\n<li>New: one-click copy, QR codes, JSON export and GA4 parameters.<\/li>\n<li>New: saved defaults, presets and recent values.<\/li>\n<li>New: REST API, WP-CLI command and block editor sidebar panel.<\/li>\n<li>New: bundled translations \u2014 Spanish, French, German, Italian and Brazilian Portuguese.<\/li>\n<li>Fixed: URLs that already contain a query string or fragment are handled correctly.<\/li>\n<li>Fixed: values are percent-encoded; lowercasing is now opt-in per your settings.<\/li>\n<li>Fixed: exports are streamed instead of being written to the public uploads folder.<\/li>\n<li>Raised minimum requirements to WordPress 5.6 and PHP 7.4.<\/li>\n<\/ul>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":0},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3587222,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3587222,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3587222,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3587222,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3587222,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.1","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3587222,"resolution":"1","location":"assets","locale":"","width":1878,"height":1532},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3587222,"resolution":"2","location":"assets","locale":"","width":1895,"height":1155},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3587222,"resolution":"3","location":"assets","locale":"","width":1893,"height":1300}},"screenshots":{"1":"Single \/ external URL builder \u2014 fill in your campaign parameters (including the GA4 extras) and get a live-previewed link with one-click copy, a downloadable QR code and reusable presets.","2":"Bulk builder \u2014 tag all your content filtered by post type, status or search, preview the results table, copy any link, and export the full set as CSV or JSON.","3":"Settings \u2014 set default values, opt-in formatting (lowercase \/ replace spaces), choose which GA4 parameters to show, and manage saved presets."}},"plugin_section":[],"plugin_tags":[232,269004,193472,550,24188],"plugin_category":[36,45],"plugin_contributors":[126089],"plugin_business_model":[],"class_list":["post-52013","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-campaign-url-builder","plugin_tags-ga4","plugin_tags-tracking","plugin_tags-utm","plugin_category-analytics","plugin_category-ecommerce","plugin_contributors-atlas_gondal","plugin_committers-atlas_gondal"],"banners":{"banner":"https:\/\/ps.w.org\/easy-utm-builder\/assets\/banner-772x250.png?rev=3587222","banner_2x":"https:\/\/ps.w.org\/easy-utm-builder\/assets\/banner-1544x500.png?rev=3587222","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/easy-utm-builder\/assets\/icon.svg?rev=3587222","icon":"https:\/\/ps.w.org\/easy-utm-builder\/assets\/icon.svg?rev=3587222","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/easy-utm-builder\/assets\/screenshot-1.png?rev=3587222","caption":"Single \/ external URL builder \u2014 fill in your campaign parameters (including the GA4 extras) and get a live-previewed link with one-click copy, a downloadable QR code and reusable presets."},{"src":"https:\/\/ps.w.org\/easy-utm-builder\/assets\/screenshot-2.png?rev=3587222","caption":"Bulk builder \u2014 tag all your content filtered by post type, status or search, preview the results table, copy any link, and export the full set as CSV or JSON."},{"src":"https:\/\/ps.w.org\/easy-utm-builder\/assets\/screenshot-3.png?rev=3587222","caption":"Settings \u2014 set default values, opt-in formatting (lowercase \/ replace spaces), choose which GA4 parameters to show, and manage saved presets."}],"raw_content":"<!--section=description-->\n<p>Easy UTM Builder adds a modern campaign-URL builder under <strong>Settings \u2192 Easy UTM Builder<\/strong>. Tag any single (or external) URL the way you would with Google's Campaign URL Builder, or generate UTM links in bulk across all of your posts, pages and custom post types \u2014 then copy, export, or turn them into QR codes.<\/p>\n\n<p>It runs entirely in the WordPress admin. It adds <strong>nothing<\/strong> to your front end, makes <strong>no<\/strong> changes to your posts or permalinks, and writes <strong>no<\/strong> files to your uploads folder.<\/p>\n\n<h4>Single \/ external URL builder<\/h4>\n\n<ul>\n<li>Paste <strong>any<\/strong> URL \u2014 including external ones \u2014 and build a tagged campaign link.<\/li>\n<li><strong>Live preview<\/strong> updates as you type.<\/li>\n<li><strong>One-click copy<\/strong>, <strong>QR code<\/strong> generation (download as PNG), and save reusable <strong>presets<\/strong>.<\/li>\n<li><strong>Recent values<\/strong> are remembered so you stop retyping the same source\/medium\/campaign.<\/li>\n<\/ul>\n\n<h4>Bulk builder (your site content)<\/h4>\n\n<ul>\n<li>Generate UTM links across <strong>all post types, pages and custom post types<\/strong> at once.<\/li>\n<li>Filter by <strong>post status<\/strong> (published, draft, pending, future, private, trash, or all) and by <strong>search term<\/strong>.<\/li>\n<li>Browse results in a paginated table, <strong>copy<\/strong> individual links or a whole page.<\/li>\n<li><strong>Export<\/strong> the full result set as <strong>CSV<\/strong> or <strong>JSON<\/strong> (streamed straight to your browser).<\/li>\n<\/ul>\n\n<h4>Built for accuracy<\/h4>\n\n<ul>\n<li>URLs that already contain a query string (e.g. <code>?p=123<\/code>) or a <code>#fragment<\/code> are handled <strong>correctly<\/strong> \u2014 parameters are merged, never duplicated.<\/li>\n<li>Every value is <strong>percent-encoded<\/strong> (RFC 3986), so spaces and special characters never break your links.<\/li>\n<li>Optional, <strong>opt-in<\/strong> value formatting: lowercase everything and\/or replace spaces with a hyphen or underscore.<\/li>\n<\/ul>\n\n<h4>GA4 ready<\/h4>\n\n<p>Enable the extra Google Analytics 4 \/ Google Ads parameters you need: <code>utm_id<\/code>, <code>utm_source_platform<\/code>, <code>utm_creative_format<\/code> and <code>utm_marketing_tactic<\/code> \u2014 alongside the classic <code>utm_source<\/code>, <code>utm_medium<\/code>, <code>utm_campaign<\/code>, <code>utm_term<\/code> and <code>utm_content<\/code>.<\/p>\n\n<h4>For power users and agencies<\/h4>\n\n<ul>\n<li><strong>Block editor panel<\/strong> \u2014 copy the current post's UTM URL while you're editing it.<\/li>\n<li><strong>REST API<\/strong> \u2014 build URLs programmatically (namespace <code>easy-utm-builder\/v1<\/code>).<\/li>\n<li><strong>WP-CLI<\/strong> \u2014 <code>wp utm build https:\/\/example.com --source=newsletter --medium=email --campaign=spring_sale<\/code>.<\/li>\n<li><strong>Translation ready<\/strong> and fully accessible, built on native WordPress components.<\/li>\n<\/ul>\n\n<h4>Available in your language<\/h4>\n\n<p>Ships translated into <strong>Spanish, French, German, Italian and Brazilian Portuguese<\/strong> (both the admin interface and server messages), and is ready for more via translate.wordpress.org.<\/p>\n\n<h4>Why UTM URLs?<\/h4>\n\n<ul>\n<li>Attribute traffic correctly in Google Analytics \/ GA4<\/li>\n<li>Measure e-commerce conversions by campaign<\/li>\n<li>Track social, email, paid, affiliate and QR-code campaigns<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>From your WordPress dashboard<\/h4>\n\n<ol>\n<li>Visit <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for <strong>Easy UTM Builder<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Go to <strong>Settings \u2192 Easy UTM Builder<\/strong>.<\/li>\n<\/ol>\n\n<h4>Manually<\/h4>\n\n<ol>\n<li>Upload the <code>easy-utm-builder<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<\/ol>\n\n<h4>Usage<\/h4>\n\n<ol>\n<li>Open <strong>Settings \u2192 Easy UTM Builder<\/strong>.<\/li>\n<li>On the <strong>Single \/ External URL<\/strong> tab, paste a URL and fill in Source, Medium and Campaign (Term and Content are optional). Copy the previewed link or generate a QR code.<\/li>\n<li>Or use the <strong>Bulk<\/strong> tab to tag your existing content, then export as CSV\/JSON.<\/li>\n<li>Set defaults, formatting rules and which GA4 parameters to show on the <strong>Settings<\/strong> tab.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20a%20utm%20parameter%3F\"><h3>What is a UTM parameter?<\/h3><\/dt>\n<dd><p>UTM parameters are tags you add to a URL so analytics tools (like Google Analytics) can report where your traffic came from. The three most common are <code>utm_source<\/code> (e.g. newsletter), <code>utm_medium<\/code> (e.g. email) and <code>utm_campaign<\/code> (e.g. spring_sale).<\/p><\/dd>\n<dt id=\"which%20parameters%20are%20required%3F\"><h3>Which parameters are required?<\/h3><\/dt>\n<dd><p>Source, Medium and Campaign are recommended for meaningful reporting, so the builder highlights them. Term and Content (and the GA4 extras) are optional.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20google%20analytics%204%20%28ga4%29%3F\"><h3>Does it work with Google Analytics 4 (GA4)?<\/h3><\/dt>\n<dd><p>Yes. The classic UTM parameters work with every Analytics version, and you can enable the GA4 \/ Google Ads extras (<code>utm_id<\/code>, <code>utm_source_platform<\/code>, <code>utm_creative_format<\/code>, <code>utm_marketing_tactic<\/code>) from the Settings tab.<\/p><\/dd>\n<dt id=\"can%20i%20build%20a%20link%20for%20a%20site%20that%20isn%27t%20this%20one%3F\"><h3>Can I build a link for a site that isn't this one?<\/h3><\/dt>\n<dd><p>Yes. The <strong>Single \/ External URL<\/strong> tab works with any URL you paste, on any domain.<\/p><\/dd>\n<dt id=\"will%20it%20change%20my%20posts%2C%20permalinks%2C%20or%20redirect%20anything%3F\"><h3>Will it change my posts, permalinks, or redirect anything?<\/h3><\/dt>\n<dd><p>No. It only generates links for you to copy or export. It never edits your content, changes permalinks, or adds redirects, and it outputs nothing on the front end.<\/p><\/dd>\n<dt id=\"my%20site%20uses%20plain%20%28%3Fp%3D123%29%20permalinks.%20will%20the%20links%20break%3F\"><h3>My site uses plain (?p=123) permalinks. Will the links break?<\/h3><\/dt>\n<dd><p>No. If a URL already contains a query string or a <code>#fragment<\/code>, the parameters are merged in correctly rather than appended with a second <code>?<\/code>.<\/p><\/dd>\n<dt id=\"are%20spaces%20and%20special%20characters%20handled%20safely%3F\"><h3>Are spaces and special characters handled safely?<\/h3><\/dt>\n<dd><p>Yes \u2014 every value is percent-encoded. You can also choose to lowercase values and\/or replace spaces with a hyphen or underscore, but only if you turn those options on.<\/p><\/dd>\n<dt id=\"where%20do%20csv%2Fjson%20exports%20go%3F%20are%20they%20public%3F\"><h3>Where do CSV\/JSON exports go? Are they public?<\/h3><\/dt>\n<dd><p>Exports are streamed directly to your browser as a download. Unlike older versions, nothing is written to your uploads directory, so there are no leftover, publicly accessible files.<\/p><\/dd>\n<dt id=\"does%20it%20support%20custom%20post%20types%3F\"><h3>Does it support custom post types?<\/h3><\/dt>\n<dd><p>Yes. The Bulk builder lists every public post type, plus options to target all content at once.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. The plugin loads only on its own admin screen (and the block editor panel). It adds no scripts, styles, or queries to your front end.<\/p><\/dd>\n<dt id=\"does%20it%20store%20personal%20data%3F\"><h3>Does it store personal data?<\/h3><\/dt>\n<dd><p>No personal data. It saves only your own preferences \u2014 default values, presets and recently used campaign values \u2014 in a single option, which is removed when you uninstall.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20from%20code%20or%20the%20command%20line%3F\"><h3>Can I use it from code or the command line?<\/h3><\/dt>\n<dd><p>Yes. There's a REST API (<code>easy-utm-builder\/v1<\/code>) and a WP-CLI command (<code>wp utm build<\/code>). See the plugin's developer documentation for details.<\/p><\/dd>\n<dt id=\"what%20are%20the%20minimum%20requirements%3F\"><h3>What are the minimum requirements?<\/h3><\/dt>\n<dd><p>WordPress 5.6 or higher and PHP 7.4 or higher.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite on a modern, namespaced (PSR-4) architecture with a React admin UI.<\/li>\n<li>New: single \/ external URL builder with live preview.<\/li>\n<li>New: one-click copy, QR codes, JSON export and GA4 parameters.<\/li>\n<li>New: saved defaults, presets and recent values.<\/li>\n<li>New: REST API, WP-CLI command and block editor sidebar panel.<\/li>\n<li>New: bundled translations \u2014 Spanish, French, German, Italian and Brazilian Portuguese.<\/li>\n<li>Fixed: URLs that already contain a query string or fragment are handled correctly.<\/li>\n<li>Fixed: values are percent-encoded; lowercasing is now opt-in per your settings.<\/li>\n<li>Fixed: exports are streamed instead of being written to the public uploads folder.<\/li>\n<li>Raised minimum requirements to WordPress 5.6 and PHP 7.4.<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Supports post filtering by status; random export filename; tested with 5.5.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Build trackable UTM campaign URLs for any link or in bulk, with live preview, copy, GA4 parameters, QR codes and CSV\/JSON export.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/52013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=52013"}],"author":[{"embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/atlas_gondal"}],"wp:attachment":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=52013"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=52013"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=52013"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=52013"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=52013"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=52013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}