This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Umami pageview tracking
|
||||
When Umami is enabled by configuration, the site MUST load Umami tracking on all indexable pages and MUST record pageviews.
|
||||
|
||||
When Umami is disabled or not configured, the site MUST still function and MUST NOT error in the browser due to missing analytics.
|
||||
|
||||
#### Scenario: Umami enabled
|
||||
- **WHEN** Umami is enabled by configuration
|
||||
- **THEN** the site includes the Umami script on `/`, `/videos`, `/podcast`, and `/about`
|
||||
|
||||
#### Scenario: Umami disabled
|
||||
- **WHEN** Umami is not configured
|
||||
- **THEN** the site renders normally and no analytics script is required
|
||||
|
||||
### Requirement: Custom event tracking
|
||||
When Umami is enabled, the site MUST support custom event emission for:
|
||||
- `cta_click`
|
||||
- `outbound_click`
|
||||
- a general click interaction event for all instrumented clickable items (per the site tracking taxonomy)
|
||||
|
||||
Each emitted event MUST include enough properties to segment reports by platform and placement when applicable.
|
||||
|
||||
All tracked clickable items MUST emit events with a unique, consistent set of data elements as defined by the site tracking taxonomy, including at minimum `target_id` and `placement`.
|
||||
|
||||
#### Scenario: Emit outbound click event
|
||||
- **WHEN** a user clicks a non-CTA outbound link from the homepage
|
||||
- **THEN** the system emits an `outbound_click` event with a property identifying the destination domain
|
||||
|
||||
#### Scenario: Emit general click event for any clickable
|
||||
- **WHEN** a user clicks an instrumented navigation link
|
||||
- **THEN** the system emits a click interaction event with `target_id` and `placement`
|
||||
|
||||
#### Scenario: Uninstrumented clicks do not break the page
|
||||
- **WHEN** a user clicks an element with no tracking metadata
|
||||
- **THEN** the system does not throw and navigation/interaction proceeds normally
|
||||
|
||||
### Requirement: Environment configuration
|
||||
The site MUST support configuration of Umami parameters (at minimum: website ID and script URL) without requiring code changes.
|
||||
|
||||
#### Scenario: Configure Umami via environment
|
||||
- **WHEN** Umami configuration values are provided via environment or config file
|
||||
- **THEN** the site uses those values to initialize analytics without modifying source code
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Reusable CTA component
|
||||
The site MUST implement CTAs as a reusable component that can render at least the following actions:
|
||||
- YouTube subscribe action (linking to the channel)
|
||||
- Instagram follow action (linking to the profile)
|
||||
- Podcast listen action (linking to a designated destination)
|
||||
|
||||
Each CTA MUST be configurable with:
|
||||
- `platform` (`youtube`, `instagram`, `podcast`)
|
||||
- `placement` (e.g., `hero`, `module_header`, `footer`)
|
||||
- destination `url`
|
||||
|
||||
#### Scenario: Rendering a YouTube subscribe CTA
|
||||
- **WHEN** the homepage includes a CTA with `platform: youtube`
|
||||
- **THEN** the site renders a visible action that links to the configured YouTube channel destination URL
|
||||
|
||||
### Requirement: Trackable outbound links
|
||||
CTA outbound links MUST support appending UTM parameters so traffic can be attributed in downstream analytics.
|
||||
|
||||
#### Scenario: UTM parameters applied
|
||||
- **WHEN** a CTA is configured with UTM parameters
|
||||
- **THEN** the rendered outbound link includes the UTM query parameters in its URL
|
||||
|
||||
### Requirement: CTA click event emission
|
||||
CTA clicks MUST emit an analytics event with at least:
|
||||
- event name `cta_click`
|
||||
- `platform`
|
||||
- `placement`
|
||||
- `target` (destination URL or a stable identifier)
|
||||
|
||||
In addition, CTA clicks MUST conform to the site click tracking taxonomy and MUST include a stable, unique identifier (`target_id`) for the CTA instance (so multiple CTAs with the same destination can be measured independently).
|
||||
|
||||
#### Scenario: User clicks CTA
|
||||
- **WHEN** a user clicks an Instagram follow CTA in the hero placement
|
||||
- **THEN** the system emits a `cta_click` event with `platform=instagram` and `placement=hero`
|
||||
|
||||
#### Scenario: Two CTAs to the same destination
|
||||
- **WHEN** two CTAs link to the same destination but appear in different placements
|
||||
- **THEN** their emitted events contain different `target_id` values
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Standard click tracking taxonomy
|
||||
The system MUST define and follow a standard taxonomy for tracking user interactions (clicks) across the website.
|
||||
|
||||
The taxonomy MUST define:
|
||||
- required event name(s)
|
||||
- required event properties
|
||||
- allowed values for categorical properties (where applicable)
|
||||
- uniqueness rules for identifiers
|
||||
|
||||
#### Scenario: Adding a new tracked link
|
||||
- **WHEN** a new link is added to any page/component
|
||||
- **THEN** it is instrumented according to the taxonomy (required event name and required properties) without additional bespoke tracking code
|
||||
|
||||
### Requirement: Unique identifier for every clickable item
|
||||
Every clickable item that is tracked MUST have a stable identifier (`target_id`) that is unique across the site (or unique within a documented namespace).
|
||||
|
||||
The identifier MUST be deterministic across builds for the same element and placement.
|
||||
|
||||
#### Scenario: Two links in different placements
|
||||
- **WHEN** two links point to the same destination but appear in different placements
|
||||
- **THEN** their `target_id` values are different so their clicks can be measured independently
|
||||
|
||||
### Requirement: Minimum required properties
|
||||
Every tracked click event MUST include, at minimum:
|
||||
- `target_id`
|
||||
- `placement`
|
||||
|
||||
For links, the event MUST also include:
|
||||
- `target_url` (or a stable target identifier that can be mapped to a URL)
|
||||
|
||||
#### Scenario: Tracking a content card click
|
||||
- **WHEN** a user clicks a content card link
|
||||
- **THEN** the emitted event includes `target_id`, `placement`, and `target_url`
|
||||
|
||||
### Requirement: No PII in event properties
|
||||
The taxonomy MUST prohibit including personally identifiable information (PII) in event names or event properties.
|
||||
|
||||
#### Scenario: Tracking includes only categorical metadata
|
||||
- **WHEN** tracking metadata is defined for a clickable item
|
||||
- **THEN** it contains only categorical identifiers (ids, placements, domains) and does not include user-provided content
|
||||
|
||||
Reference in New Issue
Block a user