UTM auto-tagging for shared links #154

Closed
opened 2026-06-23 13:33:48 +00:00 by jmiller · 1 comment
Owner

Summary

Automatically append UTM tracking parameters to article URLs in cross-posted content. Every major SaaS tool (Hootsuite, Sprout Social) offers this. No Joomla competitor does.

Implementation

Add UTM parameters to the {url} placeholder in CrossPostDispatcher::buildArticleMeta():

{url}?utm_source={platform}&utm_medium=social&utm_campaign=mokosuitecross

Configuration

Component config fields:

  • utm_enabled (Yes/No, default No)
  • utm_source (default: {platform} -- auto-replaced with service type)
  • utm_medium (default: social)
  • utm_campaign (default: mokosuitecross)
  • utm_content (optional, default empty)

Template Placeholders

  • {url} -- already exists, would get UTM params appended when enabled
  • {url_raw} -- new placeholder for URL without UTM params

Acceptance Criteria

  • Component config for UTM parameters
  • {platform} token resolved in UTM values
  • UTM params appended to {url} when enabled
  • {url_raw} placeholder for clean URLs
  • Existing & in URLs handled correctly
## Summary Automatically append UTM tracking parameters to article URLs in cross-posted content. Every major SaaS tool (Hootsuite, Sprout Social) offers this. No Joomla competitor does. ## Implementation Add UTM parameters to the `{url}` placeholder in `CrossPostDispatcher::buildArticleMeta()`: ``` {url}?utm_source={platform}&utm_medium=social&utm_campaign=mokosuitecross ``` ## Configuration Component config fields: - `utm_enabled` (Yes/No, default No) - `utm_source` (default: `{platform}` -- auto-replaced with service type) - `utm_medium` (default: `social`) - `utm_campaign` (default: `mokosuitecross`) - `utm_content` (optional, default empty) ## Template Placeholders - `{url}` -- already exists, would get UTM params appended when enabled - `{url_raw}` -- new placeholder for URL without UTM params ## Acceptance Criteria - [ ] Component config for UTM parameters - [ ] `{platform}` token resolved in UTM values - [ ] UTM params appended to `{url}` when enabled - [ ] `{url_raw}` placeholder for clean URLs - [ ] Existing `&` in URLs handled correctly
Author
Owner

Implemented in commit 7e5ff12. UTM config fieldset added to config.xml with utm_source (default {platform}), utm_medium, utm_campaign, utm_content. {platform} token resolved per-service in renderTemplate(). {url_raw} placeholder added for clean URLs. UTM params appended in buildArticleMeta() via http_build_query().

Implemented in commit `7e5ff12`. UTM config fieldset added to config.xml with utm_source (default `{platform}`), utm_medium, utm_campaign, utm_content. `{platform}` token resolved per-service in `renderTemplate()`. `{url_raw}` placeholder added for clean URLs. UTM params appended in `buildArticleMeta()` via `http_build_query()`.
Sign in to join this conversation.
No labels
Priority Medium
Type Feature
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteCross#154