Click Here for Code Script

Data Source: Facebook-Google

Goal and Key Questions

Goal:

To determine which platform gave a greater return on ad spend (ROAS) to better manage budget and set tangible goals.

Key Questions:

  1. What are the daily and monthly conversions?

  2. Does one platform outperform the other? If so, by how much?

  3. Can clicks predict conversions?

Combined Total Costs per Ad = $81,306

What are the daily and monthly ad conversions?

It seems that Facebook performed better than Google, but was this by random chance? Hypothesis - Facebook outperforms Google in ad conversions.

Does one platform outperform the other? If so, by how much?

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  ads$`Facebook Ad Conversions` and ads$`Google Ad Conversions`
## W = 128089, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
## [1] 49.06673

Given a p-value less than 0.05, it wasn’t due to random chance that Facebook outperformed Google by 49.1% ((Facebook Total Conversions - Google Total Conversions) / Facebook Total Conversions * 100 = 49.07).

Can clicks predict conversions?

## 
## Call:
## lm(formula = facebook_conversions ~ facebook_clicks, data = ads2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5736 -1.2061 -0.1006  1.2674  2.6885 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.470022   0.280950   8.792   <2e-16 ***
## facebook_clicks 0.210501   0.006149  34.231   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.424 on 363 degrees of freedom
## Multiple R-squared:  0.7635, Adjusted R-squared:  0.7628 
## F-statistic:  1172 on 1 and 363 DF,  p-value: < 2.2e-16

Given an R-squared value of 0.7635, Facebook Ad Clicks can explain 76% of the variance in Facebook Ad Conversions. With a p-value < 2.2e-16, Facebook Ad Clicks is deemed to be useful for predicting the approximate value in Facebook Ad Conversions.

Predictive Model

Using this model, how many Facebook Ad Conversions can be expected if the number of Facebook Ad Clicks were 25, 50, and 100?

##         1         2         3 
##  7.732558 12.995093 23.520165

8, 13, and 24, respectively, can be expected for Facebook Ad Conversions. Hover mouse cursor or finger tap on the scatter plot:

Summary of Findings

  1. On Facebook, October and December received the most conversions while January and February received the least.

  2. Facebook was the greater ROAS and outperformed Google in ad conversions by 49.1%.

  3. There was a positive correlation between Facebook clicks and conversions, and a predictive model can be used to approximate future outcomes.

Actionable Insights

  1. Promote coupons or raffles during November and December to be claimed on January and February to boost website traffic.

  2. Reinvest 49.1% of the ad cost from Google ($49,266) to Facebook. So, 0.491*49266 = $24,189.61.

  3. Develop marketing strategy around the predictive model to narrow the focus on weekly, monthly, and quarterly goals for clicks to attain conversions.

## R version 4.3.1 (2023-06-16 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 19045)
## 
## Matrix products: default
## 
## 
## locale:
## [1] LC_COLLATE=English_United States.utf8 
## [2] LC_CTYPE=English_United States.utf8   
## [3] LC_MONETARY=English_United States.utf8
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.utf8    
## 
## time zone: America/New_York
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] gridExtra_2.3      DT_0.28            rio_0.5.29         performance_0.10.3
##  [5] readxl_1.4.2       janitor_2.2.0      lubridate_1.9.2    forcats_1.0.0     
##  [9] stringr_1.5.0      dplyr_1.1.1        purrr_1.0.1        readr_2.1.4       
## [13] tidyr_1.3.0        tibble_3.2.1       tidyverse_2.0.0    report_0.5.7      
## [17] ggplot2_3.4.1     
## 
## loaded via a namespace (and not attached):
##  [1] gtable_0.3.3      xfun_0.38         bslib_0.4.2       htmlwidgets_1.6.2
##  [5] insight_0.19.2    lattice_0.21-8    tzdb_0.3.0        vctrs_0.6.1      
##  [9] tools_4.3.1       crosstalk_1.2.0   generics_0.1.3    curl_5.0.0       
## [13] fansi_1.0.4       highr_0.10        pkgconfig_2.0.3   Matrix_1.5-4.1   
## [17] data.table_1.14.8 lifecycle_1.0.3   farver_2.1.1      compiler_4.3.1   
## [21] munsell_0.5.0     snakecase_0.11.0  htmltools_0.5.5   sass_0.4.5       
## [25] lazyeval_0.2.2    yaml_2.3.7        plotly_4.10.1     pillar_1.9.0     
## [29] jquerylib_0.1.4   ellipsis_0.3.2    cachem_1.0.7      nlme_3.1-162     
## [33] tidyselect_1.2.0  zip_2.3.0         digest_0.6.31     stringi_1.7.12   
## [37] labeling_0.4.2    splines_4.3.1     fastmap_1.1.1     grid_4.3.1       
## [41] colorspace_2.1-0  cli_3.6.1         magrittr_2.0.3    utf8_1.2.3       
## [45] foreign_0.8-84    withr_2.5.0       scales_1.2.1      timechange_0.2.0 
## [49] httr_1.4.5        rmarkdown_2.21    cellranger_1.1.0  hms_1.1.3        
## [53] openxlsx_4.2.5.2  evaluate_0.20     knitr_1.42        haven_2.5.2      
## [57] viridisLite_0.4.1 mgcv_1.8-42       rlang_1.1.0       Rcpp_1.0.10      
## [61] glue_1.6.2        rstudioapi_0.14   jsonlite_1.8.4    R6_2.5.1