Salta el contingut

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:

  1. Calcula el ROAS per a cada id_campanya_canonic i indica quina plataforma (Google Ads o Meta Ads) dona més retorn per euro invertit per a l'Hotel Sa Palomera.
  2. 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