Skip to main content
Cost per Session isn’t one of Upstack’s built-in measures. You can create it as a custom measure from two built-in ones, Channel Spend and Unique Sessions. Creating custom measures needs the admin or owner role.

Formula

Cost per Session = Blended Spend ÷ Unique Sessions
As a custom measure formula:

What goes into each side

The two sides aren’t linked by visitor. Spend covers paid campaigns only, while sessions include organic, direct, email, and referral visits. The result is “ad spend per site session,” not “cost per paid visit.” Unique Sessions uses an approximate distinct count, which is accurate enough for trends but can differ slightly from an exact count of the same sessions.

Worked example

A home-décor store builds the measure and charts it weekly: Week 2 looks cheaper, but spend didn’t change. An influencer post brought 10,000 organic sessions, and the ratio fell with them. Week 3 is the real signal: 50% more spend produced about 3% more sessions. The extra budget didn’t buy much traffic.

How to interpret it

  • Movement can come from either side. Check spend and sessions separately before crediting or blaming the ads.
  • For paid-only traffic cost, compare spend with Blended Landing Page Views or Blended Link Clicks instead. Those are counted by the ad platforms on paid traffic only.
  • Pair it with session quality. A falling cost per session alongside a falling Session Conversion Rate can mean cheaper, weaker traffic.
  • Filters apply per side. An ads filter narrows spend but not sessions, and an events filter narrows sessions but not spend.

FAQ

It isn’t a built-in measure. Create it as a custom measure with the formula channel.spend / tracked.sessions.
Use Unique Sessions (tracked.sessions). Session Count reads a separate session table and isn’t offered in the custom measure picker.
No. CPC divides spend by ad clicks reported by the platforms. Cost per Session divides it by visits your site recorded from all sources.

See all Awareness metrics →