Snapchat AI lens tracking follows the click that leaves the lens for your website. It does not follow the play.
A play, a share, and a screenshot stay inside Snapchat. They tell you the lens was used. They do not tell you a lead came in or a deal closed. The moment someone can become revenue is the moment the lens, or the ad around it, opens a URL. That URL has to carry the campaign.
Play counted in Snapchat → website click on a tagged URL → form stores the tags → deal keeps the campaign → revenue for that lens.
If there is no website click, there is nothing to attribute. Report the plays as attention. Report the tagged clicks as the path to revenue.
What does tracking a Snapchat AI lens actually mean?
Tracking a Snapchat AI lens means following the click that leaves the lens for your website, not the play. Plays and shares stay inside Snapchat. Put UTM tags on the lens ad's attachment URL, capture them on the form, and keep them on the deal to see revenue by lens. Tools like Trakt record each form submission with its UTMs.
Quick start: Start free with Trakt to build consistent UTM links for your lens ad attachments and record each form submission with its source. Or follow the manual steps below.
Tracking, in the revenue sense, means three records match:
- Snap shows a click or a swipe-up from that lens ad.
- The landing page URL contains
utm_source=snapchatand a campaign value that means this lens. - The closed deal still has that campaign value.
Miss any one of the three and the lens has attention metrics only. What Snapchat analytics measures is the play count. Snapchat campaign tracking is the same path used for every other Snapchat ad. A lens is not a special case once it opens a web page. It is a special case before that, because most of the engagement never opens one.
This sits inside the broader Snapchat marketing strategy: judge the lens on closed revenue divided by what it cost to build and run, not on plays.
Which lens clicks can carry a URL
Snap's URL macro article lists the ad types that can take a website or deep link attachment, and AR ads are on that list, next to single image or video, Story ads, Collection ads, and Commercials. Those attachments are where the tags go.
| What the person did | What you can store on the lead |
|---|---|
| Played the lens and stayed in the camera | Nothing about a lead. The play is an Ads Manager or Insights metric |
| Tapped a website attachment on an AR ad | The URL's tags, if you set them |
| Opened a deep link attachment | Only if that destination keeps the query string |
| Scanned a Snap Code that unlocks the lens | No web lead, unless the code's destination is a tagged URL |
| Received a shared lens in a chat | A play, unless they later click a tagged link |
Organic use of a lens with no attachment is real demand and an untracked one. Do not invent a lead count for it. If the lens is meant to drive pipeline, give it a website attachment and tag that URL. Snapchat UTM parameters is the macro list Ads Manager will accept on that attachment.
A Snap Code on a poster, a package, or a booth is a different entry. It can open the lens without ever hitting your site. Snap Codes in offline campaigns is how to tag the ones that do open a page.
How to tag an AR ad attachment
Do this on the ad, not in a spreadsheet of play counts.
- Decide the destination. One page, with the form, that loads in a mobile browser. If the page redirects, the redirect has to keep the query string. Otherwise the lens click arrives as a visit with no campaign.
- Give this lens its own content value.
utm_campaigncan be the offer (spring-demo).utm_contentshould name the lens (lens-try-on) so a funny lens and a product lens do not share a row. A second lens in the same campaign gets a second content value, or you will not know which creative produced the deals. - Paste a tagged URL into the website attachment. For an AR ad, open Build a URL parameter in Ads Manager and use Snap's macros instead of typing the campaign name by hand. The tokens and the auto-UTM behavior are in the macro table.
- Keep paid and organic apart. If the public profile also links to the same page, use
utm_medium=socialthere andutm_medium=paidon the ad. One medium for both makes the paid lens look more effective than the spend was. - Catch the tags on the form and copy them to the deal. The click is wasted if the form submits name and email only. The same five hidden fields you use for other Snapchat ads work here. Tracking the campaign inside the CRM is that step.
- Test the attachment, not the play. On a phone, tap through to the site and look at the address bar. Submit a test lead. Confirm the lens's content value is on the lead and on the deal. A play count going up is not the test.
A pattern for the attachment, with a static content value you can tell apart from other ads:
https://example.com/demo?utm_source=snapchat&utm_medium=paid&utm_campaign=spring-demo&utm_content=lens-try-on
example.com is a placeholder. In Ads Manager you can replace the campaign portion with the campaign.name macro so a rename in the account shows up on the next click. Read the preview link before you submit the ad. Snap encodes spaces, and a scanned preview Snapcode fills macros with the placeholder successful_ rather than live names. That placeholder is in Snap's macro article. It is not what a real click sends.
If you want the lens campaign recorded on each form submission without adding hidden fields, pre-register for Trakt.
Plays, shares, and Snap Codes
Shares are how a lens travels, and they are also how the source disappears. Someone sends the lens itself. The friend who opens it creates another play. Neither play has your URL on it. The only shared click you can claim is a shared link that already included the tags. Measuring Snapchat shares covers swipe-ups that get copied into chats.
Snap Codes add a physical entry. A code that only unlocks the lens produces plays at that location and no CRM row. A code that opens a tagged web URL produces a lead you can tie to that poster or that store. Use a distinct utm_content value per placement if you need to know which one. Do not reuse the paid lens value, or the booth and the ad budget become one number.
| Setup | Plays | Lead source | Closed revenue |
|---|---|---|---|
| Lens with no website URL | In Insights or Ads Manager | Not captured | Cannot be tied to the lens |
| AR ad with a tagged attachment | Still in Ads Manager | On the form, if the fields exist | On the deal, if you copy the field |
| Snap Code to a tagged URL | Separate from the web click | The code's own content value | Same path as any other tagged URL |
This is a capability split, not a set of results. There is no play-rate benchmark behind it.
When you do have revenue, divide closed revenue for that content value by what the lens cost. Include production if the question is whether the lens paid for itself, and say that you included it. A lens with thousands of plays and no tagged clicks has an unknown return. Treat it that way in the Snapchat ads ROI check, instead of substituting play count for money.
Pre-register for Trakt if you want the click stored even when the form is on a later page in the same browser. Trakt keeps the latest tagged visit for 90 days and records the submission with that source. It does not see lens plays inside Snapchat, it does not sync your CRM, and it does not credit a deal to a lens that never sent a tagged click.
Frequently asked questions
Can you track a Snapchat AI lens through to a sale?
You can track the website click off the lens, not the play. The AR ad needs a website attachment with UTM parameters, the form has to store them, and the closed deal has to keep the campaign. Plays, shares, and screenshots stay in Snapchat and never reach the CRM.
Do Snapchat lens plays count as revenue?
No. A play means someone opened the lens in the camera. Revenue is closed money on a deal. The two meet only when that person clicks a tagged URL and the campaign is still on the deal when it closes. A lens with a high play count and no tagged clicks has attention, and an unknown return.
Where do I put the tracking URL on a Snapchat AR ad?
On the website or deep link attachment for that ad. Snap's URL macro help article includes AR ads in the formats that support the attachment. Use Build a URL parameter so the macros fill in the campaign and ad. Then open the preview link and confirm the parameters are the ones your form reads.
How do I track a lens that people open from a Snap Code?
A Snap Code that only unlocks the lens does not create a website visit, so there is no UTM to store. Point the code at a web URL that already has the tags, and give that placement its own utm_content value, if you need it separate from the paid lens. The scan-to-page setup is in the Snap Code tracking guide.
Should every lens use the same UTM campaign?
Use one utm_campaign for the offer, and a different utm_content for each lens. Identical tags on every lens make the clicks add up and hide which lens produced the deals. Paid ads should use utm_medium=paid. An organic profile link to the same page should use a different medium so the two are not one row.



