# Reading "Ask MSOS" questions in Google Analytics The assistant sends one Google Analytics event every time someone asks a question (only if they accepted cookies). This guide shows how to see those questions — your **real FAQs** and, most valuably, the questions it **couldn't answer** (so you know what to add next). Property: **G-WVYV807VSS**. You need *Editor/Admin* access to that GA4 property. --- ## What gets sent | Event name | `assistant_query` | |---|---| | `q` | the question text (first 120 chars) | | `result` | `curated` (great answer) · `search` (found pages) · `none` (**no answer — a gap!**) | | `q_lang` | language of the question: `en` / `mk` / `si` | | `page_lang` | language of the page they were on | --- ## Step 1 — Register the parameters (one-time, required) GA4 hides custom parameters until you register them as **custom dimensions**. Do this once: 1. GA4 → **Admin** (gear, bottom-left) → **Custom definitions** → **Create custom dimension**. 2. Create **four** dimensions, all with **Scope = Event**: | Dimension name | Event parameter | |---|---| | Question | `q` | | Result | `result` | | Question language | `q_lang` | | Page language | `page_lang` | 3. Click **Save** for each. > ⚠️ Data only starts collecting into these dimensions **from the moment you > create them** (it isn't retroactive), so set them up early. Reports take > **24–48 h** to populate — but you can verify instantly in Step 2. --- ## Step 2 — Verify it's working right now (Realtime) 1. Open the live site, **Accept** the cookie banner, open **Ask MSOS**, ask a test question. 2. In GA4 → **Reports** → **Realtime**. 3. Scroll to **"Event count by Event name"** → you should see **`assistant_query`**. Click it to see the parameters coming in. (If you don't see it: make sure you clicked *Accept* on cookies — the event is intentionally not sent otherwise.) --- ## Step 3 — Build the "Top questions" report (Exploration) 1. GA4 → **Explore** (left menu) → **Blank** exploration. 2. **Variables** column → next to **Dimensions** click **+** → add **Question**, **Result**, **Question language**. → next to **Metrics** click **+** → add **Event count**. 3. In the **Settings** ("Tab Settings") column: - **Rows** → drag in **Question**. - **Values** → drag in **Event count**. - **Filters** → drag in the field, choose... actually add a filter: **Event name** `exactly matches` `assistant_query`. (If "Event name" isn't offered, add the dimension **Event name** first.) 4. You now have a ranked list of the most-asked questions. Sort by Event count (click the column). --- ## Step 4 — The gold mine: unanswered questions Duplicate the tab (or add a filter) and set: - **Rows**: Question - **Values**: Event count - **Filter**: **Result** `exactly matches` `none` This is the list of questions the assistant **failed to answer**. Each one is a prompt to either (a) add a curated answer in `assistant.js`, or (b) write/clarify a page. This is how the assistant gets smarter over time. Tip: also break down by **Question language** to see if MK/SI users are being served as well as EN users. --- ## Optional — a quick recurring check Save the exploration (it autosaves). Once a week, open it and look at: - **Top 10 questions** → your real FAQ list (consider promoting these on pages). - **`result = none`** → your to-do list for new answers/content. - **`result = search`** (not `curated`) → common questions worth turning into a polished curated answer (edit the `INTENTS` list in `assistant.js`). --- ## Privacy note The question text is user-typed, so **avoid encouraging personal data** in the prompt (the placeholder just says "Ask a question…"). Google's terms forbid sending personal identifiers (emails, names) to GA. Questions are truncated to 120 characters and only sent **after cookie consent**. If you ever want zero text stored, you can drop the `q` parameter in `assistant.js` and keep only the `result`/language counts.