TLDR: To see which posts drive sales, give every post link its own tag, count orders by tag each week, and divide by posts published. Likes can stay on the dashboard, but the weekly table should show clicks, orders and revenue per post type. Three small habits make it work: consistent tags, a promo code per platform, and one question at checkout.
Likes are easy to count, so they get reported. Sales are harder to tie back to a post, so they get skipped. The result is a monthly report that says a carousel got 400 likes and can't say whether it sold a thing.
You can close most of that gap without any new software.
Tag every link before it goes live
A post can only be linked to a sale if the link inside it carries a tag. Use four parameters:
| Parameter | Example | What it answers |
|---|---|---|
utm_source |
Which platform | |
utm_medium |
social | Which channel type |
utm_campaign |
spring-sale | Which campaign |
utm_content |
carousel-01 | Which post or format |
The last one is what lets you compare individual posts. Keep names lowercase and hyphenated, and write them in a shared sheet so two people never invent two spellings.
Instagram captions don't make links clickable, so route those through your bio link. A link-in-bio page with a separate tagged link per campaign keeps that traffic countable.
Add two backup signals for the sales that tags miss
Tags lose the people who see a post and buy later from a search. Back them up:
- A promo code per platform. "INSTA10" and "LINKEDIN10" tell you where a buyer came from even if they typed your URL.
- One question at checkout. "How did you hear about us?" with social platforms listed. Imperfect, but it often catches what tags cannot.
When tags, codes and answers all rank Instagram first, you can be fairly confident. When they disagree, that's useful too: it tells you where you're blind.
The weekly table that replaces the engagement report
Build this by hand once, every week:
| Post type | Posts | Clicks | Orders | Revenue | Orders per post |
|---|---|---|---|---|---|
| Carousel | |||||
| Short video | |||||
| Single image | |||||
| Link post |
"Orders per post" is the column that matters. A format with fewer likes but more orders per post is the one to repeat.
Run it for four weeks before you draw a conclusion. One week is too noisy, and a single sale can flip the ranking.
Keep engagement in the report, in its place
Engagement isn't useless. It tells you whether people notice the post, and a post nobody sees can't sell. In Mydrop's data, the median Instagram engagement rate was 3.1%, so you can use that to judge whether a post was seen at all.
It also warns you about one trap. In the same data, carousels ran 10% above an account's typical post, and a link in the caption cost 7%. A post built to sell, with a link in the caption, often earns fewer likes. Judge it by orders, not by likes.
So the report order is: orders first, clicks second, engagement third. Engagement explains the first two. It doesn't replace them.
Where the data comes from
The social side of the table (reach, clicks, saves, per-platform numbers) comes from your publishing tool's analytics. Mydrop's performance analytics show native per-platform metrics in one place, and white-label reports turn them into a PDF you can send to a client or your finance lead. The order side comes from your shop or CRM. You only need to line the two up by week and tag.
If you want a template for the lining-up, the Google Sheets attribution dashboard shows one. For what to do when the traffic arrives but doesn't buy, recover sales from social traffic covers five fixes.
Tag this week's posts and build the table on Friday
Write the tag list today, add tags to this week's links, and put the empty table in a sheet. On Friday, fill in the first row. After four weeks you'll know which post type earns orders, not just likes. To keep posting and analytics in one place, start free on Mydrop.





















Google review
Trustpilot review