← BesteCONTENT HISTORY

Update to Beste

Snapshot Oct 7, 2026 · 00:28 UTC · version 0.1.1

Collection source: downloaded plugin package.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Put GA4 or Meta pixel conversion tracking on the links of a Beste site as a funnel of three to five steps. Use when the person wants to measure bookings, leads or sales on their Beste site.",
  "included_files": [],
  "name": "funnel",
  "skill_md_contents": "---\nname: funnel\ndescription: \"Put GA4 or Meta pixel conversion tracking on the links of a Beste site as a funnel of three to five steps. Use when the person wants to measure bookings, leads or sales on their Beste site.\"\n---\n\nPut conversion tracking on an existing Beste site.\n\nA funnel is not a feature to switch on. It is a decision about what counts as\nprogress on this site, and then the same decision written onto every link that\ncarries it. Your job is the decision first, the writing second.\n\n### Your first message\n\nTwo lines. Something like:\n\n    **Let's measure what matters on your site.**\n\n    I'll look at your pages first, then ask you one thing.\n\nThen look. No plan, no list of what you are about to do.\n\n### Look before you ask\n\n1. get_analytics_setup. This tells you which of GA4, Meta and PostHog the site\n   actually has, and the event names GA4 recognises. **If nothing is connected,\n   stop here**: say so in one line, tell them where to add a measurement id in\n   the builder, and offer to carry on the moment it is there. Writing events\n   into a site with no analytics is writing into nothing.\n2. list_pages, then list_links. Now you know the whole site: what pages exist,\n   what every link says, where it goes, and which links already fire something.\n3. Read what is already there. A site with tracking on half its buttons has a\n   history, and overwriting it silently is how a report loses its past.\n\n### Ask one question\n\n**Use your question tool**, and ask the only thing you cannot work out\nyourself: what counts as success here. Offer three or four readings of the site\nyou just looked at, in their words, not in GA4's:\n\n    - \"Someone gets in touch\"      (contact, quote, callback)\n    - \"Someone books a slot\"       (appointment, table, viewing)\n    - \"Someone buys\"               (checkout)\n    - \"Someone downloads the menu\"  (whatever this site actually offers)\n\nLeave room for their own answer. One question, then stop asking.\n\nDo not ask which events to use, or what to name them, or which links to put\nthem on. That is the work, and it is yours.\n\n### Build the funnel\n\nA funnel is three to five steps. Fewer says nothing; more cannot be read.\n\nEach step is one **stage of intent**, not one page. Several links can share a\nstep: every \"Book now\" button on the site is the same step, wherever it sits.\n\nName the funnel once, in snake_case, after the outcome: `lead_capture`,\n`booking`, `purchase`. Number the steps from 1 at the widest.\n\nFor a site whose success is \"someone gets in touch\", that is usually:\n\n    1  select_content   the links that start the journey: a service card, a plan\n    2  view_item        opening the thing itself: a service page, a plan page\n    3  contact          a phone, email or WhatsApp link\n    4  generate_lead    the contact form's own button, if the site has one\n\nUse the names get_analytics_setup gives you and nothing else. An invented name\narrives in GA4 as an event with no report built for it, which is the same as\nnot measuring. If the site really needs a name of its own, say so and ask\nbefore turning on allowCustomNames.\n\nPick the **sink** by what the site has connected. GA4 measures; the Meta pixel\nis for advertising and belongs on the last step or two, where an ad can be\noptimised against it. Do not put every event on every sink: three copies of one\nclick is three times the noise and, for Meta, three times the ad signal spent\non nothing.\n\n### Write it\n\nset_link_events, addressing links by the sectionId and path list_links gave\nyou, and pass `funnel: { name, step }` on every event. Both parts matter: the\nname groups the steps into one report, the number orders them.\n\nOne call, all the links. It writes each section once, so a funnel across\nfifteen links is one batch and one thing to undo.\n\n**Do not track everything.** A link to the privacy policy is not a funnel step.\nSocial icons in the footer are not a funnel step. Every event you add is a row\nsomeone has to read past to find the one that matters, so leave the rest alone.\nA shared navbar link is written once and counts on every page; that is correct,\nand worth saying.\n\n### Tell them\n\nShort. The funnel as steps, each with the number of links behind it:\n\n    Tracking is on, as a funnel called **lead_capture**:\n\n    | | | |\n    |---|---|---|\n    | 1 | Services and plan cards | 6 links |\n    | 2 | Service pages opened | 3 links |\n    | 3 | Phone and email | 4 links |\n    | 4 | Contact form | 1 link |\n\n    It is in the draft. Say the word and I'll put it live, and it starts\n    counting from then.\n\nThen the one caveat that is true and easy to miss: nothing is measured until\nthe site is published, and if the site shows a cookie banner, visitors who\nrefuse are not counted. Say it in a line, not a paragraph.\n\nNever publish on your own. This site is already live and this change is\ntheirs to make.\n"
}

SHA-256 of public snapshot: 9b5ce95976e4e7bee89a734edd26df04147b70d4b25075f52a19bffd3a19ed23