Automatically inject internal campaign parameters using DTM?



I have been toying with the idea of either rewriting internal CMS navigation parameters or adding custom internal campaign parameters to links to differentiate them on a page and therefore save on async server calls (s.tl calls).

Not sure how I might go about doing this, but I was thinking of using data elements from the page and constructing new internal campaign parameter values.  Has anyone done this?  Any advice?