Skip to content

Comment a keyword, lose the attribution trail

When a viewer comments a keyword and gets the link by DM, GA4 only knows what the link tells it. Tag every DM link with its own campaign, then judge each keyword on orders and revenue, not on comments or clicks.

By , Founder & CEOPublished 6 min read

Run the numbers for your store: the free UTM builder.

A "comment the keyword and I'll send you the link" call to action moves the click somewhere your analytics cannot see, unless the link says where it came from. Tag the link and the keyword becomes a channel you can measure. Leave it bare and the sale lands in whatever row GA4's default rules pick, which is rarely where you would look for it.

A recent ecommerce video about an AI sourcing agent closes on exactly that ask: comment a keyword below and the link will follow (the video). The format is everywhere because it is low friction and it produces comments. Brands copy it on Instagram and TikTok, where an automation can answer the comment with a direct message. The measurement gap comes along with it.

Where the click actually goes

  1. A viewer comments the keyword.
  2. An automation replies with a link in a direct message.
  3. The viewer taps it, usually inside the app.
  4. GA4 files the session using the campaign parameters on the link, if it has any.

Without UTM parameters, GA4 has only the referrer to work with, if the app passes one along. Google's own guide to campaign URLs says missing UTM parameters result in (not set) values in reporting (Analytics Help).

Then GA4's default channel group rules sort the visit into a row. Four of those rules matter here:

  • Organic Social: a source on GA4's list of social sites, or a medium such as social.
  • Referral: a medium of referral, app or link.
  • Direct: a source of (direct) with no medium.
  • Unassigned: what GA4 uses when no other rule matches.

So an untagged DM link lands in a social, referral or direct row depending on what the app passes along, and a badly tagged one can land in Unassigned. None of those rows says it was the keyword. A bare link filed as Direct looks like loyal customers typing your address; see direct traffic. One filed as Unassigned joins the traffic that penalises your newest channels.

Three tagging mistakes that move the sale

Each of these sends a tagged link to the wrong row:

  1. Naming the source after the tool, not the platform. A source only your automation tool uses is not on GA4's list of social sites. Paired with a medium of link, it matches the Referral rule and sits next to every other site that links to you. Paired with a medium such as dm, it matches no rule at all and lands in Unassigned.
  2. A keyword with shop in it. GA4's Organic Shopping rule reads the campaign name, and it matches names containing shop or shopping. A keyword such as shopnow, used as the campaign, can pull the visit toward Organic Shopping.
  3. One link for every keyword and every post. The sale is tagged, but you cannot tell which post or which keyword sent it.

A pattern that avoids all three: utm_source set to the platform, such as instagram or tiktok, utm_medium=social, utm_campaign set to the keyword, and utm_content set to the post. With a medium of social the visit matches GA4's Organic Social rule, and the keyword and the post stay attached to it, so each keyword gets its own line in the campaign report. The UTM tracking guide covers the rest of the setup, and how to fix UTM parameters not tracking covers what to check when tags go missing on the way in.

LinkGA4 rule it matchesWhere you will find it
No tagsDepends on the referrer the app passes, if anyMixed in with other social, referral or direct visits
Tool name as source, utm_medium=linkReferralNext to every site that links to you
Tool name as source, utm_medium=dmNoneUnassigned
Platform as source, utm_medium=social, keyword as campaignOrganic SocialIts own line per keyword in the campaign report

What the automation tool counts

The automation tool reports DMs sent and links clicked. The platform reports comments, reach and followers. Neither sees your checkout. A keyword that produces a pile of comments and no orders will look like your best post in every dashboard except the one that counts money.

Comments are the platform's currency, and they are the automation tool's product. Orders are yours. Judge the keyword on the thing only you can see.

How to tell if it works

Three numbers per keyword, all from your own tools:

  1. DMs sent, from the automation tool.
  2. Sessions with that keyword's campaign tag, from GA4's traffic acquisition report by session campaign.
  3. Purchases and revenue with that tag, from the same report.

Sessions divided by DMs sent tells you roughly what share of people opened the link. Purchases divided by sessions tells you whether the people it brought were buyers.

Then give it time. A person who gets a link today may come back next week through search or by typing your address, and that later visit carries no keyword tag. Read each keyword over a window long enough for people to return, and treat same-day purchases as the floor, not the total. The later visit arrives as a different traffic source, which is why the keyword's own line can look smaller than its real effect.

What to test

  • Alternate the call to action on comparable posts. Half the posts ask for a comment keyword, half point to a link in bio. Give each its own campaign tag, and keep the offer the same.
  • Compare orders per post, not comments per post. The keyword ask will win on comments; that is what it is built for. It is not the question.
  • Run enough posts in each arm that one viral post cannot decide the result. A big post followed by an ordinary one is regression to the mean, not a trend.
  • Keep the tags identical for the whole test, character for character, so one keyword does not end up split across two rows.

Where a read fits

Once the links carry tags, the DM path is one more path in your GA4 export. Later, a causal attribution tool like Causality Engine can read that one file, your GA4 Attribution paths export, and show what each channel caused next to what last-click gave it. Untagged, those visits stay in whatever row GA4 chose. If you want a first look before paying anything, the first finding is free and runs in your browser: how many days people who touch two or more channels take to convert.

Frequently asked questions

  • How should I tag a link I send by DM?
    Use the platform as utm_source, social as utm_medium, the keyword as utm_campaign and the post as utm_content. With a medium of social the visit matches GA4's Organic Social rule, and the keyword and the post stay attached, so you can see which one sent it.
  • Why do my DM link clicks show up as Direct or Unassigned in GA4?
    Because the link carried no campaign parameters, or carried ones GA4's default channel rules do not recognise. Without tags, GA4 works from whatever referrer the app passes along, and with no referrer at all the visit is Direct. A source and medium that match no rule end up as Unassigned.
  • Is a comment-to-DM call to action better than a link in bio?
    Only your own orders can answer that. Alternate the two on comparable posts with separate campaign tags, keep the offer the same, and compare orders and revenue per post over a window long enough for people to come back and buy.
  • Do comments on the post mean the call to action is working?
    Comments measure the call to action's reach on the platform. They say nothing about orders. Judge each keyword on the sessions and purchases that carry its campaign tag.

Go deeper: Incrementality testing, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.