GA4's default channel group has 19 named channels, and one of them, Audio, is described with podcast platforms as the example. For tagged links its rule is a single condition: the medium is exactly audio. podcast, the medium most people reach for, isn't in that rule or any other, and neither spotify nor apple is on Google's source lists. A show-notes link tagged utm_source=spotify&utm_medium=podcast matches nothing, and GA4 files it as Unassigned, its name for traffic no rule claims.
Audio fits sponsor reads best. Google's description of Audio is about ads. A host-read sponsorship on someone else's show is exactly that. Tag each show's link with the show as the source, utm_medium=audio, and the episode or ad run as the campaign. The Audio row in GA4 then holds your podcast ad traffic, and the source column splits it by show.
Your own show notes are a choice. Links in your own episode notes aren't ads. Tagging them audio still keeps all podcast traffic in one channel, and utm_campaign keeps the episodes apart. If you'd rather keep Audio for paid reads, give your own notes a different medium and a channel of their own in a custom channel group, under Admin, Channel groups, with a condition on that medium. Google says custom channel groups apply to your reports retroactively, so the channel can come after the first episodes. Each standard property is allowed two custom groups, so plan them.
Put the episode in utm_campaign. Google's URL builder advice is one campaign name per exact campaign, so a single effort doesn't split across rows. For a podcast, the episode is the campaign. utm_campaign=ep-42-pricing tells you which conversation sent the visit; a show-wide value can't. Tagging a back catalogue by hand is slow, so the bulk UTM builder can do a season's links in one pass.
Listeners can't hear a query string. A tagged URL read aloud is useless, so read out a short path on your own domain, such as /podcast, and redirect it to the tagged URL. The redirect then carries the tags for everyone who types it. Run the short path through the redirect checker to confirm every utm_ value survives the hop; what is a redirect explains why each extra hop is a risk. Video episodes on YouTube are different, because youtube is on Google's video list; the YouTube UTM builder covers those links.