Ecommerce attribution report
Read the ecommerce attribution report: six KPI formulas, the funnel, breakdowns, estimated search attribution and plan limits.
Report overview#
The page is /dashboard/mkit/ecommerce with endpoint GET /api/v1/reports/ecommerce?site=&range=. Brand terms use GET/PUT /api/v1/sites/:siteId/brand-terms. The report relies entirely on GA4 ecommerce events and metrics; GSC is used only for search attribution.
| Area | Content |
|---|---|
| Six KPI cards | Revenue, orders, AOV, conversion rate, cart abandonment, refund rate |
| Trend and funnel | purchaseRevenue by date; view_item → add_to_cart → begin_checkout → purchase |
| Breakdowns | Top products, country, category, device, channel |
| Attribution | Search attribution, brand split, multi-touch estimate, Quick Wins |
The six KPI formulas#
| KPI | Formula |
|---|---|
| Revenue | purchaseRevenue |
| Orders | transactions |
| AOV | purchaseRevenue / transactions |
| Conversion rate | transactions / sessions × 100 |
| Cart abandonment | (1 - min(1, checkouts / addToCarts)) × 100 |
| Refund rate | refundValue / purchaseRevenue × 100 |
Funnel and insight thresholds#
The funnel uses eventCount for four standard ecommerce events: view_item → add_to_cart → begin_checkout → purchase; pct_of_first = the current step count / the view_item count.
- If checkouts / add_to_cart < 50%, a checkout-stage insight is generated
- If add_to_cart / view_item < 35%, a cart-stage insight is generated
- Insights are threshold hints for locating the largest drop-off, not a replacement for business judgement
Breakdowns#
| Area | Dimensions and metrics |
|---|---|
| Top Products | itemId × itemName with itemRevenue / itemsPurchased / transactions, sorted by revenue descending |
| Revenue by country | country × purchaseRevenue; shares use this table's total as the denominator |
| Revenue by category | itemCategory × purchaseRevenue |
| Revenue by device | deviceCategory × purchaseRevenue |
| Channel comparison | sessionDefaultChannelGroup × purchaseRevenue / transactions |
| Refund analysis | date × refundValue, keeping only days greater than 0 |
Search attribution, brand split and multi-touch#
Search attribution joins GSC query × page clicks with GA4 landingPagePlusQueryString × transactions/purchaseRevenue by page, then allocates conversions and revenue to queries by click weight. The GSC window automatically skips the last 3 days to avoid data delay.
- Brand split: configure brand terms first via GET/PUT /api/v1/sites/:siteId/brand-terms; the share of queries matching them yields branded_pct and non_branded_pct
- Multi-touch: a two-touch estimate from firstUserSource × sessionDefaultChannelGroup; when first equals last or last is Direct it counts toward single_touch_pct, and multi_touch_pct = 100 - single
- Multi-touch has no plan gate and is computed for both Pro and Business; it remains a two-touch estimate, not full path-level attribution
Plan limits and the no-data guide#
| Item | Rule |
|---|---|
| Time window | Default 28 days; Pro 28 days, Business 90 days |
| Top Products | Pro 10 rows, Business 25 rows |
| Cache | 5 minutes |
| Free | locked; Pro/Business supported |
| Quick Wins | Business only: non-brand, average position > 8, top 8 by revenue, with stars computed from revenue and position |
| Multi-touch | No plan gate; computed for both Pro and Business |