# databricks-industry-solutions/ad-genie architecture

> Architecture diagram of the GitHub repository databricks-industry-solutions/ad-genie, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/databricks-industry-solutions/ad-genie
- Repository: https://github.com/databricks-industry-solutions/ad-genie

## Overview

ad-genie is a Databricks marketing-analytics product: Lakeflow Connect supplies platform data, transformations create standardized silver and conformed gold tables, and metric views, a dashboard, and a Genie room provide analytics. The source index and excerpts support the transformation and Genie relationships; README statements identify the documented product capabilities. Dashboard wiring and some deployment configuration are not shown, so those relationships are marked unverified. Test-harness components are excluded.

Main entry points: [`src/pipeline/gold_transforms.py`](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/gold_transforms.py) (Gold transforms), [`src/pipeline/silver_transforms.py`](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/silver_transforms.py) (Silver transforms), [`src/pipeline/sources/base.py`](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/sources/base.py) (Source base), [`src/genie_space/genie_space_manager.py`](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/genie_space/genie_space_manager.py) (Genie space manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingest["Source ingestion"]
  node_lfc["Lakeflow Connect"]
  node_bronze[("Bronze tables")]
end

subgraph group_transform["Data transformations"]
  node_base["Source base<br/>[base.py]"]
  node_google["Google Ads transforms<br/>[google_ads.py]"]
  node_meta["Meta Ads transforms<br/>[meta_ads.py]"]
  node_tiktok["TikTok Ads transforms<br/>[tiktok_ads.py]"]
  node_schemas["Table schemas<br/>[schemas.py]"]
  node_silver["Silver transforms"]
  node_gold["Gold transforms<br/>[gold_transforms.py]"]
end

subgraph group_analytics["Analytics products"]
  node_admetrics["Ad metric view"]
  node_adsetmetrics["Ad set metric view"]
  node_campaignmetrics["Campaign metric view"]
  node_dashboard["AI/BI dashboard"]
end

subgraph group_genie["Genie assistant"]
  node_creategenie["Genie setup entry"]
  node_geniemanager["Genie space manager"]
  node_genieconfig["Genie semantic config"]
end

node_marketer(("Marketing data"))
node_databricks["Databricks workspace"]

node_marketer -.->|"provides ad data"| node_lfc
node_lfc -.->|"ingests to"| node_bronze
node_silver -.->|"reads"| node_bronze
node_silver -.->|"dispatches source"| node_google
node_silver -.->|"dispatches source"| node_meta
node_silver -.->|"dispatches source"| node_tiktok
node_google -->|"inherits from"| node_base
node_meta -->|"inherits from"| node_base
node_tiktok -->|"inherits from"| node_base
node_base -->|"uses schema constants"| node_schemas
node_silver -->|"uses schemas"| node_schemas
node_gold -->|"reads silver tables"| node_silver
node_gold -->|"uses gold schemas"| node_schemas
node_admetrics -->|"queries gold tables"| node_gold
node_adsetmetrics -.->|"queries gold tables"| node_gold
node_campaignmetrics -.->|"queries gold tables"| node_gold
node_dashboard -.->|"visualizes trends"| node_gold
node_creategenie -->|"invokes"| node_geniemanager
node_geniemanager -->|"builds semantic space"| node_genieconfig
node_geniemanager -->|"calls Genie API"| node_databricks
node_creategenie -.->|"deploys Genie room"| node_databricks
node_genieconfig -.->|"references gold tables"| node_gold
node_genieconfig -.->|"references metric views"| node_admetrics
node_dashboard -.->|"runs in workspace"| node_databricks

click node_base "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/sources/base.py"
click node_google "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/sources/google_ads.py"
click node_meta "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/sources/meta_ads.py"
click node_tiktok "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/sources/tiktok_ads.py"
click node_schemas "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/schemas.py"
click node_silver "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/silver_transforms.py"
click node_gold "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/gold_transforms.py"
click node_admetrics "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/metric_views/metv_ad_performance.py"
click node_adsetmetrics "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/metric_views/metv_adset_performance.py"
click node_campaignmetrics "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/metric_views/metv_campaign_performance.py"
click node_dashboard "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/dashboard/ad_genie_dashboard.lvdash.json"
click node_creategenie "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/genie_space/create_genie_space.py"
click node_geniemanager "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/genie_space/genie_space_manager.py"
click node_genieconfig "https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/genie_space/genie_space_config.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_lfc,node_bronze toneBlue
class node_base,node_google,node_meta,node_tiktok,node_schemas,node_silver,node_gold toneAmber
class node_admetrics,node_adsetmetrics,node_campaignmetrics,node_dashboard toneMint
class node_creategenie,node_geniemanager,node_genieconfig toneRose
class node_marketer,node_databricks toneIndigo
```

## Components

### Source ingestion

- **Lakeflow Connect**
- **Bronze tables**

### Data transformations

- [Source base](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/sources/base.py): `src/pipeline/sources/base.py`
- [Google Ads transforms](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/sources/google_ads.py): `src/pipeline/sources/google_ads.py`
- [Meta Ads transforms](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/sources/meta_ads.py): `src/pipeline/sources/meta_ads.py`
- [TikTok Ads transforms](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/sources/tiktok_ads.py): `src/pipeline/sources/tiktok_ads.py`
- [Table schemas](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/schemas.py): `src/pipeline/schemas.py`
- [Silver transforms](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/silver_transforms.py): `src/pipeline/silver_transforms.py`
- [Gold transforms](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/pipeline/gold_transforms.py): `src/pipeline/gold_transforms.py`

### Analytics products

- [Ad metric view](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/metric_views/metv_ad_performance.py): `src/metric_views/metv_ad_performance.py`
- [Ad set metric view](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/metric_views/metv_adset_performance.py): `src/metric_views/metv_adset_performance.py`
- [Campaign metric view](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/metric_views/metv_campaign_performance.py): `src/metric_views/metv_campaign_performance.py`
- [AI/BI dashboard](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/dashboard/ad_genie_dashboard.lvdash.json): `src/dashboard/ad_genie_dashboard.lvdash.json`

### Genie assistant

- [Genie setup entry](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/genie_space/create_genie_space.py): `src/genie_space/create_genie_space.py`
- [Genie space manager](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/genie_space/genie_space_manager.py): `src/genie_space/genie_space_manager.py`
- [Genie semantic config](https://github.com/databricks-industry-solutions/ad-genie/blob/main/src/genie_space/genie_space_config.py): `src/genie_space/genie_space_config.py`

### Other components

- **Marketing data**
- **Databricks workspace**

## Connections

- Marketing data → Lakeflow Connect: provides ad data (evidence: `README.md`)
- Lakeflow Connect → Bronze tables: ingests to (evidence: `README.md`)
- Silver transforms → Bronze tables: reads (evidence: `src/pipeline/silver_transforms.py`)
- Silver transforms → Google Ads transforms: dispatches source
- Silver transforms → Meta Ads transforms: dispatches source
- Silver transforms → TikTok Ads transforms: dispatches source
- Google Ads transforms → Source base: inherits from (evidence: `src/pipeline/sources/google_ads.py`)
- Meta Ads transforms → Source base: inherits from (evidence: `src/pipeline/sources/meta_ads.py`)
- TikTok Ads transforms → Source base: inherits from (evidence: `src/pipeline/sources/tiktok_ads.py`)
- Source base → Table schemas: uses schema constants (evidence: `src/pipeline/sources/base.py`)
- Silver transforms → Table schemas: uses schemas (evidence: `src/pipeline/silver_transforms.py`)
- Gold transforms → Silver transforms: reads silver tables (evidence: `src/pipeline/gold_transforms.py`)
- Gold transforms → Table schemas: uses gold schemas (evidence: `src/pipeline/gold_transforms.py`)
- Ad metric view → Gold transforms: queries gold tables (evidence: `src/metric_views/metv_ad_performance.py`)
- Ad set metric view → Gold transforms: queries gold tables (evidence: `src/metric_views/metv_adset_performance.py`)
- Campaign metric view → Gold transforms: queries gold tables (evidence: `src/metric_views/metv_campaign_performance.py`)
- AI/BI dashboard → Gold transforms: visualizes trends (evidence: `README.md`)
- Genie setup entry → Genie space manager: invokes (evidence: `src/genie_space/create_genie_space.py`)
- Genie space manager → Genie semantic config: builds semantic space (evidence: `src/genie_space/genie_space_manager.py`)
- Genie space manager → Databricks workspace: calls Genie API (evidence: `src/genie_space/genie_space_manager.py`)
- Genie setup entry → Databricks workspace: deploys Genie room (evidence: `README.md`)
- Genie semantic config → Gold transforms: references gold tables (evidence: `README.md`)
- Genie semantic config → Ad metric view: references metric views (evidence: `README.md`)
- AI/BI dashboard → Databricks workspace: runs in workspace (evidence: `README.md`)
