Executive Summary
Designed and implemented comprehensive marketing analytics framework for YP Advertising (a division of AT&T), analyzing 100+ digital campaigns across search, display, and local advertising channels. Delivered data-driven insights that improved ROAS (Return on Ad Spend) by 20%, reduced customer acquisition costs by 15%, and enabled real-time campaign optimization for 500+ small business clients.
This was my first role where I got to see the direct impact of data on real businesses. These weren't faceless enterprise accounts—they were local plumbers, dentists, and pizza shop owners whose livelihoods depended on getting their advertising right. When I helped a struggling family restaurant double their phone orders through better campaign targeting, I knew data analytics was my calling.
Campaign Scope
100+ digital campaigns analyzed; 500+ clients; $8.5M monthly ad spend tracked across Google Ads, Bing, Facebook, display networks.
Performance Gains
20% ROAS improvement; 15% CAC reduction; 35% increase in conversion tracking accuracy; 25% faster campaign optimization cycles.
Impact
$1.7M annual cost savings; automated reporting saved 40+ hours weekly; enabled self-service analytics for account managers.
Business Challenge
- Fragmented Data Sources: Campaign data siloed across Google Ads, Bing, Facebook, internal CRM, billing systems — no unified view of performance
- Manual Reporting: Account managers spending 20+ hours weekly compiling spreadsheets for client reports, delaying optimization decisions
- Attribution Gaps: Inability to track customer journey across multiple touchpoints; last-click attribution severely undervalued upper-funnel efforts
- ROI Uncertainty: Clients demanding clearer connection between ad spend and business outcomes (calls, store visits, purchases)
- Audience Insights: Limited segmentation capabilities; campaigns treated all customers the same despite varying lifetime values
- Competitive Pressure: Local advertising market becoming commoditized; needed differentiation through superior analytics and insights
Walking into a room full of account managers drowning in spreadsheets, I realized the problem wasn't just "too much manual work"—it was that they couldn't answer the most basic client question: "Is my advertising working?" A local florist shouldn't need an MBA to understand their marketing ROI. My goal became radical simplification: one dashboard, one number, one clear answer.
Campaign Performance Dashboard
Real-time analytics dashboard providing comprehensive visibility into campaign performance across Google Ads, Bing, Facebook, and display networks. Enabled account managers and clients to monitor KPIs, identify optimization opportunities, and track ROI across the customer journey.
Campaign Performance by Channel
Google Ads delivered highest ROAS at 4.8x. Display network underperformed; reallocated 25% of budget to search.
Customer Journey Conversion Funnel
69% lead-to-conversion rate. Drop-off analysis identified form complexity as primary barrier; simplified from 12 to 6 fields.
We were losing 40% of leads at the form stage. Everyone assumed mobile was broken. But when I analyzed the funnel by device AND form completion time, I found desktop users were abandoning just as fast. The 12-field form asked for "Company Size" and "Annual Revenue"—questions a local electrician doesn't know or care about. Cutting to 6 essential fields (name, phone, service needed) nearly doubled our conversion rate overnight.
Campaign Performance Trend (Last 90 Days)
Steady ROAS improvement from 3.1x to 4.2x over 90 days through audience segmentation, bid optimization, and negative keyword expansion.
Top Performing Audience Segments
| Segment | Impressions | CTR | Conversions | ROAS | Customer LTV |
|---|---|---|---|---|---|
| Small Business Owners | 850K | 4.2% | 3,200 | 5.1x | $1,850 |
| Professional Services | 410K | 3.9% | 2,100 | 4.8x | $1,780 |
| Local Service Providers | 720K | 3.8% | 2,800 | 4.6x | $1,620 |
| Retail Storefronts | 620K | 3.5% | 2,450 | 4.3x | $1,490 |
| Healthcare Providers | 380K | 3.3% | 1,560 | 4.0x | $1,390 |
| Home Services | 340K | 3.1% | 1,340 | 3.8x | $1,280 |
Small Business Owners and Professional Services segments delivered highest ROAS and LTV. Allocated 40% of budget to these high-performing segments.
Everyone wanted to chase law firms and dentists because of their high LTV. But I discovered something counterintuitive: pizza shops had the lowest individual LTV but the highest referral rate. One happy pizzeria owner told five friends. Those "low value" accounts were actually our best acquisition channel—we just never measured word-of-mouth. This completely changed how we thought about customer lifetime value.
Interactive Tableau Dashboard Suite
The complete Tableau dashboard platform includes:
- Real-time campaign performance monitoring across all channels with automated hourly refreshes
- Multi-touch attribution modeling showing weighted customer journey touchpoints (first 40%, middle 20%, last 40%)
- Audience segment performance analysis with RFM scoring and LTV prediction capabilities
- Keyword and ad copy performance drill-down with quality score and impression share metrics
- Budget pacing alerts and automated anomaly detection for underperforming campaigns
- Client-facing white-label dashboards with customizable KPI thresholds and branding
- Competitive benchmarking showing performance vs. industry averages and peer campaigns
Note: Dashboards integrated with Google Ads, Bing, Facebook APIs with daily automated data refresh. Self-service analytics enabled for 15 account managers and 500+ clients. Contact for live demo access.
Data Architecture & Integration
Implementation Phases
Phase 1: Data Integration (Months 1-2)
- Established API connections to Google Ads, Bing, Facebook for automated data extraction
- Built Python scripts to standardize data formats across platforms
- Created SQL Server data warehouse with campaign and customer dimensional models
- Implemented daily ETL jobs to refresh data overnight
- Connected CRM and billing systems for revenue attribution
Phase 2: Metric Definition & KPI Framework (Month 3)
- Collaborated with account managers and clients to define success metrics
- Standardized KPI calculations (ROAS, CAC, LTV, CTR, conversion rate) across all campaigns
- Implemented multi-touch attribution model (weighted first/last/linear)
- Created data quality checks and anomaly detection rules
- Documented business logic and metric definitions in data dictionary
During one meeting, three account managers quoted three different ROAS numbers for the same client. One used revenue/spend, another used profit/spend, and the third excluded returns. That moment taught me that standardization isn't bureaucracy—it's the foundation of trust. We spent an entire week just aligning on definitions before building anything, and it saved us months of arguments later.
Phase 3: Dashboard Development (Months 4-6)
- Designed Tableau dashboard prototypes with 5 account managers (iterative feedback)
- Built 3 core dashboards: Campaign Performance, Audience Insights, ROI Attribution
- Implemented drill-down capabilities from campaign → ad group → keyword level
- Created client-facing dashboards with white-label branding
- Enabled self-service analytics with filters and parameter controls
Phase 4: Audience Segmentation (Months 7-9)
- Analyzed customer transaction history and behavioral data to identify high-value segments
- Developed RFM (Recency, Frequency, Monetary) segmentation model
- Built predictive LTV model using logistic regression
- Created lookalike audiences for prospecting campaigns
- A/B tested segment-specific messaging and offers
Our RFM model kept flagging HVAC companies as "at-risk" every spring because their winter activity dropped. Classic false positive. But this mistake led to a breakthrough: we built season-adjusted scoring that recognized industry patterns. An HVAC company quiet in April was normal; a tax preparer quiet in April was actually churning. This nuance improved our retention predictions by 40%.
Phase 5: Automation & Scale (Months 10-12)
- Automated weekly client reports sent via email (500+ clients)
- Built alerting system for budget pacing and performance anomalies
- Created Excel templates with Tableau data extracts for offline analysis
- Trained 15 account managers on dashboard usage and data interpretation
- Documented processes and created knowledge base for ongoing support
Key Code Example: Multi-Touch Attribution
SQL — Weighted Attribution Model
-- Multi-touch attribution model with weighted credit
-- First touch: 40%, Last touch: 40%, Middle touches: 20% distributed
WITH customer_touchpoints AS (
SELECT
c.customer_id,
c.conversion_date,
c.conversion_revenue,
ct.touchpoint_date,
ct.campaign_id,
ct.channel,
ct.ad_spend,
ROW_NUMBER() OVER (
PARTITION BY c.customer_id, c.conversion_date
ORDER BY ct.touchpoint_date ASC
) AS touch_sequence,
COUNT(*) OVER (
PARTITION BY c.customer_id, c.conversion_date
) AS total_touches
FROM conversions c
INNER JOIN campaign_touchpoints ct
ON c.customer_id = ct.customer_id
AND ct.touchpoint_date <= c.conversion_date
AND ct.touchpoint_date >= DATEADD(day, -30, c.conversion_date)
),
attributed_revenue AS (
SELECT
customer_id,
conversion_date,
conversion_revenue,
campaign_id,
channel,
ad_spend,
touch_sequence,
total_touches,
CASE
-- First touch gets 40%
WHEN touch_sequence = 1 THEN conversion_revenue * 0.40
-- Last touch gets 40%
WHEN touch_sequence = total_touches THEN conversion_revenue * 0.40
-- Middle touches split remaining 20%
ELSE conversion_revenue * 0.20 / NULLIF(total_touches - 2, 0)
END AS attributed_revenue
FROM customer_touchpoints
)
SELECT
campaign_id,
channel,
SUM(ad_spend) AS total_ad_spend,
SUM(attributed_revenue) AS total_attributed_revenue,
SUM(attributed_revenue) / NULLIF(SUM(ad_spend), 0) AS roas,
COUNT(DISTINCT customer_id) AS influenced_customers
FROM attributed_revenue
GROUP BY campaign_id, channel
ORDER BY total_attributed_revenue DESC;
Everyone wanted me to use a fancy machine learning model for attribution. But when I interviewed account managers, they needed something they could explain to a pizza shop owner in 30 seconds. "The first ad that caught your attention gets credit. The last ad before you called gets credit. Everything in between shares the rest." That story resonated. Sometimes the best model isn't the most sophisticated one—it's the one people actually believe and act on.
Results & Impact
20% ROAS Improvement
Average return on ad spend increased from 3.5x to 4.2x through better targeting, bid optimization, and audience segmentation.
15% CAC Reduction
Customer acquisition costs dropped from $100 to $85 by identifying and focusing on high-converting audience segments.
$1.7M Annual Savings
Improved campaign efficiency and reduced wasted ad spend on underperforming keywords and placements.
40 Hours Weekly Saved
Automated reporting eliminated manual data compilation, freeing account managers for strategic optimization work.
35% Attribution Accuracy
Multi-touch attribution revealed that 35% of conversions were incorrectly attributed to last-click, validating upper-funnel investments.
500+ Clients Enabled
Self-service dashboards empowered clients to monitor their campaigns in real-time, increasing transparency and satisfaction.
I built the dashboards for account managers, assuming clients wouldn't care about the technical details. Wrong. A 67-year-old locksmith became our biggest dashboard power user. He'd call his account manager to brag about his week-over-week CTR improvements. That's when I realized: people don't hate data, they hate feeling confused by it. Give them something clear, and they'll become data enthusiasts.
Technical Challenges & Solutions
Challenge: API Rate Limits
Issue: Google Ads and Facebook APIs had strict rate limits, causing ETL failures when pulling data for 500+ clients.
Solution: Implemented batching strategy with exponential backoff retry logic. Prioritized high-spend campaigns for real-time sync, pulled low-spend campaigns once daily. Added queuing system to spread API calls across the day.
Challenge: Duplicate Conversion Tracking
Issue: Pixels on client websites sometimes fired multiple times, inflating conversion counts by 15-20%.
Solution: Built deduplication logic based on customer_id + timestamp window (5 minutes). Added conversion quality score to flag suspicious patterns. Worked with web team to implement proper pixel placement.
Challenge: Cross-Device Attribution
Issue: Customers often researched on mobile but converted on desktop, making attribution difficult.
Solution: Implemented probabilistic device graph using hashed email addresses and phone numbers from CRM. Matched ~60% of conversions to previous mobile touchpoints, revealing mobile's true upper-funnel value.
My first cross-device solution used raw email addresses. It worked beautifully until our security team (rightfully) shut it down. That failure taught me to always think about privacy from Day 1, not as an afterthought. The hashed approach actually worked better because it forced cleaner matching logic. Sometimes constraints make you build better solutions.
Challenge: Dashboard Performance at Scale
Issue: Tableau dashboards became slow when filtering across 100+ campaigns with 2+ years of historical data.
Solution: Created aggregated summary tables for common queries. Implemented incremental extracts instead of full refreshes. Added data source filters to limit query scope. Optimized calculations to use fixed LOD expressions.
Key Learnings
Three years into this role, I realized the most valuable thing I built wasn't the dashboard or the attribution model—it was trust. When account managers stopped double-checking my numbers and started making decisions based on them, that's when I knew we'd succeeded. Technical excellence matters, but earning the confidence of people who depend on your data? That's the real win.
- Last-click attribution significantly undervalues upper-funnel campaigns. Multi-touch models revealed that awareness and consideration channels drove 35% more conversions than credited under last-click.
- Audience segmentation unlocks 2-3x performance improvements. Treating all customers the same wastes budget — targeting high-LTV segments dramatically improved ROAS.
- Self-service analytics empowers faster decision-making. Giving account managers and clients direct dashboard access eliminated bottlenecks and enabled real-time optimization.
- Automated reporting is non-negotiable at scale. Manually compiling reports for 500+ clients is impossible — automation was critical to scaling the business.
- Data quality is the foundation of trust. Early investment in validation rules and anomaly detection prevented countless errors and maintained stakeholder confidence.
- Collaboration with stakeholders ensures adoption. Iterative dashboard design with account managers (not in isolation) ensured the final product met real business needs.