Projecte 3 — Costa Brava Digital
| Camp | Valor |
|---|---|
| Empresa | Costa Brava Digital (agència de màrqueting, oficina a Blanes) |
| Sector | Màrqueting digital / publicitat |
| Nivell | Júnior-Mitjà — el teu tercer encàrrec: moltes fonts, un sol client |
| Durada estimada | 6-7 hores |
| Blocs relacionats | Bloc 3 (MongoDB), Bloc 4 (arquitectura de dades), Bloc 5 (ETL) |
Context
Costa Brava Digital gestiona la publicitat online d'una vintena de restaurants i hotels de la zona. El seu client més important, l'Hotel Sa Palomera (fictici), vol un informe mensual únic que combini el rendiment de totes les seves campanyes. El problema: cada plataforma publicitària exporta les dades amb el seu propi format, les seves pròpies unitats i, sovint, amb noms de campanya lleugerament diferents per referir-se al mateix anunci.
Les tres fonts de dades
1. Google Ads (export CSV)
Campanya,Clics,Impressions,Cost (EUR),Data
"Hotel Sa Palomera - Estiu 2026",1204,45021,312.50,2026-06-01
"Hotel Sa Palomera - Estiu 2026",1189,44300,298.10,2026-06-02
2. Meta Ads / Instagram (export CSV, en anglès i amb el cost en cèntims)
campaign_name,clicks,impressions,spend_cents,date
"SaPalomera_Summer26",980,38500,27340,2026-06-01
"SaPalomera_Summer26",1050,39200,28900,2026-06-02
3. Analítica web (events JSON, emmagatzemats a MongoDB)
{"session_id": "a83f...", "utm_campaign": "hotel-sapalomera-estiu2026", "event": "reserva_completada", "valor": 340.00, "timestamp": "2026-06-01T14:22:00Z"}
El problema de reconciliació: les tres fonts es refereixen a la mateixa campanya ("Hotel Sa Palomera — Estiu 2026") amb tres noms diferents ("Hotel Sa Palomera - Estiu 2026", "SaPalomera_Summer26", "hotel-sapalomera-estiu2026"), i el cost ve en unitats diferents (euros, cèntims).
Datasets
Les dades cobreixen el mes de juny de 2026 per a tres clients de l'agència (Hotel Sa Palomera, Restaurant Es Portal i Apartaments Blau Marí), cadascun amb la seva pròpia campanya i noms diferents a cada font.
| Fitxer | Contingut | Files |
|---|---|---|
google_ads_export.csv |
Export de Google Ads: Campanya, Clics, Impressions, Cost (EUR), Data |
90 |
meta_ads_export.csv |
Export de Meta Ads: campaign_name, clicks, impressions, spend_cents, date |
90 |
events_web.jsonl |
Events de conversió web (reserva_completada) amb utm_campaign i valor, un JSON per línia |
1.320 |
Dia 1 — Ingesta de les tres fonts
Tasca: carrega cadascuna de les tres fonts al seu format natural: els dos CSV a un DataFrame de pandas, i els events JSON a una col·lecció MongoDB events_web. Justifica per què l'analítica web (dades semiestructurades, d'esquema variable segons el tipus d'event) encaixa millor a MongoDB que en una taula relacional, mentre que els exports d'Ads sí que encaixen bé en una taula.
Dia 2 — Construir la taula de reconciliació
Tasca: crea una taula de mapeig campanyes_canonique que relacioni cada nom de campanya de cada plataforma amb un únic id_campanya_canonic:
| id_campanya_canonic | nom_google_ads | nom_meta_ads | utm_campaign_web |
|---|---|---|---|
| CAMP-001 | Hotel Sa Palomera - Estiu 2026 | SaPalomera_Summer26 | hotel-sapalomera-estiu2026 |
Amb aquesta taula de mapeig, escriu el codi (Python o SQL) que uneixi les tres fonts en una sola taula normalitzada amb columnes: id_campanya_canonic, data, clics, impressions, cost_euros, reserves, ingressos. Recorda convertir els cèntims de Meta Ads a euros abans d'unir-ho tot.
Dia 3 — Mètriques unificades i alertes de qualitat
Amb les dades ja reconciliades, cal calcular el ROAS (Return On Ad Spend: ingressos / cost) per campanya i per plataforma.
Tasca:
- Calcula el ROAS per a cada
id_campanya_canonici indica quina plataforma (Google Ads o Meta Ads) dona més retorn per euro invertit per a l'Hotel Sa Palomera. - Afegeix una validació de qualitat (a l'estil del Bloc 5): què hauria de passar si un dia arriba l'export de Google Ads però no arriba el de Meta Ads (per un error de l'API)? Proposa una regla concreta (per exemple, marcar el ROAS d'aquell dia com a "parcial" en lloc de calcular-lo amb dades incompletes).
Dia 4 — Presentació al client
Tasca: construeix un informe (dashboard o document) per a l'Hotel Sa Palomera que mostri l'evolució mensual del ROAS combinat, i una recomanació d'una frase sobre si cal reassignar pressupost entre plataformes.
Lliurament
- Codi d'ingesta de les tres fonts (Dia 1).
- Taula de mapeig de campanyes i codi de reconciliació (Dia 2).
- Càlcul de ROAS i regla de qualitat per a dades parcials (Dia 3).
- Informe o dashboard final per al client (Dia 4).
Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027