Back to Menu

Yosemite System Architecture

System Architecture Diagram

flowchart LR A((Client Team)) --> W[yosemitly.vercel.app] subgraph "Media Planner Frontend" W --> B["Media Planner App
(Next.js + Node 16)
CRM & Campaign Management"] B -->|"Upload Ads"| C["Spec Validator"] C --> D{"Check Requirements"} D -->|"Pass"| E["Associate Creatives"] D -->|"Fail"| F["Send Error Report"] F -->|"Fix & Retry"| B end subgraph "Campaign Launch Phase" E --> FI{"Platform Type"} %% Updated flow based on feedback B -->|"Campaign Build"| G["The Trade Desk (TTD)"] G -->|"API Push"| NTF["Campaign Execution"] %% Non-programmatic path FI -->|"Non-Programmatic"| FN["Funnel.io (Data Integration Hub)"] %% Highlight Funnel.io's critical role classDef funnelHighlight fill:#f9d71c,stroke:#ff9900,stroke-width:2px %% Highlight key data flow path classDef dataFlowHighlight fill:#a1e5ab,stroke:#3cb371,stroke-width:2px subgraph "Integration Fallbacks" FI -->|"No API Access"| AU["Automation Layer
(Puppeteer/Selenium)"] AU -->|"Automated Upload"| PL["Platform UI"] PL -->|"Manual Data"| FN end FN -->|"Marketing API"| GA["Google Ads"] FN -->|"Graph API"| M1["Meta Ads"] FN -->|"Ads API"| T1["Twitter/X"] %% Updated data flow for campaign data NTF -->|"Live Campaign Data
via API"| H[("Azure Storage")] GA & M1 & T1 -->|"Data"| FN FN -->|"Normalized Data"| H %% Apply highlight classes class FN funnelHighlight class NTF,H,ETL,I dataFlowHighlight end subgraph "Data Pipeline" H -->|"Raw Data"| ETL["Azure ETL
(Azure Data Factory)"] ETL -->|"Processed Data"| I["Power BI Analytics
Visualization & Pacing"] end subgraph "Audit & Validation" I -->|"Actual Data"| AC{"Audit Check"} NTF -->|"Execution Data"| AC B -->|"Plan Data"| AC AC -->|"Pass"| PN["Send Pass Notification"] AC -->|"Fail"| SFN["Send Fail Notification"] PN & SFN -->|"Status"| B end %% Detailed Descriptions B --- |"Media Planner:
- Client Details
- Account Details
- OnTac Details
- Campaign Creation
- Ad Scheduling
- Audience Targeting
- Budget Allocation

Tech Stack:
- Next.js Frontend
- Node.js v16
- Vercel Hosting"| B D --- |"Validate:
- Dimensions
- File Size
- Duration
- Format"| D E --- |"Setup:
- Schedule
- Placements
- Targeting
- Platform Selection"| E %% Updated Power BI description I --- |"Power BI Metrics:
1. Campaign Performance:
- Impressions, CTR, CPA
- Conversion Rates
2. Budget:
- Platform Spend
- Pacing Analysis
3. Audience:
- Demographics
- Geography
4. Creative:
- Asset Performance
- A/B Testing
5. Attribution:
- Cross-Channel
- Revenue/ROAS"| I AC --- |"Audit Check:
- Compare Actual vs Plan
- Validate Execution
- Monitor Discrepancies"| AC %% Funnel.io highlight and description FN --- |"Funnel.io:
- Data Integration Hub
- Normalizes Platform Data
- Standardizes Metrics
- Central Collection Point"| FN %% Added data flow description ETL --- |"Azure Data Factory (ADF):
- ETL Process
- Data Transformation
- Data Aggregation
- Schedule Execution"| ETL

Non-Programmatic Media Integration

Overview

This section outlines the implementation requirements for integrating non-programmatic media channels (Meta, YouTube, direct buys) into the Yosemite architecture. The goal is to address the current gap in the data integration pipeline, where non-programmatic media data flows through Funnel.io into Azure, separate from the programmatic media data that returns as logs.

Current Architecture Limitations

Proposed Solution

1. Bulk Upload Generation for Non-Programmatic Platforms

The Media Planner app will be enhanced to:

2. Meta Ads Platform Integration

Bulk Uploader for Meta

Implementation Details

3. YouTube Ads Integration

Bulk Uploader for YouTube

Implementation Details

4. Direct Buy Platforms

5. Funnel.io Data Integration

Technical Implementation

Media Planner App Enhancements

  1. Platform Selection Component
    • Allow users to select target platforms (TTD, Meta, YouTube, Direct)
    • Dynamically adjust workflow based on selected platforms
  2. Bulk Upload Generator Module
    • Platform-specific formatters
    • CSV/Excel generation utilities
    • Template engine
  3. Instruction Generator
    • Step-by-step guides based on selected platform
    • Visual aids for manual upload processes
    • Validation checklists
  4. Campaign Identifier System
    • Consistent naming convention across all platforms
    • UTM parameter generator for tracking
    • Unique identifiers that persist across platforms

Data Flow Architecture

graph TD MP[Media Planner App] --> PS[Platform Selection] PS --> CC[Campaign Creation] CC --> |Programmatic| TTD[TTD API] CC --> |Non-Programmatic| BUG[Bulk Upload Generator] TTD --> TTDP[TTD Platform] BUG --> FI[Funnel.io Integration] FI --> MYD[Meta/YouTube/Direct Platforms] TTDP --> DL[Direct Logs] DL --> AS[Azure Storage] MYD --> FI FI --> AS AS --> PBI[Power BI Analytics] style MP fill:#e1f5fe,stroke:#1a73e8 style PBI fill:#e8f4f8,stroke:#4a6fa5

Implementation Phases

Phase 1: Meta Integration

  • Implement Meta bulk upload generator
  • Create Meta-specific instructions
  • Test with sample campaigns

Phase 2: YouTube Integration

  • Implement YouTube bulk upload generator
  • Create YouTube-specific instructions
  • Test with sample campaigns

Phase 3: Direct Buy Support

  • Create flexible templates for direct buy platforms
  • Implement customization options
  • Test with common direct buy platforms

Phase 4: Funnel.io Alignment

  • Document data mapping between Media Planner and Funnel.io
  • Implement consistent naming conventions
  • Verify data flow from platforms through Funnel.io to Azure

Conclusion

This integration will close the gap in the data pipeline by providing support for non-programmatic media channels. By generating bulk upload files and providing detailed instructions, the Media Planner app will enable a consistent workflow across all media channels while ensuring that data from all sources can be uniformly analyzed in Power BI.