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
Media plans include both programmatic and non-programmatic channels, but only programmatic data is properly integrated
Non-programmatic channels (Meta, YouTube, direct buys) account for a significant portion of media budgets (e.g., $35,000 out of $100,000)
Data from these channels flows through Funnel.io and then into Azure, creating a separate data flow
Lack of unified data ingestion and visibility across all channels
Proposed Solution
1. Bulk Upload Generation for Non-Programmatic Platforms
The Media Planner app will be enhanced to:
Generate platform-specific bulk upload sheets for Meta, YouTube, and other direct buy platforms
Provide detailed instructions for manual uploads where API integration isn't possible
Maintain a consistent format for campaign data across programmatic and non-programmatic channels
2. Meta Ads Platform Integration
Bulk Uploader for Meta
Generate CSV files in Meta's required format
Include all necessary fields: campaign name, ad set name, ad name, budget, schedule, targeting parameters, creative specifications, placements, optimization goals
Implementation Details
Create a Meta template generator component in the Media Planner app
Format validation to ensure Meta compliance
Download option for prepared bulk upload sheets
Step-by-step instructions for uploading to Meta Ads Manager
3. YouTube Ads Integration
Bulk Uploader for YouTube
Generate CSV files in YouTube's required format
Include all necessary fields: campaign name, ad group, ad format (e.g., TrueView, bumper), budget, targeting, creative specifications, bidding strategy
Implementation Details
Create a YouTube template generator component
Format validation to ensure Google Ads compliance
Download option for prepared bulk upload sheets
Step-by-step instructions for uploading to Google Ads
4. Direct Buy Platforms
Generate standardized templates that can be customized for various direct buy platforms
Include core campaign elements adaptable to different platform requirements
Provide customizable fields for platform-specific parameters
5. Funnel.io Data Integration
Document the data flow from non-programmatic platforms through Funnel.io
Ensure naming conventions and identifiers align between Media Planner and Funnel.io
Create standardized campaign tagging structure to maintain data consistency
Configure automated data synchronization from Funnel.io to Azure
Technical Implementation
Media Planner App Enhancements
Platform Selection Component
Allow users to select target platforms (TTD, Meta, YouTube, Direct)
Dynamically adjust workflow based on selected platforms
Bulk Upload Generator Module
Platform-specific formatters
CSV/Excel generation utilities
Template engine
Instruction Generator
Step-by-step guides based on selected platform
Visual aids for manual upload processes
Validation checklists
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.