Đây là bộ dữ liệu Marketing Campaign Dataset với 1,058 chiến dịch từ 5 công ty công nghệ, ghi nhận hiệu suất đa dạng các loại hình marketing (Email, Influencer, Social Media, Display Ads, Search) từ 1/2021 đến 11/2021. Dữ liệu bao gồm các metrics quan trọng như Conversion Rate, Acquisition Cost, ROI, Clicks, Impressions và Engagement Score, nhắm đến nhiều phân khúc khách hàng (Tech Enthusiasts, Health & Wellness, Fashionistas…) qua đa kênh và ngôn ngữ, cung cấp nền tảng toàn diện cho phân tích và tối ưu hóa chiến lược marketing data-driven.
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(readr)
library(knitr)
library(ggplot2)
da <- read.csv("C:/Users/ASUS/Desktop/dulieu/marketing_campaign_dataset.csv")
head(da)Ý nghĩa của các biến:
1. Company: Tên công ty thực hiện chiến dịch.
2. Campaign_Type: Loại hình chiến dịch marketing.
- Email: Email marketing.
- Influencer: Tiếp thị qua người có sức ảnh hưởng.
- Display: Quảng cáo hiển thị.
- Search: Quảng cáo tìm kiếm.
- Social Media: Mạng xã hội.
3. Target_Audience: Nhóm đối tượng mục tiêu
- Phân theo giới tính và độ tuổi.
4. Duration: Thời gian chạy chiến dịch (ngày).
5. Channel_Used: Kênh phân phối chiến dịch.
- Google Ads, YouTube, Instagram, Facebook, Email, Website.
6. Conversion_Rate: Tỷ lệ chuyển đổi - phần trăm người dùng
thực hiện hành động mong muốn.
7. Acquisition_Cost: Chi phí thu hút khách hàng.
8. ROI (Return on Investment): Tỷ suất hoàn vốn.
9. Location: Địa điểm triển khai chiến dịch.
10. Language: Ngôn ngữ sử dụng trong chiến dịch.
11. Clicks: Số lượt nhấp chuột vào quảng cáo.
12. Impressions: Số lần quảng cáo được hiển thị.
13. Engagement_Score: Đo lường mức độ tương tác.
14. Customer_Segment: Phân khúc khách hàng.
- Health & Wellness: Sức khỏe.
- Fashionistas: Thời trang.
- Outdoor Adventurers: Du lịch ngoài trời.
- Tech Enthusiasts: Công nghệ.
- Foodies: Ẩm thực.
15. Date: Ngày thực hiện chiến dịch.
## [1] "Company" "Campaign_Type" "Target_Audience" "Duration"
## [5] "Channel_Used" "Conversion_Rate" "Acquisition_Cost" "ROI"
## [9] "Location" "Language" "Clicks" "Impressions"
## [13] "Engagement_Score" "Customer_Segment" "Date"
## 'data.frame': 200000 obs. of 15 variables:
## $ Company : chr "Innovate Industries" "NexGen Systems" "Alpha Innovations" "DataTech Solutions" ...
## $ Campaign_Type : chr "Email" "Email" "Influencer" "Display" ...
## $ Target_Audience : chr "Men 18-24" "Women 35-44" "Men 25-34" "All Ages" ...
## $ Duration : chr "30 days" "60 days" "30 days" "60 days" ...
## $ Channel_Used : chr "Google Ads" "Google Ads" "YouTube" "YouTube" ...
## $ Conversion_Rate : num 0.04 0.12 0.07 0.11 0.05 0.07 0.13 0.08 0.09 0.09 ...
## $ Acquisition_Cost: chr "$16,174.00" "$11,566.00" "$10,200.00" "$12,724.00" ...
## $ ROI : num 6.29 5.61 7.18 5.55 6.5 4.36 2.86 5.55 6.73 3.78 ...
## $ Location : chr "Chicago" "New York" "Los Angeles" "Miami" ...
## $ Language : chr "Spanish" "German" "French" "Mandarin" ...
## $ Clicks : int 506 116 584 217 379 100 817 624 861 642 ...
## $ Impressions : int 1922 7523 7698 1820 4201 1643 8749 7854 1754 3856 ...
## $ Engagement_Score: int 6 7 1 7 3 1 10 7 6 3 ...
## $ Customer_Segment: chr "Health & Wellness" "Fashionistas" "Outdoor Adventurers" "Health & Wellness" ...
## $ Date : chr "01/01/2021" "02/01/2021" "03/01/2021" "04/01/2021" ...
da$Date <- as.Date(da$Date, format = "%d/%m/%Y")
da$Acquisition_Cost <- as.numeric(gsub("[\\$,]", "", da$Acquisition_Cost))
da$Duration <- as.numeric(gsub(" days", "", da$Duration))
str(da)## 'data.frame': 200000 obs. of 15 variables:
## $ Company : chr "Innovate Industries" "NexGen Systems" "Alpha Innovations" "DataTech Solutions" ...
## $ Campaign_Type : chr "Email" "Email" "Influencer" "Display" ...
## $ Target_Audience : chr "Men 18-24" "Women 35-44" "Men 25-34" "All Ages" ...
## $ Duration : num 30 60 30 60 15 15 60 45 15 15 ...
## $ Channel_Used : chr "Google Ads" "Google Ads" "YouTube" "YouTube" ...
## $ Conversion_Rate : num 0.04 0.12 0.07 0.11 0.05 0.07 0.13 0.08 0.09 0.09 ...
## $ Acquisition_Cost: num 16174 11566 10200 12724 16452 ...
## $ ROI : num 6.29 5.61 7.18 5.55 6.5 4.36 2.86 5.55 6.73 3.78 ...
## $ Location : chr "Chicago" "New York" "Los Angeles" "Miami" ...
## $ Language : chr "Spanish" "German" "French" "Mandarin" ...
## $ Clicks : int 506 116 584 217 379 100 817 624 861 642 ...
## $ Impressions : int 1922 7523 7698 1820 4201 1643 8749 7854 1754 3856 ...
## $ Engagement_Score: int 6 7 1 7 3 1 10 7 6 3 ...
## $ Customer_Segment: chr "Health & Wellness" "Fashionistas" "Outdoor Adventurers" "Health & Wellness" ...
## $ Date : Date, format: "2021-01-01" "2021-01-02" ...
Các biến định lượng bao gồm: Conversion_Rate, ROI, Clicks,
Impressions, Engagements_Score, Acquisition_Cost, Duration
Các biến định tính: Company, Campaign_Type, Target_Audience,
Channel_Used, Location, Language, Customer_Segment, Date
## [1] 0
# kiểm tra trùng lặp theo từng biến
variables <- c("Company", "Campaign_Type", "Target_Audience", "Duration",
"Channel_Used", "Conversion_Rate", "Acquisition_Cost", "ROI",
"Location", "Language", "Clicks", "Impressions", "Engagement_Score",
"Customer_Segment")
for(var in variables) {
cat("Số trùng lặp cho", var, ":", sum(duplicated(da[[var]])), "\n")}## Số trùng lặp cho Company : 199995
## Số trùng lặp cho Campaign_Type : 199995
## Số trùng lặp cho Target_Audience : 199995
## Số trùng lặp cho Duration : 199996
## Số trùng lặp cho Channel_Used : 199994
## Số trùng lặp cho Conversion_Rate : 199985
## Số trùng lặp cho Acquisition_Cost : 184999
## Số trùng lặp cho ROI : 199399
## Số trùng lặp cho Location : 199995
## Số trùng lặp cho Language : 199995
## Số trùng lặp cho Clicks : 199099
## Số trùng lặp cho Impressions : 190999
## Số trùng lặp cho Engagement_Score : 199990
## Số trùng lặp cho Customer_Segment : 199995
## [1] 0
## Company Campaign_Type Target_Audience Duration
## 0 0 0 0
## Channel_Used Conversion_Rate Acquisition_Cost ROI
## 0 0 0 0
## Location Language Clicks Impressions
## 0 0 0 0
## Engagement_Score Customer_Segment Date
## 0 0 0
Dữ liệu không có giá trị bị thiếu
##
## Email Facebook Google Ads Instagram Website YouTube
## 33599 32819 33438 33392 33360 33392
## [1] "Google Ads" "YouTube" "Instagram" "Website" "Facebook"
## [6] "Email"
Các giá trị đều thống nhất về cách viết (chữ hoa đầu, không thừa
khoảng trắng) và không có biến thể trùng lặp.
Do đó, dữ liệu không xuất hiện lỗi không nhất quán ở biến này.
sapply(da[c("Conversion_Rate", "ROI", "Clicks", "Impressions", "Engagement_Score", "Acquisition_Cost", "Duration")],
function(x) c(Mean=mean(x, na.rm=TRUE),
Median=median(x, na.rm=TRUE),
SD=sd(x, na.rm=TRUE),
var=var(x, na.rm=TRUE),
quartile_1=quantile(x, 0.25, na.rm=TRUE),
quartile_3=quantile(x, 0.75, na.rm=TRUE),
mode=as.numeric(names(sort(table(x), decreasing=TRUE)[1])),
Min=min(x, na.rm=TRUE),
Max=max(x, na.rm=TRUE)))## Conversion_Rate ROI Clicks Impressions Engagement_Score
## Mean 0.080069650 5.002438 549.7720 5507.302 5.494710
## Median 0.080000000 5.010000 550.0000 5517.500 5.000000
## SD 0.040601649 1.734488 260.0191 2596.864 2.872581
## var 0.001648494 3.008450 67609.9094 6743704.121 8.251723
## quartile_1.25% 0.050000000 3.500000 325.0000 3266.000 3.000000
## quartile_3.75% 0.120000000 6.510000 775.0000 7753.000 8.000000
## mode 0.130000000 7.430000 477.0000 1602.000 4.000000
## Min 0.010000000 2.000000 100.0000 1000.000 1.000000
## Max 0.150000000 8.000000 1000.0000 10000.000 10.000000
## Acquisition_Cost Duration
## Mean 12504.393 37.50397
## Median 12496.500 30.00000
## SD 4337.665 16.74672
## var 18815333.705 280.45264
## quartile_1.25% 8739.750 30.00000
## quartile_3.75% 16264.000 45.00000
## mode 16578.000 30.00000
## Min 5000.000 15.00000
## Max 20000.000 60.00000
lapply(da[c("Company", "Campaign_Type", "Target_Audience", "Duration",
"Channel_Used", "Location", "Language", "Customer_Segment" )],
table)## $Company
##
## Alpha Innovations DataTech Solutions Innovate Industries NexGen Systems
## 40051 40012 39709 39991
## TechCorp
## 40237
##
## $Campaign_Type
##
## Display Email Influencer Search Social Media
## 39987 39870 40169 40157 39817
##
## $Target_Audience
##
## All Ages Men 18-24 Men 25-34 Women 25-34 Women 35-44
## 40019 40258 40023 40013 39687
##
## $Duration
##
## 15 30 45 60
## 49779 50255 50100 49866
##
## $Channel_Used
##
## Email Facebook Google Ads Instagram Website YouTube
## 33599 32819 33438 33392 33360 33392
##
## $Location
##
## Chicago Houston Los Angeles Miami New York
## 40010 39750 39947 40269 40024
##
## $Language
##
## English French German Mandarin Spanish
## 39896 39764 39983 40255 40102
##
## $Customer_Segment
##
## Fashionistas Foodies Health & Wellness Outdoor Adventurers
## 39742 40208 39888 40011
## Tech Enthusiasts
## 40151
Để phục vụ mục tiêu phân tích hiệu quả chiến dịch marketing, nhóm tiến hành phân tổ dữ liệu dựa trên các tiêu chí sau: Các tiêu chí được chọn nhằm phản ánh các khía cạnh khác nhau của hoạt động marketing:
Mục tiêu của việc phân tổ là xác định đặc điểm của từng nhóm chiến dịch (hiệu quả thấp, trung bình, cao) để từ đó đưa ra nhận định về xu hướng và hiệu suất marketing.
da$ROI_Group <- cut(da$ROI,
breaks = c(-Inf, 4, 7, Inf),
labels = c("ROI thap", "ROI trung binh", "ROI cao"))
roi_table <- as.data.frame(table(da$ROI_Group))
colnames(roi_table) <- c("Nhóm ROI", "Số lượng")
roi_table$`Tỷ lệ (%)` <- round(roi_table$`Số lượng` / sum(roi_table$`Số lượng`) * 100, 2)
knitr::kable(roi_table, align = "c", caption = "Bảng 1. Phân tổ theo hiệu quả chiến dịch (ROI)")| Nhóm ROI | Số lượng | Tỷ lệ (%) |
|---|---|---|
| ROI thap | 66822 | 33.41 |
| ROI trung binh | 99877 | 49.94 |
| ROI cao | 33301 | 16.65 |
Kết quả cho thấy nhóm ROI trung bình chiếm tỷ trọng lớn nhất
(49.94%), phản ánh đa số chiến dịch đạt hiệu quả đầu tư ở mức ổn
định.
Nhóm ROI thấp chiếm 33.41%, cho thấy vẫn còn nhiều chiến dịch hiệu quả
chưa cao, trong khi ROI cao chỉ 16.65%, biểu thị số chiến dịch mang lại
lợi nhuận vượt trội còn hạn chế.
da$Budget_Group <- cut(da$Acquisition_Cost,
breaks = c(-Inf, 10000, 15000, Inf),
labels = c("Ngân sách nhỏ", "Ngân sách trung bình", "Ngân sách lớn"))
budget_table <- as.data.frame(table(da$Budget_Group))
colnames(budget_table) <- c("Nhóm ngân sách", "Số lượng")
budget_table$`Tỷ lệ (%)` <- round(budget_table$`Số lượng` / sum(budget_table$`Số lượng`) * 100, 2)
knitr::kable(budget_table, align = "c", caption = "Bảng 2. Phân tổ theo quy mô ngân sách")| Nhóm ngân sách | Số lượng | Tỷ lệ (%) |
|---|---|---|
| Ngân sách nhỏ | 66704 | 33.35 |
| Ngân sách trung bình | 66495 | 33.25 |
| Ngân sách lớn | 66801 | 33.40 |
Tỷ lệ các nhóm ngân sách gần như tương đương nhau, phản ánh dữ liệu
được phân bổ khá đồng đều giữa các mức chi tiêu.
Các chiến dịch được triển khai đa dạng về quy mô tài chính, giúp việc so
sánh hiệu quả giữa các nhóm ngân sách trở nên khách quan hơn.
da$Engagement_Group <- cut(da$Engagement_Score,
breaks = c(-Inf, 4, 7, Inf),
labels = c("Tương tác thấp", "Tương tác trung bình", "Tương tác cao"))
engage_table <- as.data.frame(table(da$Engagement_Group))
colnames(engage_table) <- c("Nhóm tương tác", "Số lượng")
engage_table$`Tỷ lệ (%)` <- round(engage_table$`Số lượng` / sum(engage_table$`Số lượng`) * 100, 2)
knitr::kable(engage_table, align = "c", caption = "Bảng 3. Phân tổ theo mức độ tương tác")| Nhóm tương tác | Số lượng | Tỷ lệ (%) |
|---|---|---|
| Tương tác thấp | 80228 | 40.11 |
| Tương tác trung bình | 59838 | 29.92 |
| Tương tác cao | 59934 | 29.97 |
Nhóm tương tác thấp chiếm tỷ trọng cao nhất (40.11%), cho thấy nhiều
chiến dịch chưa đạt được mức độ tương tác mong muốn từ khách hàng.
Ngược lại, nhóm tương tác cao chỉ chiếm 29.97%, phản ánh số chiến dịch
tạo được sự kết nối mạnh mẽ với khách hàng còn hạn chế.
da$Conversion_Group <- cut(da$Conversion_Rate,
breaks = c(-Inf, 0.05, 0.10, Inf),
labels = c("Chuyển đổi kém", "Chuyển đổi khá", "Chuyển đổi tốt"))
conv_table <- as.data.frame(table(da$Conversion_Group))
colnames(conv_table) <- c("Nhóm chuyển đổi", "Số lượng")
conv_table$`Tỷ lệ (%)` <- round(conv_table$`Số lượng` / sum(conv_table$`Số lượng`) * 100, 2)
knitr::kable(conv_table, align = "c", caption = "Bảng 4. Phân tổ theo hiệu suất chuyển đổi")| Nhóm chuyển đổi | Số lượng | Tỷ lệ (%) |
|---|---|---|
| Chuyển đổi kém | 64117 | 32.06 |
| Chuyển đổi khá | 71468 | 35.73 |
| Chuyển đổi tốt | 64415 | 32.21 |
Kết quả phân tổ cho thấy nhóm chuyển đổi khá chiếm tỷ lệ cao nhất (35.73%), phản ánh đa số chiến dịch đạt hiệu suất chuyển đổi ở mức ổn định. Nhóm chuyển đổi kém chiếm 32.06%, cho thấy vẫn còn nhiều chiến dịch chưa tối ưu hóa hiệu quả chuyển đổi, trong khi nhóm chuyển đổi tốt chỉ chiếm 32.21%, biểu thị số chiến dịch đạt hiệu suất xuất sắc còn hạn chế.
da$Duration_Group <- cut(da$Duration,
breaks = c(-Inf,30 ,45 , Inf),
labels = c("Ngắn hạn", "Trung hạn", "Dài hạn"))
duration_table <- as.data.frame(table(da$Duration_Group))
colnames(duration_table) <- c("Nhóm thời gian chạy", "Số lượng")
duration_table$`Tỷ lệ (%)` <- round(duration_table$`Số lượng` / sum(duration_table$`Số lượng`) * 100, 2)
knitr::kable(duration_table, align = "c", caption = "Bảng 5. Phân tổ theo thời gian chạy chiến dịch")| Nhóm thời gian chạy | Số lượng | Tỷ lệ (%) |
|---|---|---|
| Ngắn hạn | 100034 | 50.02 |
| Trung hạn | 50100 | 25.05 |
| Dài hạn | 49866 | 24.93 |
Nhóm chiến dịch ngắn hạn chiếm tỷ lệ cao nhất (50.02%), chiến dịch được triển khai trong khoảng thời gian ngắn để nhanh chóng tiếp cận khách hàng.
channel_table <- as.data.frame(table(da$Channel_Used))
colnames(channel_table) <- c("Kênh phân phối", "Số lượng")
channel_table$`Tỷ lệ (%)` <- round(channel_table$`Số lượng` / sum(channel_table$`Số lượng`) * 100, 2)
knitr::kable(channel_table, align = "c", caption = "Bảng 6. Phân tổ theo kênh phân phối")| Kênh phân phối | Số lượng | Tỷ lệ (%) |
|---|---|---|
| 33599 | 16.80 | |
| 32819 | 16.41 | |
| Google Ads | 33438 | 16.72 |
| 33392 | 16.70 | |
| Website | 33360 | 16.68 |
| YouTube | 33392 | 16.70 |
Phân tổ theo kênh phân phối bao gồm: Google Ads, YouTube, Instagram,
Facebook, Email, Website
Các kênh như Email, Google Ads, Instagram và YouTube có mức sử dụng
tương đương nhau. Giúp đa dạng hóa tiếp cận khách hàng và giảm rủi ro
nếu một kênh hoạt động kém hiệu quả.
ROI_stats <- summary(da$ROI)
ROI_table <- data.frame(
Thống_kê = names(ROI_stats),
Giá_trị = as.numeric(ROI_stats)
)
kable(ROI_table,
caption = "Bảng thống kê mô tả ROI",
align = "c",
col.names = c("Thống kê", "Giá trị"))| Thống kê | Giá trị |
|---|---|
| Min. | 2.000000 |
| 1st Qu. | 3.500000 |
| Median | 5.010000 |
| Mean | 5.002438 |
| 3rd Qu. | 6.510000 |
| Max. | 8.000000 |
Company_dist <- table(da$Company)
company_table <- data.frame(
"Công ty" = names(Company_dist),
"Số lượng chiến dịch" = as.numeric(Company_dist),
"Tỷ lệ (%)" = round( prop.table(Company_dist) *100, 1))
knitr::kable(
company_table,
align = "c",
caption = "Bảng: Phân bố chiến dịch theo công ty và tỷ lệ phần trăm")| Công.ty | Số.lượng.chiến.dịch | Tỷ.lệ…..Var1 | Tỷ.lệ…..Freq |
|---|---|---|---|
| Alpha Innovations | 40051 | Alpha Innovations | 20.0 |
| DataTech Solutions | 40012 | DataTech Solutions | 20.0 |
| Innovate Industries | 39709 | Innovate Industries | 19.9 |
| NexGen Systems | 39991 | NexGen Systems | 20.0 |
| TechCorp | 40237 | TechCorp | 20.1 |
ROI_by_Company <- aggregate(ROI ~ Company, da, function(x) c(
Số_chiến_dịch = length(x),
ROI_trung_bình = round(mean(x), 2),
ROI_cao = sum(x > 7),
Tỷ_lệ_ROI_cao = paste0(round(sum(x > 7)/length(x)*100, 1), "%")
))
ROI_by_Company <- ROI_by_Company[order(ROI_by_Company$ROI[,2]), ]
print(ROI_by_Company)## Company ROI.Số_chiến_dịch ROI.ROI_trung_bình ROI.ROI_cao
## 4 NexGen Systems 39991 4.99 6600
## 3 Innovate Industries 39709 5 6558
## 1 Alpha Innovations 40051 5.01 6813
## 2 DataTech Solutions 40012 5.01 6658
## 5 TechCorp 40237 5.01 6672
## ROI.Tỷ_lệ_ROI_cao
## 4 16.5%
## 3 16.5%
## 1 17%
## 2 16.6%
## 5 16.6%
conclusion <- data.frame(
Tiêu_chí = c("Nhiều chiến dịch nhất", "ROI TB cao nhất", "Tỷ lệ ROI cao nhất"),
Kết_quả = c(
names(which.max(Company_dist)),
with(ROI_by_Company, paste(Company[which.max(ROI[,2])], "(ROI =", ROI[which.max(ROI[,2]),2], ")")),
with(ROI_by_Company, paste(Company[which.max(as.numeric(sub('%','',ROI[,4])))], "(", ROI[which.max(as.numeric(sub('%','',ROI[,4]))),4], ")"))
)
)
knitr::kable(conclusion, align="c", caption="Bảng Kết Luận Tổng Hợp")| Tiêu_chí | Kết_quả |
|---|---|
| Nhiều chiến dịch nhất | TechCorp |
| ROI TB cao nhất | Alpha Innovations (ROI = 5.01 ) |
| Tỷ lệ ROI cao nhất | Alpha Innovations ( 17% ) |
Clicks_stats <- summary(da$Clicks)
Clicks_table <- data.frame(
Thống_kê = names(Clicks_stats),
Giá_trị = as.numeric(Clicks_stats)
)
kable(Clicks_table,
caption = "Bảng thống kê mô tả Clicks",
align = "c",
col.names = c("Thống kê", "Giá trị"))| Thống kê | Giá trị |
|---|---|
| Min. | 100.000 |
| 1st Qu. | 325.000 |
| Median | 550.000 |
| Mean | 549.772 |
| 3rd Qu. | 775.000 |
| Max. | 1000.000 |
Clicks_by_Campaign <- aggregate(Clicks ~ Campaign_Type, da, function(x) c(
Số_chiến_dịch = length(x),
Clicks_trung_bình = round(mean(x), 2),
Clicks_cao = sum(x > 5000),
Tỷ_lệ_Clicks_cao = paste0(round(sum(x > 5000)/length(x)*100, 1), "%")
))
Clicks_by_Campaign <- Clicks_by_Campaign[order(Clicks_by_Campaign$Clicks[,2]), ]
print(Clicks_by_Campaign)## Campaign_Type Clicks.Số_chiến_dịch Clicks.Clicks_trung_bình Clicks.Clicks_cao
## 3 Influencer 40169 548.62 0
## 4 Search 40157 548.65 0
## 2 Email 39870 549.23 0
## 1 Display 39987 550.95 0
## 5 Social Media 39817 551.42 0
## Clicks.Tỷ_lệ_Clicks_cao
## 3 0%
## 4 0%
## 2 0%
## 1 0%
## 5 0%
conclusion_clicks <- data.frame(
Tiêu_chí = c("Nhiều chiến dịch nhất", "Clicks TB cao nhất", "Tỷ lệ Clicks cao nhất"),
Kết_quả = c(
names(which.max(table(da$Campaign_Type))),
with(Clicks_by_Campaign, paste(Campaign_Type[which.max(Clicks[,2])], "(Clicks =", Clicks[which.max(Clicks[,2]),2], ")")),
with(Clicks_by_Campaign, paste(Campaign_Type[which.max(as.numeric(sub('%','',Clicks[,4])))], "(", Clicks[which.max(as.numeric(sub('%','',Clicks[,4]))),4], ")"))
)
)
knitr::kable(conclusion_clicks, align="c", caption="Bảng Kết Luận Tổng Hợp về Clicks theo Loại Hình Chiến Dịch")| Tiêu_chí | Kết_quả |
|---|---|
| Nhiều chiến dịch nhất | Influencer |
| Clicks TB cao nhất | Social Media (Clicks = 551.42 ) |
| Tỷ lệ Clicks cao nhất | Influencer ( 0% ) |
library(ggplot2)
ggplot(da, aes(x=Company, y=ROI, fill=Company)) +
geom_boxplot() +
labs(title="Biểu đồ ROI theo công ty", x="Công ty", y="ROI") +
theme_minimal()Điều này cho thấy hiệu quả đầu tư marketing giữa các doanh nghiệp gần như không khác biệt đáng kể, phản ánh mức độ cạnh tranh cao và sự hội tụ về hiệu suất đầu tư.