Files
astro-website/openspec/changes/archive/2026-02-10-custom-events-umami/specs/conversion-ctas/spec.md
Santhosh Janardhanan af112a713c
Some checks failed
ci / site (push) Has been cancelled
Initial commit - but way too late.
2026-02-10 00:22:18 -05:00

1.8 KiB

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

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