Skip to content

kushminer/NYCDSA-R-Project

Repository files navigation

Google Ads A/B Testing Dashboard

An interactive R Shiny dashboard for analyzing and comparing bidding strategies in Google Ads campaigns through comprehensive A/B testing.

Overview

This project provides a data-driven analysis of two Google Ads bidding strategies: Average Bidding (automated) vs. Maximum Bidding (manual CPC). The dashboard visualizes key performance metrics, conversion rates, and cost efficiency to help determine which bidding strategy delivers superior results.

Key Features

  • Interactive Visualizations: Dynamic plots using Plotly for daily and cumulative metrics
  • Statistical Analysis: Non-parametric hypothesis testing (Wilcoxon Rank Sum Test)
  • Monte Carlo Simulation: Win probability analysis with 10,000 simulations
  • Comprehensive Metrics: Conversion rates, cost metrics, and key performance indicators
  • Professional UI: Clean, intuitive dashboard built with Shiny and shinydashboard

Demo

The dashboard includes four main sections:

  1. Test Introduction: Context, methodology, and data housekeeping details
  2. Conversion Metrics: CTR, Purchase Rate, and Cart Completion Rate analysis
  3. Key Metrics: Impressions, Website Clicks, and Purchases tracking
  4. Cost Metrics: Spend analysis, CPC, CPI, and Cost per Purchase

Technologies Used

  • R (4.x+)
  • Shiny - Interactive web application framework
  • shinydashboard - Dashboard framework
  • Plotly - Interactive visualizations
  • ggplot2 - Static visualizations
  • dplyr - Data manipulation
  • tidyr - Data tidying
  • Statistical Packages: nortest, broom

Project Structure

.
├── server.R                    # Shiny server logic
├── ui.R                        # Shiny UI definition
├── data_cleaning.R             # Data preprocessing and cleaning
├── conversion_metrics.R        # Conversion rate calculations and plots
├── key_metrics.R               # Key metrics calculations and plots
├── cost_metrics.R              # Cost analysis calculations and plots
├── normality_check.R           # Statistical normality tests
├── control_group.csv           # Average bidding data
├── test_group.csv              # Maximum bidding data
├── catch_all_prev_work/        # Archive of previous analysis iterations
└── rsconnect/                  # Shiny deployment configuration

Installation

Prerequisites

  • R (version 4.0 or higher)
  • RStudio (recommended)

Required R Packages

install.packages(c(
  "shiny",
  "shinydashboard",
  "plotly",
  "ggplot2",
  "dplyr",
  "tidyr",
  "reshape2",
  "broom",
  "nortest",
  "scales",
  "forcats",
  "gridExtra",
  "rsconnect"
))

Usage

Running the Dashboard Locally

# Method 1: Using shiny::runApp()
shiny::runApp()

# Method 2: Run server.R directly
source("server.R")

The dashboard will open in your default web browser at http://127.0.0.1:XXXX.

Deploying to Shinyapps.io

library(rsconnect)
rsconnect::deployApp()

Methodology

Data Preprocessing

  • Missing Data Handling: Removed 8/5/2019 from both groups to maintain balance (1 row out of 30)
  • Data Cleaning: Converted data types, formatted dates, removed NaN values
  • Feature Engineering: Created conversion rate metrics and cumulative calculations

Statistical Approach

Normality Testing

  • Visual analysis: Histograms, Box Plots, Q-Q Plots, Density Plots
  • Statistical tests: Shapiro-Wilk and Anderson-Darling tests
  • Result: Non-normal distribution detected (except Website Clicks)

Hypothesis Testing

  • Test Used: Wilcoxon Rank Sum Test (non-parametric)
  • Significance Level: α = 0.05
  • Purpose: Determine if differences between bidding strategies are statistically significant

Win Probability Analysis

  • Method: Monte Carlo Simulation
  • Iterations: 10,000 simulations
  • Purpose: Predict future performance likelihood for each bidding strategy

Bidding Strategies Explained

Average Bidding (Test Group)

Also known as: Maximum Clicks or Automated Bid Strategy

Description: Set an average daily budget, and Google Ads automatically manages bids to maximize clicks within your budget.

Use Case: Best for businesses wanting to increase overall traffic without focusing on specific products, while maintaining budget control.

Maximum Bidding (Control Group)

Also known as: Manual CPC Bidding

Description: Manually manage maximum cost per click for each ad group, keyword, or placement.

Use Case: Ideal for businesses wanting to prioritize specific high-value keywords or products with custom bid amounts.

Metrics Definitions

Conversion Metrics

  • Clickthrough Rate (CTR): Website Clicks ÷ Impressions
  • Purchase Rate: Purchases ÷ Impressions
  • Cart Completion Rate: Purchases ÷ Add to Carts

Key Metrics

  • Impressions: Number of times ads were displayed
  • Website Clicks: Number of clicks on the advertisement
  • Purchases: Number of completed transactions

Cost Metrics

  • Spend: Total advertising expenditure (USD)
  • Cost per Click (CPC): Spend ÷ Website Clicks
  • Cost per Impression (CPI): Spend ÷ Impressions
  • Cost per Purchase (CPP): Spend ÷ Purchases

Analysis Metrics

  • Lift: Percentage difference between Average and Maximum Bidding
  • p-value: Statistical significance indicator (Wilcoxon Rank Sum Test)
  • Win Probability: Likelihood of future success (Monte Carlo Simulation)

Data Source

The dataset used in this analysis is publicly available on Kaggle: Example Dataset for A/B Test

Future Enhancements

  • Add time series forecasting for campaign performance
  • Implement segmentation analysis by day of week
  • Include ROI and ROAS calculations
  • Add export functionality for reports
  • Integrate with Google Ads API for live data

Author

NYC Data Science Academy - R Project

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Contact

For questions or collaboration opportunities, please open an issue in this repository.


Note: This is a portfolio project demonstrating skills in R programming, Shiny dashboard development, statistical analysis, and data visualization. The dataset is used for educational purposes only.

About

R Shiny App -- A/B Test Analysis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •