The question is which channel sent the readers. Three methods answer it and they fail in different ways.

Method one: a separate address
Give each place its own address. Newsletter, post, printed card, partner site.
The open counts answer the question with no analytics setup, no tags and nothing to configure. It works identically for a printed card and an email, which no other method manages.
The cost is maintaining several addresses rather than one. For a campaign that is trivial. For an evergreen page it becomes housekeeping, which is where tagging earns its place.
Method two: tagged links
Parameters on the end of the address naming the source and the campaign, which analytics software reads to group visits.
https://example.com/guide?utm_source=newsletter&utm_campaign=spring
Good for online channels, and two costs. The address becomes long and unprintable. And if the analytics setup is not genuinely in place, the tags do nothing while still making the link unpleasant.
| Separate addresses | Tagged links | Shortener | |
|---|---|---|---|
| Setup | None | Analytics | Account |
| Printable | Yes | No | Yes |
| Survives the service closing | Yes | Yes | No |
| Groups campaigns | No | Yes | Sometimes |
| Address is yours | Yes | Yes | No |
Method three: a shortener, and why to be careful
Two problems, both quiet.
Some shorteners strip parameters, so a carefully tagged address arrives untagged and every visit lands in the wrong bucket. The campaign report shows nothing and nobody knows why.
Worse, a shortened address depends on the shortening service continuing to exist. When one closes, every link ever published through it stops working, including printed material, old posts and other people's pages. This has happened repeatedly and it is not recoverable.
If you use one, use one on a domain you control.
Printed material decides it
Anything printed has to be typeable. Anything read aloud has to be sayable.
That rules out tagged addresses entirely, and it is the strongest argument for the separate-address method. A short address named after the piece is both trackable and printable.
Keep it lowercase and avoid characters that are ambiguous when read out.

Never retire an address
A campaign ends, somebody tidies up, and the address is removed.
Meanwhile the printed cards are still in circulation, the old posts still link to it, and every one of those now leads nowhere. You cannot see who is holding a link, which is exactly why they should not break.
Keep published addresses alive permanently. When the content is gone, leave a page saying so and pointing somewhere current.
If this is near what you are doing, How link tracking works and How document tracking works cover the cases on either side.
Put it at an address
One address per place you publish, tags for online channels if you have analytics, short untagged addresses for anything printed, no third-party shorteners, and nothing retired.
Then you know what worked, with no tooling at all.