There are many ways to do this...
I personally have set up a Data Element for each UTM (Source, Medium, Campaign, Term, Content, etc)

Then I create a concatenation script to put the values together into combined string (something that can be parsed, as in, if there is no UTM Term, I don't have issues with parsing the data incorrectly)
This could be in a format like:
- [source]_[medium]_[campaign]_[term]_[content]
- [source]_[medium]_[campaign]_na_[content] (where "na" represents no value passed)
OR
[source]_[medium]_[campaign]__[content] (where "__" is no value)
- us:[source]|um:[medium]|up:[campaign]|ut:[term]|uc:[content]
- us:[source]|um:[medium]|up:[campaign] (using prefixes, so if no value, the prefix and value isn't included)
You can find a pattern that works for you.... then pass that in the Campaign dimension:

I also like to track each UTM in its own Visit Level eVar (so the combined Campaign is set to 1 week, but I also have Visit level attribution on each UTM individually).
With either the standard "Campaign" values, or with custom eVars, you can correlate to your conversion event. Just remember that the default attribution is Last Touch, so even with a Week Attribution, the initial campaign could get overwritten (unless you use a custom attribution such as Participation - if needed)