NL EN
Region: europe-west4 [v2.1.0] | status: online!
retail_platform.tf jaridata_dev.py cro_pipeline.py
// projects / retail_platform.tf

Retail-assortiment & commerce dataplatform

typeecommerce datawarehouse
statusproduction
year2024
companyLarge retailer
size~200-300m rev
physical/digitalMix
TL;DR
Een retailer had één betrouwbaar fundament nodig voor commerce- en assortimentsrapportage. Productfeeds, GA4-events, advertentiekosten, pricing en SEO-data landen nu in BigQuery — infrastructuur gedeclareerd in Terraform, extractie serverless via Cloud Functions + Scheduler, en dbt modelleert de businesslogica naar geteste, herbruikbare, rapportageklare tabellen. Een schaalbare basis voor Power BI en toekomstige Marketing Mix Modelling.
0
databronnen
0
platform-lagen
0
self-hosted datawarehouse
0
infra als code
TerraformCloud Functions Gen 2Cloud SchedulerSecret ManagerGCS
BigQuerydbt CloudGA4 ExportGoogle AdsMeta AdsPower BI
PythonSQL

Van cloud-infrastructuur tot rapportageklare datamodellen voor assortiment, e-commerce, advertising en pricing.

Context & probleem

Het retailbedrijf had behoefte aan één betrouwbaar fundament voor commerce- en assortimentsrapportage. Data zat verspreid over meerdere bronnen: GA4, advertentieplatformen, productfeeds, pricingtools en SEO-bronnen.

Zonder centrale modellering ontstaat al snel een landschap van losse exports, dashboards en definities. Omzet, marge, kanaalperformance, productbeschikbaarheid en prijspositie worden dan afhankelijk van de plek waar je kijkt.

Daarom is een platform gebouwd waarin infrastructuur, extractie, transformatie en reporting logisch van elkaar zijn gescheiden.

Architectuur

De oplossing bestaat uit drie lagen:

Cloud infrastructuur
Terraform → Cloud Functions Gen 2 → Cloud Scheduler → Secret Manager → GCS

Data landingzone
Python extractors/loaders → BigQuery raw tables

Transformatie & reporting
dbt staging → business transformations → final models → Power BI
platform-architectuur · live
PLATFORM-ARCHITECTUUR · LIVE BRONNEN GITHUB + TERRAFORM · BEHEERD WAREHOUSE BI DATA BACKBONE · INGEST SQL-transformaties beheerde tabellen Product feed GA4 export Google · Meta · Criteo Pricing API Search Console GCP billing export GitHub + Terraform infrastructure as code dbt transformaties op BigQuery Cloud Functions + Cloud Scheduler SecretManager GBQtabellen ENVvariabelen Google BigQuery staging + prod Power BI // GitHub + Terraform beheert resources, secrets, tabellen en deployment — geen console-clicks in productie
volledige visual openen ↗

Terraform beheert de cloudresources. Python-functies halen data op en laden die naar BigQuery. dbt zorgt vervolgens voor opschoning, businesslogica, tests en rapportageklare modellen.

Infrastructure-as-Code met Terraform

De Google Cloud-infrastructuur is declaratief opgezet met Terraform. Belangrijke onderdelen:

  • Cloud Functions Gen 2 voor extractie- en loadprocessen.
  • Cloud Scheduler voor dagelijkse triggers.
  • Secret Manager voor API-keys en credentials.
  • Google Cloud Storage voor deployment-artifacts.
  • IAM voor gecontroleerde toegang per workload.
  • Remote Terraform state in GCS, zodat het team veilig kan samenwerken.

Een herbruikbare Terraform-module verzorgt het zippen van Python-code, uploaden naar GCS, deployen van Cloud Functions, koppelen van secrets en instellen van invoker-rechten. Daardoor kon elke nieuwe databron volgens hetzelfde patroon worden toegevoegd.

Databronnen en loading

De serverless extractielaag haalt data op uit meerdere bronnen:

BronGebruik
Commerceplatform productfeedProductinformatie, categorieën, prijzen en beschikbaarheid
Pricing APIDagelijks eigen prijzen en concurrentieprijzen op SKU niveau
GA4 BigQuery ExportEvents, sessies, transacties en ecommerce events
Google Ads, Meta Ads, CriteoCampagnekosten, klikken, impressies, conversies en omzet
SEO / Search ConsoleOrganische performance en pagina-inzichten
GCP detailed cost exportCloud kosten op SKU niveau

De Python-loaders normaliseren nested JSON, voegen metadata toe zoals load_date en load_ts, dwingen BigQuery-schema's af en schrijven naar gepartitioneerde tabellen. Waar nodig worden dagpartities opnieuw overschreven, zodat dagelijkse runs herhaalbaar zijn zonder historische data te verliezen.

