library(dplyr)
library(lubridate)
set.seed(123)
# Create 90 days of data
dates <- seq.Date(from = as.Date("2024-01-01"),
to = as.Date("2024-03-31"),
by = "day")
campaigns <- c("Brand Awareness", "Retargeting", "Search",
"Social Media", "Influencer", "Email")
df <- expand.grid(
date = dates,
campaign = campaigns
)
# Generate synthetic metrics
df <- df |>
mutate(
spend = round(runif(n(), 50, 500), 2),
impressions = round(runif(n(), 5000, 50000)),
clicks = round(impressions * runif(n(), 0.005, 0.03)),
conversions = round(clicks * runif(n(), 0.02, 0.15)),
revenue = round(conversions * runif(n(), 20, 150), 2)
) |>
mutate(
CTR = clicks / impressions,
CPC = spend / clicks,
CPA = spend / conversions,
ROAS = revenue / spend
)
write.csv(df, "data/marketing_data.csv", row.names = FALSE)