Pemodelan Data Pemasaran
Tabel yang bersih dan tergabung
Pemodelan Data Pemasaran adalah pelajaran Digital Marketing Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Digital Marketing Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Digital Marketing Academy mencakup 4 pelajaran total.
Mengapa Perlu Membuat Model
Tabel mentah dari konektor biasanya berantakan: nama kolom tidak konsisten, mata uang bercampur, tingkat perincian berbeda, dan memiliki kekhasan khusus platform. Membuat kueri secara langsung terhadap tabel tersebut menghasilkan angka yang salah dan tidak dapat direproduksi.
Pemodelan data adalah disiplin untuk mengubah baris mentah menjadi tabel yang bersih, konsisten, dan siap digunakan oleh bisnis. Di sinilah ROAS, konversi, dan pendapatan didefinisikan satu kali dengan benar, sehingga setiap laporan memberikan hasil yang sama.
Skema Bintang
Model analitik yang paling umum adalah skema bintang: tabel fakta pusat yang berisi peristiwa terukur, dikelilingi tabel dimensi yang menjelaskannya. Fakta menyimpan angka seperti belanja, klik, dan pendapatan; dimensi menyimpan konteks seperti kampanye, tanggal, kanal, dan pelanggan.
Struktur ini mudah dipahami oleh pemasar dan efisien bagi alat BI, yang menggabungkan satu fakta dengan beberapa dimensi untuk menguraikan metrik berdasarkan atribut apa pun.
dim_date
|
dim_channel -- fct_ad_spend -- dim_campaign
|
dim_account
fct_ad_spend (facts): impressions, clicks, cost, conversions
dims: who / what / when contextFakta vs Dimensi
Tabel fakta bersifat panjang dan aditif: satu baris untuk setiap peristiwa atau setiap kombinasi hari dan kampanye, dengan ukuran numerik yang dapat Anda jumlahkan. Tabel dimensi bersifat lebar dan deskriptif: satu baris untuk setiap kampanye atau pelanggan, dengan atribut yang dapat Anda gunakan untuk memfilter dan mengelompokkan.
Pengujiannya: jika nilainya akan Anda masukkan ke dalam SUM, berarti itu fakta; jika nilainya akan Anda gunakan dalam GROUP BY, berarti itu dimensi. Belanja adalah fakta; nama kampanye adalah dimensi.
fct_ad_spend dim_campaign
---------------- ----------------
date campaign_id (PK)
campaign_id (FK) campaign_name
cost <-SUM-> channel
clicks <-SUM-> objective
conversions start_dateTingkat Perincian: Keputusan Pertama
Tingkat perincian adalah hal yang direpresentasikan oleh satu baris tabel fakta. Menetapkannya terlebih dahulu merupakan keputusan pemodelan yang paling penting. Mencampur tingkat perincian, seperti baris harian dengan total sepanjang masa, akan menyebabkan penghitungan ganda dan merusak setiap metrik setelahnya.
Nyatakan tingkat perincian dengan bahasa sederhana: satu baris untuk setiap kampanye pada setiap hari. Dengan demikian, setiap kolom harus benar pada tingkat tersebut dan setiap pemuatan harus mematuhinya.
Declared grain: one row per campaign per day
-- enforce uniqueness on the grain
SELECT date, campaign_id, COUNT(*)
FROM fct_ad_spend
GROUP BY 1,2
HAVING COUNT(*) > 1; -- must return 0 rowsModel Penahapan
Sebelum membuat fakta dan dimensi, buatlah model penahapan: satu untuk setiap tabel sumber, dengan menamai ulang kolom sesuai standar, mengonversi tipe, dan menstandarkan satuan seperti sen menjadi dolar serta tanggal UTC. Satu model penahapan memetakan satu tabel mentah, tidak lebih.
Penahapan adalah lapisan pembersihan. Lapisan ini mengisolasi kekhasan sumber sehingga bagian data setelahnya tidak perlu mengetahui bahwa Meta menyebutnya belanja, sedangkan Google menyebutnya biaya.
-- stg_google_ads__spend
SELECT
date AS spend_date,
campaign_id,
'google' AS channel,
cost_micros / 1000000 AS cost, -- micros -> dollars
clicks,
conversions
FROM raw.google_ads__campaign_stats;Menggabungkan Kanal
Setiap platform iklan membuat laporan dengan cara yang berbeda, tetapi setelah penahapan, semuanya memiliki struktur umum. Model berikutnya menggabungkannya menjadi satu fakta belanja lintas kanal, yang menjadi dasar pelaporan gabungan.
Tabel tunggal inilah yang memungkinkan penghitungan ROAS total. Karena setiap kanal telah diseragamkan ke kolom yang sama, satu kueri dapat menjumlahkan belanja Google, Meta, dan TikTok sekaligus.
-- fct_ad_spend: union all channels
SELECT * FROM stg_google_ads__spend
UNION ALL
SELECT * FROM stg_meta_ads__spend
UNION ALL
SELECT * FROM stg_tiktok_ads__spend;
-- now: SUM(cost) GROUP BY channel worksDimensi Terstandar
Untuk analisis lintas kanal, dimensi harus terstandar: dimensi tanggal dan dimensi kanal bersama yang digabungkan secara identik oleh setiap fakta. Dengan demikian, "pendapatan berdasarkan bulan dan kanal" memiliki arti yang sama, baik sumbernya iklan, surel, maupun situs web.
Dimensi terstandar memungkinkan Anda menempatkan belanja dan pendapatan berdampingan dalam satu grafik. Tanpa dimensi tersebut, penggabungan menjadi tidak selaras dan totalnya diam-diam berbeda.
Conformed dims shared across facts:
dim_date -> joined by every fact on date
dim_channel -> 'google','meta','email','organic'
dim_campaign -> unified campaign keys
-> spend and revenue line up on the same axesAtribusi dalam SQL
Atribusi memberikan kredit atas konversi kepada titik-titik kontak. Klik terakhir adalah cara yang paling sederhana: sumber pemasaran terakhir sebelum konversi menerima seluruh kredit. Klik pertama, linier, dan berbasis posisi membagi kredit dengan cara yang berbeda.
Di dalam gudang data, Anda menerapkan atribusi sebagai model, bukan sebagai kotak hitam milik platform. Dengan data tingkat peristiwa GA4, Anda dapat mengelompokkan titik kontak per pengguna menggunakan fungsi jendela dan menerapkan aturan apa pun, lalu membandingkan hasil berbagai model secara objektif.
-- last non-direct click per conversion
WITH touches AS (
SELECT user_id, channel, event_time,
ROW_NUMBER() OVER (PARTITION BY user_id
ORDER BY event_time DESC) AS rn
FROM web_touchpoints
WHERE channel <> 'direct'
)
SELECT channel, COUNT(*) FROM touches WHERE rn=1
GROUP BY 1;Dimensi yang Berubah Perlahan
Atribut dimensi berubah seiring waktu: pemilik anggaran suatu kampanye dapat berganti, dan tingkat pelanggan dapat meningkat. Dimensi yang berubah perlahan Tipe 2 mempertahankan riwayat dengan menambahkan baris baru yang memiliki tanggal keberlakuan, bukan menimpa data lama.
Hal ini penting untuk pelaporan yang akurat pada waktu tertentu. Untuk mengetahui segmen pelanggan saat mereka melakukan konversi, Anda memerlukan versi dimensi yang berlaku pada saat itu, bukan versi hari ini.
dim_customer (SCD Type 2)
cust_id tier valid_from valid_to is_current
101 free 2026-01-01 2026-04-01 false
101 pro 2026-04-01 9999-12-31 true
-- join on event_date BETWEEN valid_from AND valid_toPengujian dan Dokumentasi
Model adalah kode, jadi lakukan pengujian terhadapnya. Alat seperti dbt memungkinkan Anda memverifikasi bahwa kunci bersifat unik dan tidak kosong, nilai kanal termasuk dalam himpunan yang diizinkan, serta hubungan antartabel tetap berlaku.
Pengujian mendeteksi pergeseran skema dan penggabungan yang salah sebelum masalah tersebut mencapai dasbor. Jika dipadukan dengan dokumentasi dan silsilah data yang dibuat otomatis, pengujian membuat model dapat dipercaya dan mudah dipahami anggota baru, bukan menjadi kotak hitam yang rapuh.
# dbt schema test
models:
- name: fct_ad_spend
columns:
- name: campaign_id
tests: [not_null]
- name: channel
tests:
- accepted_values:
values: ['google','meta','tiktok']Tabel Tematik: Lapisan Terakhir
Lapisan teratas adalah tabel tematik: tabel siap bisnis yang dibentuk untuk audiens tertentu, seperti tabel tematik marketing_performance yang sudah menggabungkan belanja dengan pendapatan dan menghitung ROAS per kanal per hari.
Alat BI hanya membaca dari tabel tematik. Dengan melakukan penggabungan dan agregasi terlebih dahulu di sini, dasbor tetap cepat dan murah, serta setiap analis menggunakan definisi yang sama dan benar.
-- marts.marketing_performance (1 row / day / channel)
SELECT s.spend_date, s.channel,
SUM(s.cost) AS spend,
SUM(r.revenue) AS revenue,
SAFE_DIVIDE(SUM(r.revenue), SUM(s.cost)) AS roas
FROM fct_ad_spend s
LEFT JOIN fct_revenue r USING (spend_date, channel)
GROUP BY 1,2;Pemeriksaan Singkat
Anda sedang membangun tabel fakta untuk kinerja iklan dan harus menghindari penghitungan ganda. Apa hal terpenting yang harus ditetapkan sebelum menulis kolom apa pun?
Rekap
Pemodelan mengubah tabel mentah yang berantakan menjadi data tepercaya dan siap digunakan bisnis melalui beberapa lapisan: area penahapan membersihkan dan menyeragamkan setiap sumber, tabel fakta dan dimensi yang diselaraskan membentuk skema bintang, dan mart menggabungkan semuanya terlebih dahulu untuk BI.
Tetapkan tingkat rincian terlebih dahulu, gabungkan kanal untuk metrik gabungan, terapkan atribusi dan riwayat SCD Tipe 2 dalam SQL, lalu uji setiap model agar kesalahan angka segera terlihat, bukan malah sampai ke dasbor.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pemodelan Data Pemasaran” gratis?
Ya — teks lengkap “Pemodelan Data Pemasaran” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Digital Marketing Academy, upgrade ke CoddyKit PRO. Kursus Digital Marketing Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pemodelan Data Pemasaran”?
Tabel yang bersih dan tergabung Kamu berlatih Digital Marketing Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Digital Marketing Academy?
Tidak diperlukan pengalaman sebelumnya. Digital Marketing Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Pemodelan Data Pemasaran” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Digital Marketing Academy ini?
Ya. Setiap pelajaran Digital Marketing Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengapa Gudang Data
- ETL dan Konektor
- Pemodelan Data Pemasaran
- Dasbor yang Mendorong Tindakan