dbt-transformatielaag

De dbt-laag is opgebouwd in duidelijke lagen:

1_ga4_data_models
  staging en marts voor events, sessies, users, items en transacties

2_business_transformations
  pricing, ecommerce, advertising, SEO en billing

3_final_data_models
  rapportageklare modellen voor Power BI

GA4-data wordt eerst opgeschoond en verrijkt met sessie-, user- en traffic-source-logica. Purchase-events worden gededupliceerd, transacties worden gekoppeld aan sessiecontext en attributiondata, en e-commerce performance wordt gemodelleerd op basis van betrouwbare keys.

Voor advertentiedata worden Google Ads, Meta Ads en Criteo samengebracht in één uniform campagnemodel. Verschillen in veldnamen, devices, metrics en conversiedefinities worden centraal opgelost in dbt in plaats van in losse dashboards.

Voor pricing worden eigen prijzen naast concurrentieprijzen gezet. Daardoor ontstaan modellen met prijsverschil, prijsindex, beschikbaarheid en labels zoals competitor_cheaper, competitor_more_expensive en equal_price.

Veel modellen zijn incrementeel opgezet met BigQuery insert_overwrite op dagpartities. Hierdoor worden alleen recente dagen opnieuw verwerkt, wat kosten verlaagt en refreshes sneller maakt.

dbt model-graph · run
rawstg_ga4stg_productbusinessfinalPower BI

Wat heeft de business hieraan?

De waarde zit niet alleen in "data verzamelen", maar vooral in betere besluitvorming.

GA4-data wordt betrouwbaarder dan de interface.

In plaats van alleen naar de GA4-interface te kijken, wordt de ruwe event data uit BigQuery getransformeerd, opgeschoond, gededupliceerd en getest. Meetfouten en inconsistenties kunnen worden gecorrigeerd of uitgesloten, waardoor de rapportages kwalitatief beter zijn dan standaard interfacecijfers.

Advertentiedata leeft niet meer in silos.

Google Ads, Meta Ads en Criteo worden samengebracht in één datamodel. Daardoor kan performance over platformen heen worden vergeleken op dezelfde definities voor kosten, klikken, impressies, conversies en omzet.

Dagelijks heldere inzichten in Power BI.

De business krijgt elke dag tastbare inzichten in e-commerce performance, kanaalbijdrage, pricing, assortiment en marketingresultaten. Rapportages leunen op stabiele dbt-modellen in plaats van op losse exports of handmatige berekeningen.

Fundament voor Marketing Mix Modelling en geavanceerde analyses.

Omdat performance-data, advertentiekosten, e-commercegedrag en productcontext centraal beschikbaar zijn, ontstaat een basis voor meer geavanceerde toepassingen zoals Marketing Mix Modelling, attributie-analyse, forecasting en commerciële optimalisatie.

Engineeringbeslissingen die ertoe doen

  1. Alles als code. Cloudresources worden beheerd met Terraform, waardoor infrastructuur reproduceerbaar en reviewbaar is.
  2. Serverless extractie. Cloud Functions draaien alleen wanneer nodig. Geen servers, geen idle compute.
  3. Secrets buiten de code. Credentials worden beheerd via Secret Manager en alleen runtime beschikbaar gemaakt.
  4. dbt als centrale businesslaag. Definities zoals omzet, marge, kanaal, prijspositie en campagneperformance zitten in SQL-modellen, niet verspreid over Power BI.
  5. Incrementele BigQuery-modellen. Dagpartities worden slim opnieuw verwerkt, waardoor het platform schaalbaar blijft.
  6. Van silo's naar geïntegreerde modellen. Productdata, GA4, pricing en advertising worden niet los gerapporteerd, maar met elkaar verbonden in één analytisch fundament.

Resultaat

Het project leverde een productiegericht datafundament op voor retail analytics:

  • declaratieve cloud-infrastructuur met Terraform
  • dagelijkse serverless dataloads naar BigQuery
  • veilige credentialafhandeling via Secret Manager
  • opgeschoonde en geteste GA4-modellen
  • geïntegreerde advertisingmodellen over meerdere platformen
  • pricingmodellen voor concurrentieanalyse
  • rapportageklare datasets voor Power BI
  • basis voor geavanceerde toepassingen zoals Marketing Mix Modelling
Dagelijkse sturing vanuit één datalaag.

Het platform maakt dagelijkse sturing mogelijk op assortiment, marketingperformance, e-commercegedrag en prijspositie vanuit één betrouwbare datalaag.

Status

Het platform vormt de basis voor dagelijkse rapportage en verdere doorontwikkeling van het retail datawarehouse. De combinatie van Terraform, BigQuery, dbt en Power BI maakt het schaalbaar, onderhoudbaar en geschikt voor toekomstige analytics use cases.