@shware/analytics 10.2.0 → 10.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -137,19 +137,23 @@ views), **the session's own touch included**:
|
|
|
137
137
|
| `overridden` | The session had a touch of its own, but an earlier, stronger one won |
|
|
138
138
|
| `none` | A direct session with no touch in the window |
|
|
139
139
|
|
|
140
|
-
| # | What happened | The current session is credited to | `touch_kind`
|
|
141
|
-
| --- | ---------------------------------------------------------------------------------- | ---------------------------------- |
|
|
142
|
-
| 1 | Day 1 a Meta ad click, day 2 a branded Google search | **Meta** | `overridden`
|
|
143
|
-
| 2 | Day 1 a Meta ad click, day 2 typed in | **Meta** | `inherited`
|
|
144
|
-
| 3 | Day 1 an organic search, day 2 a Meta ad click | **Meta** | `own`
|
|
145
|
-
| 4 | Day 1 a Meta ad click, day 3 a Google ad click | **Google** | `own`
|
|
146
|
-
| 5 | Day 1 a Meta ad click, day 2 a ChatGPT citation with its utm | **Meta** | `overridden`
|
|
147
|
-
| 6 | Day 1 an organic search, day 5 a ChatGPT citation | **ChatGPT** | `own`
|
|
148
|
-
| 7 | An ad click 45 days ago, an organic search today | **Organic search** | `own`
|
|
149
|
-
| 8 | A Reddit ad tagged `utm_medium=social` with `rdt_cid` | **reddit / cpc** | `own`
|
|
150
|
-
| 9 | Day 1 a Meta ad click, day 2 a newsletter link (`utm_medium=email`) | **Meta** | `overridden`
|
|
151
|
-
| 10 | Day 1 an organic search, day 2 a newsletter link, no ad in the window | **Email** | `own`
|
|
152
|
-
| 11 | A survey answer "a podcast" (backdated to the first visit), then an organic search | **Organic search** | `own`
|
|
140
|
+
| # | What happened | The current session is credited to | `touch_kind` | Why |
|
|
141
|
+
| --- | ---------------------------------------------------------------------------------- | ---------------------------------- | -------------------- | ----------------------------------- |
|
|
142
|
+
| 1 | Day 1 a Meta ad click, day 2 a branded Google search | **Meta** | `overridden` | 1 beats 2 |
|
|
143
|
+
| 2 | Day 1 a Meta ad click, day 2 typed in | **Meta** | `inherited` | direct inherits |
|
|
144
|
+
| 3 | Day 1 an organic search, day 2 a Meta ad click | **Meta** | `own` | its own touch is stronger |
|
|
145
|
+
| 4 | Day 1 a Meta ad click, day 3 a Google ad click | **Google** | `own` | both 1, the latest wins |
|
|
146
|
+
| 5 | Day 1 a Meta ad click, day 2 a ChatGPT citation with its utm | **Meta** | `overridden` | ChatGPT's organic utm ranks 2 |
|
|
147
|
+
| 6 | Day 1 an organic search, day 5 a ChatGPT citation | **ChatGPT** | `own` | both 2, the latest wins |
|
|
148
|
+
| 7 | An ad click 45 days ago, an organic search today | **Organic search** | `own` | the ad is out of the window |
|
|
149
|
+
| 8 | A Reddit ad tagged `utm_medium=social` with `rdt_cid` | **reddit / cpc** | `own` | the click id proves a paid click |
|
|
150
|
+
| 9 | Day 1 a Meta ad click, day 2 a newsletter link (`utm_medium=email`) | **Meta** | `overridden` | email ranks 2 |
|
|
151
|
+
| 10 | Day 1 an organic search, day 2 a newsletter link, no ad in the window | **Email** | `own` | both 2, the latest wins |
|
|
152
|
+
| 11 | A survey answer "a podcast" (backdated to the first visit), then an organic search | **Organic search** | `own` | 2 beats 3; a claim only fills a gap |
|
|
153
|
+
| 12 | Day 1 a ChatGPT citation, day 2 a branded Google search | **Organic search** | `own` | both 2, the latest wins |
|
|
154
|
+
| 13 | Day 1 a ChatGPT citation, day 2 a ChatGPT ad click (`oppref`) | **chatgpt / cpc** | `own` | the ad is 1 |
|
|
155
|
+
| 14 | Day 1 a Meta ad click, day 2 a ChatGPT citation, day 3 typed in | **Meta** | `inherited` | 1 beats the citation's 2 |
|
|
156
|
+
| 15 | The ChatGPT app opens a link with neither referrer nor utm | **Direct**, or what came before | `none` / `inherited` | nothing to read |
|
|
153
157
|
|
|
154
158
|
**How this differs from GA4.** GA4's last non-direct click credits the latest touch that is not
|
|
155
159
|
direct, whatever it was: cases 1, 5 and 9 go to the search, ChatGPT and the email. Here an ad click is not
|
|
@@ -185,6 +189,36 @@ report instead of the model:
|
|
|
185
189
|
Special cases in the model ("an ad clicked by a paying customer does not override") are not
|
|
186
190
|
worth it: the rules get harder to explain, and the first two rows remain.
|
|
187
191
|
|
|
192
|
+
### AI assistants (GEO)
|
|
193
|
+
|
|
194
|
+
Visits an AI assistant sends — a citation in ChatGPT, Perplexity, Gemini, Claude, Copilot,
|
|
195
|
+
DeepSeek and the others in `REFERRER_SITES` — are `organic_ai`, read from the referrer or from the
|
|
196
|
+
assistant's own utm (`utm_source=chatgpt.com`). They rank with organic search, priority 2, on
|
|
197
|
+
purpose: both are earned, not bought, and come from a question the user asked.
|
|
198
|
+
|
|
199
|
+
- **Not above SEO**: a citation would otherwise take the credit from the ad clicked before it, and
|
|
200
|
+
from the search that followed it.
|
|
201
|
+
- **Not below SEO**: "ask ChatGPT, then search the brand" would then always go to the search, and
|
|
202
|
+
GEO would read lower than it is.
|
|
203
|
+
- **Apart from ChatGPT's ads**: a click on a ChatGPT ad carries `oppref` and is paid, priority 1
|
|
204
|
+
(`paid_other`); the citations next to it stay `organic_ai`.
|
|
205
|
+
|
|
206
|
+
GA4's default grouping has no AI group and files these visits under Referral; `organic_ai` is an
|
|
207
|
+
addition so GEO and SEO can be compared side by side.
|
|
208
|
+
|
|
209
|
+
What the data cannot show, and how to read around it:
|
|
210
|
+
|
|
211
|
+
1. **Dark AI traffic.** The assistants' desktop and mobile apps, and links copied into a browser,
|
|
212
|
+
often arrive with neither referrer nor utm, and are counted as direct (case 15). GEO is always
|
|
213
|
+
undercounted.
|
|
214
|
+
2. **Discovery credited to search.** Someone who learns the brand from an assistant and searches
|
|
215
|
+
it the next day is credited to the search (case 12), as in every last-touch model.
|
|
216
|
+
3. **Read GEO by first touch** (`user_attribution` in the reference views), where the assistant
|
|
217
|
+
that introduced the brand keeps the credit, and **ask**: a sign-up survey ("where did you hear
|
|
218
|
+
about us?" with the assistants as options) stored as a reported touch (`survey`, priority 3)
|
|
219
|
+
never overrides a tracked touch, but measures how much of the direct traffic the assistants
|
|
220
|
+
brought.
|
|
221
|
+
|
|
188
222
|
### Compared with other tools
|
|
189
223
|
|
|
190
224
|
How other tools credit a visit, as far as their documented defaults go (they change often; check
|