## 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