GA4 channel mix — current to 27 Aug 2026
August MTD 1–28 by channel GA4 · pulled 29 Aug 2026
| Channel | Sessions | Share | Purchases | Revenue | Rev share | Purchaser rate |
| Marketing Ads | 3,99,259 | 46.12% | 3,605 | ₹49,24,017 | 48.29% | 1.23% |
| Unassigned | 3,01,942 | 34.88% | 2,768 | ₹36,62,918 | 35.92% | 1.23% |
| Direct | 1,33,954 | 15.47% | 847 | ₹11,54,138 | 11.32% | 0.64% |
| Organic | 44,493 | 5.14% | 284 | ₹4,04,922 | 3.97% | 0.68% |
| Referral | 2,337 | 0.27% | 29 | ₹47,492 | 0.47% | 2.16% |
| Retention | 81 | <0.01% | 2 | ₹2,868 | 0.03% | 2.82% |
| Total | 8,65,754 | 100% | 7,535 | ₹1,01,96,355 | 100% | 1.20% |
⚠ Unassigned converts at exactly the same rate as classified paid — 1.23% against 1.23%, across 3.02L and 3.99L sessions. That settles it: Unassigned is not junk traffic, it is paid social GA4 cannot name. Together the two are 84.2% of all GA4 revenue, so every channel-level budget decision is being made on a chart that splits your largest paid platform in half.
Cross-check against Shopify for the same 1–28 Aug window: GA4 revenue ₹1,01,96,355 vs Shopify total sales ₹1,13,04,669 (GA4 reads 9.80% lower); GA4 sessions 8,65,754 vs Shopify 8,97,358 (3.52% lower). Both gaps are in the expected direction — Shopify total sales includes shipping and fees GA4 does not count, and the two define a session differently. Shopify remains the sales source of truth; GA4 is the channel lens.
Day on day — Fri 27 Aug vs Thu 26 Aug GA4 · both days settled
| Metric | 27 Aug | 26 Aug | Change |
| Sessions | 24,837 | 25,134 | ▼1.18% |
| Purchases | 213 | 259 | ▼17.76% |
| Revenue | ₹2,99,753 | ₹3,29,504 | ▼9.03% |
| Add to baskets | 3,410 | 4,081 | ▼16.44% |
| Conversion | 0.858% | 1.030% | ▼0.17pp |
| AOV | ₹1,407.29 | ₹1,272.22 | ▲10.62% |
A conversion dip, not a traffic dip — sessions were almost flat while purchases and add-to-baskets both fell ~17%, and AOV rose. One day is noise; worth watching whether add-to-basket keeps falling on flat traffic. 28 Aug is excluded: engagement 8.74% vs a settled ~98% means GA4 had not finished processing it.
Two views: the channel-group view the dashboard has always used, and the source/medium view that explains what "Unassigned" actually is.
"Unassigned" is a classification failure, not a tracking failure diagnosed 18 Aug 2026
Viewed by Session source/medium instead of channel group, every session has a named source. Revenue reconciles to the paisa (₹26,85,772.52 vs ₹26,85,773 for 27 Jul–2 Aug) and Direct matches exactly at 40,745 — same data, different lens. The UTMs are firing. GA4 simply cannot map these mediums to any channel rule, so they fall out of every bucket.
| Source / medium | Why it lands in Unassigned | Sessions (wk 27 Jul–2 Aug) |
| adyogi / fb | medium fb matches no GA4 rule | 40,323 |
| adyogi / ig | medium ig matches no GA4 rule | 31,176 |
| engage_360 / whatsapp_campaign | medium whatsapp_campaign unrecognised | 5,728 |
| Programmatic / Video | medium Video unrecognised | 4,178 |
| long tail (77 further rows) | assorted non-standard mediums | ≈7,746 |
| Total ≈ reported Unassigned | | ≈89,151 |
⚠ Consequence: Meta is under-credited by 61%. Its real GA4 footprint that week was GH_Meta/Paid + adyogi/fb + adyogi/ig = 1,17,521 sessions, 994 purchases, ₹12.17L — of which 71,499 sessions and ₹7.07L sat in Unassigned. And the hidden traffic is the better traffic: adyogi/fb converts at 1.02%, the best of any large source, ahead of google/cpc at 0.93%.
Fix, in two moves. (1) Now, and retroactive: add rules to the custom channel group in GA4 Admin → Data display → Channel groups for adyogi/fb, adyogi/ig, whatsapp and programmatic — custom groups reprocess history. (2) Forward: change the UTMs at source to utm_source=facebook, utm_medium=paid_social, so even GA4's default grouping works.
August MTD 1–23 — revenue by channel GA4
Marketing Ads₹42.18L · 3,087 pur
Unassigned₹29.80L · 2,263
Total 7,42,497 sessions · 6,346 purchases · ₹85,86,194.
Channel efficiency — Aug MTD GA4
| Channel | Share of sessions | Conv. | Rev / session |
| Marketing Ads | 44.8% | 0.93% | ₹12.7 |
| Unassigned | 33.2% | 0.92% | ₹12.1 |
| Referral | 0.3% | 1.20% | ₹15.9 |
| Organic | 5.1% | 0.64% | ₹9.3 |
| Direct | 16.0% | 0.61% | ₹8.4 |
Unassigned converts almost as well as Marketing Ads (0.92% vs 0.93%) — further evidence it is mostly misclassified paid traffic, not junk.
Channel trend — sessions GA4
| Channel | Jun'26 | Jul'26 | Wk 27 Jul–2 Aug | Wk 3–9 Aug | Wk 10–16 Aug | Wk 17–23 Aug | Latest WoW |
| Marketing Ads | 5,57,666 | 5,08,641 | 1,12,700 | 98,109 | 1,03,938 | 1,06,157 | ▲2.1% |
| Unassigned | 1,05,871 | 3,55,774 | 89,151 | 71,660 | 70,816 | 84,463 | ▲19.3% |
| Direct | 1,20,088 | 2,07,723 | 40,745 | 34,717 | 34,237 | 37,999 | ▲11.0% |
| Organic | 51,573 | 63,156 | 12,184 | 11,878 | 11,701 | 11,405 | ▼2.5% |
| Referral | 2,678 | 2,778 | 575 | 623 | 541 | 602 | ▲11.3% |
| Total | — | — | 2,55,355 | 2,15,663 | 2,21,270 | 2,40,502 | ▲8.7% |
Revenue WoW by channel, 10–16 → 17–23 Aug: Direct ▲51.8% · Unassigned ▲28.4% · Referral ▲30.6% · Marketing Ads ▲0.2% · Organic ▼10.9%. Growth is coming from everything except classified paid, which is flat.
google / organic — daily revenue 1–23 Aug · GA4
| Week | Sessions | Purch. | Revenue | Conv. |
| 3–9 Aug | 10,897 | 68 | ₹1,10,275 | 0.62% |
| 10–16 Aug | 10,391 | 82 | ₹1,06,021 | 0.79% |
| 17–22 Aug (settled) | 8,559 | 56 | ₹83,491 | 0.65% |
| 1–22 Aug total | 32,956 | 223 | ₹3,23,896 | 0.68% |
Sessions vary only 1.4× across the month (1,319–1,865) while revenue varies 7.2× (₹3,955–₹28,562). Judge organic on revenue per session, not session count. Best day 6 Aug ₹28,562; worst 14 Aug ₹3,955 on normal traffic — an implied AOV of ₹791 against a ₹1,452 average, still unexplained.
(direct) / (none) — daily revenue 1–23 Aug · GA4
| Week | Sessions | Purch. | Revenue | Conv. |
| 3–9 Aug | 34,315 | 180 | ₹2,46,663 | 0.52% |
| 10–16 Aug | 33,821 | 203 | ₹2,73,843 | 0.60% |
| 17–22 Aug (settled) | 33,895 | 247 | ₹3,54,811 | 0.73% |
| 1–22 Aug total | 1,12,580 | 681 | ₹9,37,347 | 0.60% |
⚠ Direct is accelerating on all three measures at once — revenue ▲11.0% then ▲41.9%, conversion 0.52% → 0.60% → 0.68%, revenue per session ₹7.2 → ₹8.1 → ₹9.6. Best day 17 Aug at ₹78,261 (AOV ₹1,957). Weakest 3 Aug: 2,451 sessions, 42% below average, but conversion held — a collection problem, not a demand one.
Plan vs Achieved — August 2026 targets from the AOP planning sheet
How to read this tab. The structure and metric list come from your planning sheet. Targets are the sheet's, unchanged. Actuals are re-pulled from the portals on 29 Aug — they are not the sheet's achieved column, so the %-achieved figures here will not match the sheet.
Two things that make the comparison honest rather than flattering: the sheet's plan is a 31-day month and the actuals cover 28 days, so every target is also shown pro-rated at 28/31 (0.903) and the % column runs against the pro-rated figure. And the sheet's own MTD column was cut at 18 Aug, so it is not comparable to these numbers at all — it is deliberately not reproduced.
Gross revenue vs plan
69.1%
₹1.29Cr of a pro-rated ₹1.86Cr
Orders vs plan
62.5%
8,939 of 14,313
Paid spend vs plan
92.3%
₹25.02L of ₹27.10L
Blended CAC
₹280
plan ₹260 — 7.7% over
MTD scorecard — plan vs actual targets: planning sheet · actuals: Shopify, Meta, Google, GA4 (29 Aug pull)
| Metric | Source | Aug'26 month plan | Plan pro-rated to 28d | Actual 1–28 Aug | % of pro-rated plan |
| Gross Revenue | Shopify | ₹2,06,00,000 | ₹1,86,06,452 | ₹1,28,55,654 | 69.1% |
| Net Revenue | Shopify | ₹1,50,38,000 | ₹1,35,82,710 | ₹1,11,34,166 | 82.0% |
| Total Sales sheet has no separate total-sales target; shown against gross | Shopify | ₹2,06,00,000 | ₹1,86,06,452 | ₹1,13,04,669 | 60.8% |
| Orders | Shopify | 15,846 | 14,313 | 8,939 | 62.5% |
| AOV | Shopify tile | ₹1,300 | ₹1,174 | ₹1,354 | 115.3% |
| Total Paid Expenses | Meta+Google | ₹30,00,000 | ₹27,09,677 | ₹25,02,318 | 92.3% |
| Spend (all media) sheet Spend includes RM; RM not pulled, so actual is Meta+Google only | Meta+Google | ₹31,00,000 | ₹28,00,000 | ₹25,02,318 | 89.4% |
| Overall ROI (gross ÷ paid) | Calculated | 6.60 | 5.96 | 5.14 | 86.2% |
| Net ROI | Calculated | 4.85 | 4.38 | 4.45 | 101.6% |
| Blended CAC | Calculated | ₹260 | ₹235 | ₹280 | 119.2% |
| Spends Meta | Meta Ads | ₹20,00,507 | ₹18,06,910 | ₹17,99,648 | 99.6% |
| Revenue Meta blended Meta ROAS/revenue sits behind the floating helper button — not captured | Meta Ads | ₹1,35,58,483 | ₹1,22,46,372 | not pulled | — |
| ROAS Meta needs Revenue Meta | Meta Ads | 6.80 | 6.14 | not pulled | — |
| Spends Google | Google Ads | ₹7,99,493 | ₹7,22,123 | ₹7,02,670 | 97.3% |
| Revenue Google conv. value incl. projected — provisional | Google Ads | ₹48,01,093 | ₹43,36,471 | ₹36,31,608 | 83.7% |
| ROAS Google provisional | Google Ads | 6.00 | 5.42 | 5.17 | 95.4% |
| Spends RM Engage 360 · journey spend · window is last-30-days, not 1–28 Aug | Engage 360 | ₹3,00,000 | ₹2,70,968 | ₹1,25,028 | 46.1% |
| Revenue RM Engage 360 · journey-attributed · last-30-days window | Engage 360 | ₹19,86,000 | ₹17,93,806 | ₹31,39,714 | 175.0% |
| ROAS RM last-touch journey attribution — generous, but the gap to paid is large | Engage 360 | 7.00 | 7.00 | 25.11 | 358.7% |
| Organic Revenue | GA4 | ₹4,88,586 | ₹4,41,303 | ₹4,04,922 | 91.8% |
| Sessions | Shopify | 1,240,000 | 1,120,000 | 897,358 | 80.1% |
| Add to cart | Shopify | 67,580 | 61,040 | 48,980 | 80.2% |
| Initiate Checkout sheet sources this from GoKwik; this is the Shopify reached-checkout figure | Shopify | 13,944 | 12,595 | 10,972 | 87.1% |
| Purchases | Shopify | 15,846 | 14,313 | 8,939 | 62.5% |
| ASP needs the Shopify API token | Shopify | ₹1,182 | ₹1,068 | not pulled | — |
| CPS (cost per session) | Calculated | 2.50 | 2.26 | 2.79 | 123.5% |
⚠ The shape of the miss is the story. Spend is at 92.3% of plan while gross revenue is at 69.1% and orders at 62.5%. August spent almost the full plan and bought roughly two-thirds of the planned volume. That is why Overall ROI lands at 5.14 against a 6.60 target — the plan assumed efficiency that has not materialised, and the money went out anyway.
Weekly targets from the planning sheet — actuals NOT reproduced, see note
| Metric | Week 1 | Week 2 | Week 3 | Week 4 | Aug MTD target |
| Orders | 3,578 | 3,578 | 2,045 | 5,110 | 9,201 |
| Revenue | ₹34,96,927 | ₹55,65,128 | ₹29,24,444 | ₹45,63,226 | ₹1,19,86,499 |
| Net Revenue | ₹25,52,757 | ₹40,62,543 | ₹21,34,844 | — | ₹87,50,144 |
| Net ROI | 4.80 | 4.82 | 4.73 | — | 4.79 |
| Spends Meta | ₹3,08,882 | ₹5,65,625 | ₹2,95,000 | ₹4,47,500 | ₹11,69,507 |
| Spends Google | ₹1,71,118 | ₹2,04,375 | ₹1,15,000 | ₹1,62,500 | ₹4,90,493 |
| Spends RM | ₹52,175 | ₹72,282 | ₹41,304 | ₹72,282 | ₹1,65,761 |
| ROAS Meta | 6.75 | 6.65 | 6.76 | 6.75 | 6.71 |
| ROAS Google | 4.75 | 6.47 | 5.71 | 6.50 | 5.69 |
| Blended CAC | ₹149 | ₹235 | ₹221 | ₹305 | ₹260 |
| New customers | 1,938 | 1,938 | 831 | 1,856 | 4,708 |
| Repeat customers | 754 | 754 | 323 | 999 | 1,831 |
⚠ The actuals column is deliberately empty. The sheet's weeks run 1–7, 8–14, 15–21, 22–28. Every weekly figure elsewhere in this dashboard is on Mon–Sun boundaries (10–16 Aug, 17–23 Aug). Dropping one into the other would silently compare different date ranges — the exact error that produced the wrong June discount conclusion. Filling this needs a re-pull on the sheet's boundaries, which the Shopify API token makes trivial.
My weekly actuals, on Mon–Sun boundaries Shopify + Meta + Google · 29 Aug pull
| Week | Total sales | Orders | AOV | Sessions | Conv. | Meta spend | Google cost | MER |
| 10–16 Aug | ₹28,53,410 | 2,248 | ₹1,362 | 2,27,854 | 0.99% | ₹4,66,575 | ₹1,70,485 | 4.48 |
| 17–23 Aug | ₹32,12,748 | 2,581 | ₹1,324 | 2,47,964 | 1.04% | ₹5,84,703 | ₹1,79,300 | 4.20 |
These are exact portal pulls, not derived. They are shown separately rather than forced into the sheet's week columns.
Funnel — plan vs actual targets: sheet · actuals: Shopify (1–28 Aug)
| Step | Aug month plan | Plan pro-rated 28d | Actual 1–28 Aug | % of pro-rated plan |
| Sessions | 12,40,000 | 11,20,000 | 8,97,358 | 80.1% |
| Add to cart | 67,580 | 61,040 | 48,980 | 80.2% |
| Reached checkout | 13,944 | 12,594 | 10,972 | 87.1% |
| Purchases | 15,846 | 14,313 | 8,939 | 62.5% |
| Sessions → cart | 5.20% | 5.20% | 5.46% | 105.0% |
| Session → purchase | 1.28% | 1.28% | 0.996% | 77.8% |
GoKwik checkout deep-dive — where the orders are actually lost GoKwik · pulled 29 Aug 2026
| Step | 28 Aug (exact) | Step conv. | 22–28 Aug (rounded) | Step conv. |
| Checkout Initiated | 785 | — | ~6,900 | — |
| Address Step Reached | 606 | 77.2% | ~5,500 | 79.7% |
| Payment Step Reached | 569 | 93.9% | ~5,000 | 90.9% |
| Payment Method Selected | 293 | 51.5% | ~2,700 | 54.0% |
| Converted Session | 234 | 79.9% | ~2,100 | 77.8% |
| Checkout CR | 29.81% ▼4.13% | 30.69% ▲4.43% |
| Prepaid share | 53.51% ▲17.62% | 46.02% ▼4.58% |
⚠ Half of everyone who reaches the payment step never picks a payment method. Every other step is healthy — checkout→address 77–80%, address→payment 91–94%, payment-method→converted 78–80%. This one step loses more customers than the entire rest of the checkout combined, and it has slid steadily: 58.8% (Jun) → 57.9% (Jul) → 56.1% (Aug to 18th) → 54.0% (22–28 Aug) → 51.5% (28 Aug). The step after it is deteriorating too — payment-mode→purchase was 91.1% in July and is 77.8% now.
→ Action: this is the arithmetic behind purchases landing at 62.5% of plan while reached-checkout sits at 87%. Take these two series to GoKwik and ask what changed at the payment step since June. Worth asking about directly: a payment-method list slow to load or rendering empty, a failing or newly added gateway, COD being gated (prepaid share swung 53.5% → 46.0% in a week, so payment-mix rules are moving), or an EMI/offer widget erroring. No amount of Meta or Google spend fixes this.
Pull limits, stated plainly: GoKwik's custom date picker would not open after four attempts, so MTD 1–28 Aug is not available — these are the 7D and Yesterday presets. The 7D counts are rounded to the nearest 100 by GoKwik; 28 Aug counts are exact. Also worth doing: "Session Performance" inside GoKwik needs a Google Analytics connection that is not set up.
⚠ Conversion, not traffic quality, is where the funnel breaks. Sessions-to-cart is running ahead of plan (5.46% vs 5.20%) and reached-checkout is at 87% — but purchases land at 62.5%. People are arriving, adding and reaching checkout at close to plan, then not completing. The GoKwik steps that locate the drop-off are now pulled — see the card above.
Retention marketing (RM) — Engage 360 Shiprocket Engage 360 · pulled 29 Aug 2026 · last-30-days window
RM ROAS
25.11
plan 7.00 — 3.6× target
RM spend vs plan
41.7%
₹1.25L of a ₹3.00L plan
RM revenue vs plan
158%
₹31.40L of ₹19.86L
Cost per order
₹55
blended CAC is ₹280
| Journey | Sent | Delivered | Clicked | Orders | Revenue |
| Cart Abandonment — Known User | 37,744 | 16,773 | 5,300 | 603 | ₹8,42,667 |
| Welcome Omnichannel Journey | 3,87,531 | 2,79,421 | 5,377 | 266 | ₹3,48,445 |
| Cart Abandonment — Engage user | 27,328 | 10,126 | 2,412 | 202 | ₹2,71,486 |
| Checkout Abandonment — Known Users | 3,695 | 1,777 | 788 | 95 | ₹1,71,236 |
| Checkout Abandonment — Engage Users | 1,165 | 388 | 155 | 14 | ₹21,105 |
| All journeys (22) | 10,02,386 | 6,45,061 | 43,241 | 2,271 | ₹31,39,714 |
| Campaigns (one-off sends) | 0 | 0 | 0 | 0 | ₹0 |
⚠ The most efficient channel in the business is running at 42% of its budget. RM returns 25.11 against a 7.0 target while Meta sits at 4.06 and Google at 5.17 — and it does it at ₹55 per order against a blended CAC of ₹280. Journey attribution is last-touch and generous, so discount it heavily; the gap is still too large to be an artefact. Meanwhile every paid channel is being asked to hit a ROAS it cannot reach. Zero campaigns ran in 30 days — all of this is automation, and the two cart-abandonment journeys alone produced ₹11.14L of it.
→ Action: the abandonment journeys attack precisely the checkout leak GoKwik just exposed — they recover people who reach payment and stall. Expanding those flows is the one lever that hits both problems at once. Deliverability is the constraint: only 64.4% of sends arrive, and the Welcome journey burns 3.88L sends for 266 orders (0.07%) while Cart Abandonment Known User gets 603 orders from a tenth of the volume.
⚠ The Engage wallet shows −₹90,35,738.78 with a "Recharge Now" prompt. This may be the shared Shiprocket shipping-and-messaging wallet rather than an Engage-only figure — but a negative balance can stop sends, and every rupee above depends on journeys continuing to fire. Verify what that balance represents before anything else on this page.
Window caveat: Engage's blocks each carry their own date control and the Journey block could not be switched off "Last 30 Days" (≈30 Jul – 29 Aug). These are therefore not a clean Aug 1–28 read, and the % columns above compare a ~30-day actual against a 28-day pro-rated plan.
Still needed to complete this tab
| Block | Blocked by | Clears when |
| Weekly actuals on the sheet's 1–7 / 8–14 / 15–21 / 22–28 boundaries | no daily Shopify data | Shopify API token |
| Daily tracker (1–31 Aug: orders, qty, sales, new/repeat, spend by platform) | no daily Shopify data | Shopify API token |
| ASP · ABS · Qty · New vs Repeat customers | not in the Analytics UI tiles | Shopify API token |
| GoKwik funnel for the full month 1–28 Aug | GoKwik's custom date picker will not open — presets only | GoKwik fix the picker, or export |
| Revenue Meta · ROAS Meta | blended total hidden behind the Ads Manager helper button | Meta Marketing API |
| A clean Aug 1–28 window for RM | Engage 360's Journey block will not leave "Last 30 Days" | Engage fix, or CSV export from the Journey view |
| Jan–Jul monthly history | only Jun and Jul were ever pulled exactly | Shopify API token (read_all_orders) |
Every one of these is a genuine gap, left blank rather than estimated. Most clear with the Shopify token.
Key Insights & Actions refreshed 29 Aug 2026
Insights A–G are new on 29 Aug and rest on live pulls from all four sources. Insights 1–4 below them date from the 24 Aug GA4 run and are unchanged.
G · Unassigned converts at exactly the same rate as classified paid — 1.23% vs 1.23%. Across 3,01,942 and 3,99,259 August sessions respectively. That is not noise and it is not junk traffic: Unassigned is paid social GA4 cannot name. The two together are
84.2% of all GA4 revenue.
→ Action: this is now measured, not inferred. Add the rules to the custom channel group in GA4 Admin → Data display → Channel groups — it applies retroactively and repairs history — then fix the UTMs at source to utm_source=facebook / utm_medium=paid_social. Until then, every channel-level budget decision is made on a chart that splits your largest paid platform in half.
A · The latest week grew 12.6% while cutting discounting nearly in half — this growth was not bought. Wk 17–23 Aug vs 10–16: total sales ₹28,53,410 →
₹32,12,748, orders 2,248 →
2,581 (▲14.8%), sessions ▲8.8%, conversion 0.987% →
1.041%. Discounts fell 44.6% and discount depth halved, 7.92% → 4.09% of gross.
→ Action: this is the cleanest growth week in the series — more traffic, better conversion, less discount. Establish what drove it before the next promo cycle buries the signal, and re-baseline September targets off this week rather than the August average.
B · August is a traffic problem, not a conversion or pricing problem. Aug MTD 1–28 vs a 28-day July: sessions
▼14%, orders
▼18%, total sales
▼12% — while AOV actually
rose 8% to ₹1,354 and discounting fell ~25%. Conversion held at 0.996%. The shortfall is 14% fewer people arriving.
→ Action: the month was lost at the top of the funnel, which puts it squarely on media. Meta spend is up but CTR is falling; Google is buying fewer clicks for more money. Fix reach before touching price or promo.
C · Blended MER fell from 4.48 to 4.20 — the extra spend bought revenue at a worse rate than the base. Combined ad spend rose
19.9% WoW (₹6,37,061 → ₹7,64,002) while revenue rose 12.6%. Meta CPP has now sat at ~₹348 for three straight weeks against a ₹300 ceiling, and the last WoW move was +0.15%.
→ Action: Meta proved it absorbs 25% more budget at unchanged efficiency, so the binding constraint is the CPP target, not audience headroom. The cheapest fix in the account: Prospect_ASC_Volume_Remarke runs 5.03 ROAS on ₹1.74L MTD while PPM_Log takes ₹2.11L at 3.57. Moving a fifth of PPM_Log's budget to the remarketing line is a CPP improvement available this week.
D · Meta's CTR is falling while its CPM falls too — that is creative wear, not auction pressure. CTR 3.254% → 3.084% (▼5.2%) with CPM ▼1.5% and CPC ▲4.0%. Costs eased and engagement still dropped. This is the same signal flagged on 13 Aug, still firing two weeks later.
→ Action: the creative refresh flagged mid-August has not landed. Also worth noting the account carries 9 unpublished edits, one on Engage_Dyna — the largest MTD spender at ₹3.26L. Ask Adyogi what is queued before it goes live mid-flight.
E · Cart-to-checkout is the weakest link and it moved the wrong way. Add-to-cart rate improved 5.58% → 5.67%, but reached-checkout fell 1.41% →
1.28% even as orders rose. GoKwik owns this step.
→ Action: ask GoKwik for a drop-off reason breakdown on 17–23 Aug. Also flagged: fulfilment jumped 68.6% (1,708 → 2,879) against a 14.8% rise in orders — that is a backlog being cleared, so any fulfilment SLA read across these two weeks is distorted.
F · The passkey deadline has arrived on Google Ads. The account now shows a persistent banner requiring a passkey to add users, link accounts or perform sensitive actions.
→ Action: this will block account linking, which is exactly what the API automation plan needs. Create the passkey before starting the Shopify/Google API work.
1 · The August cooling call was wrong — the site has recovered for two straight weeks. GA4 revenue by week: ₹26.86L → ₹23.76L → ₹25.77L →
₹29.64L. From the 3–9 Aug trough to the latest week, revenue is
▲24.7%, purchases
▲30.2% and conversion
▲16.7% (0.79% → 0.92%). Every measure improved, twice.
→ Action: retire the "post-EOSS cooling" framing from planning conversations. The trough was one week, not a trend. Re-baseline August targets off the 17–23 Aug run-rate, not the 3–9 Aug one.
2 · The growth is coming from everything except classified paid. Revenue WoW into 17–23 Aug: Direct
▲51.8%, Unassigned ▲28.4%, Referral ▲30.6% — and Marketing Ads
▲0.2%. Paid traffic is flat while the rest of the site accelerates.
→ Action: work out what changed around 17 Aug — a CRM or WhatsApp push, brand demand, an app release, PR. Whatever it is, it is outperforming paid media and is currently unattributed and therefore unfunded.
3 · "Unassigned" is a naming problem, and it is hiding 61% of Meta. Viewed by source/medium, every session has a source and the revenue reconciles to the paisa. GA4 simply cannot classify mediums like
fb,
ig,
whatsapp_campaign and
Video. Meta's true GA4 footprint in the reference week was 1,17,521 sessions and ₹12.17L, of which 71,499 sessions and ₹7.07L sat in Unassigned — and adyogi/fb converts at 1.02%, better than google/cpc at 0.93%.
→ Action: two moves. Add rules to the custom channel group in GA4 Admin → Data display → Channel groups (retroactive — it repairs history). Then fix the UTMs at source to utm_source=facebook / utm_medium=paid_social. Until then every channel-level budget decision is being made on a view that under-credits your largest paid platform.
4 · Direct is your biggest conversion opportunity, and it is already improving. 16% of sessions at 0.61% purchase rate — the lowest of any major channel — but climbing hard: 0.52% → 0.60% → 0.73% across the three weeks, with revenue per session ₹7.2 → ₹9.6. Best day 17 Aug at ₹78,261.
→ Action: closing Direct's gap to organic's 0.64% is worth roughly ₹1.2L a month at current volume. Find what drove 17 Aug and whether it is repeatable. Note that part of "Direct" is misclassified paid and social, so some of this gain belongs elsewhere once the UTM fix lands.
5 · Ads watch-items stand, but on 12 Aug data. Meta CPP was ₹315 MTD against a ₹300 ceiling; four Google conversion campaigns were budget-capped while ₹10,000/day sat on Brand Search with no ROAS target; PMax Discounted was excluding 93% of products. GA4 shows classified paid flat since, so none of this has obviously resolved itself.
→ Action: re-pull Google and Meta before acting on any of it. The 93% product exclusion is still the cheapest unlock in the account and costs nothing in efficiency terms to fix.
6 · The freshest-day lag is now measured three times. 12 Aug read 548 organic sessions and ₹0 when pulled on 13 Aug; it settled at 1,396 and ₹18,819. 18 Aug read 455 / ₹5,976 on the day; it settled at 1,497 / ₹7,945. 23 Aug currently reads 1,131 / ₹599 at 16% engagement. Direct behaves in the opposite direction — unresolved traffic pools into it, so its same-day sessions are inflated.
→ Action: before reporting any same-day or previous-day GA4 figure, compare its engagement rate with the prior day. Single digits or teens against ~97% means the day is not ready. This is now written into the reporting SOP.
Recurring SOP locked accounts
| Cadence | Window | Compare vs | What updates here |
| Daily · 9:00 IST | Yesterday | Day before | Daily pulse row (WoW tab) + tiles |
| Weekly · Monday | Mon–Sun week | Prior week | Weekly history row + channels + ads trend + audiences/creatives |
| Monthly · 1st | Completed month | Prior month | Monthly history + campaign league + returns/discounts + refreshed insights |
Locked sources: Shopify libertyshoes-online · GA4 “Liberty New - GA4” (289711881) · Google Ads 530-752-6249 · Meta “Liberty Shoes Online _ 1” (1476088395883569). Definitions: Conversion = Shopify orders ÷ sessions · MER = Shopify total sales ÷ (Google + Meta spend) · Meta CPP = spend ÷ omni purchases · Google ROAS = conv. value ÷ cost · AOV = Shopify's own tile (do not mix with total ÷ orders). Same-day ad values are provisional. This is the single D2C artifact — every run updates it in place; no new dashboards.
⚠ Tooling status (24 Aug 2026): the Shopify picker does accept automation — the earlier failure was a ~22px coordinate offset that appears when the popover opens, not a block. Calibrate with one known click before driving it. The durable fix is the Admin GraphQL API script now bundled with the reporting SOP, which skips the UI entirely; it needs a token plus read_all_orders access for months older than 60 days. GA4 and Meta drive by URL; Google Ads' own picker works.