A content analytics event should answer a decision, not merely prove that a click happened. For a B2B site, the useful question is often: which resources help a suitable organisation move from research to a qualified conversation? Here is a small implementation pattern that keeps the event stream readable and avoids putting personal data in analytics URLs.
Start with four events
| Event | When it fires | Minimum properties |
|---|---|---|
content_viewed |
A resource becomes visible | content ID, topic, page path |
content_engaged |
A person uses a resource meaningfully | content ID, interaction type |
enquiry_started |
A booking or enquiry flow opens | flow ID, source content ID |
enquiry_submitted |
The user submits the form | flow ID, consent state |
A qualified conversation is usually a CRM outcome, not a browser event. Join it to the journey later, under the organisation's privacy rules, rather than trying to label every form submission as a sales opportunity.
Keep the payload boring
A shared payload makes it easier to compare campaigns and content types:
{
"event_name": "content_engaged",
"schema_version": 1,
"content_id": "guide-b2b-measurement",
"topic": "content-measurement",
"interaction_type": "guide_opened",
"page_path": "/insights/b2b-measurement",
"channel": "organic_search"
}
Use a stable content ID rather than a page title that may change. Version the schema when a property changes meaning. Validate the allowed event names and interaction types at collection time; a free-text field quickly becomes a reporting problem.
Do not put an email address, name, phone number, or other private detail into page_path, campaign parameters, or event names. Keep consent state explicit. If consent is absent, the implementation should follow the site's configured privacy behaviour rather than silently creating a person-level trail.
Test the questions, then add instrumentation
Before shipping a new event, ask who will use it and what they will change. If the answer is unclear, defer the event. In QA, test a resource view, an engaged interaction, an abandoned enquiry and a submitted enquiry. Check that each fires once, has the expected properties, and reaches the reporting destination with the same names.
Finally, compare volume and quality together. More guide opens with no improvement in qualified conversations may still be useful research traffic, but it should not be reported as commercial impact. Document assumptions and review a small set of journey changes each month.
We use this decision-led approach at MxD Digital. Our practical B2B content event model expands the view–engage–intent–outcome framework for teams planning their first dashboard.
Top comments (0)