Skip to content

The MerchVibeX repository features a next-generation analytics platform for Google Merchant Center Market Insights, using automated data pipelines with Python and BigQuery for competitive pricing and best-seller analysis.

License

Notifications You must be signed in to change notification settings

theyashdhiman04/MerchVibeX

Repository files navigation

πŸš€ MerchVibeX

Next-gen analytics platform for Google Merchant Center Market Insights

Transform your e-commerce data into actionable insights with MerchVibeX - a powerful data pipeline and visualization dashboard that connects Google Merchant Center and Google Ads data to unlock pricing strategies, identify trending products, and optimize your competitive positioning.

Python BigQuery License


✨ What is MerchVibeX?

MerchVibeX is a scalable data analytics solution that automates the extraction, processing, and visualization of Market Insights data from Google Merchant Center. Built on Google Cloud Platform, it empowers merchants to make data-driven decisions with real-time pricing benchmarks, best-selling product analysis, and competitive market intelligence.

Key Features

  • πŸ“Š Price Benchmarking - Analyze competitive pricing data to optimize your product pricing strategies
  • πŸ”₯ Best Sellers Analysis - Identify trending products and brands to capitalize on market opportunities
  • πŸ’‘ Price Suggestions - Get AI-powered recommendations for optimal sale pricing
  • πŸ“ˆ Inventory Insights - Spot high-demand products that are out of stock and driving potential sales
  • ⚑ Automated Pipelines - Daily data synchronization with minimal manual intervention
  • 🎯 Looker Studio Integration - Beautiful, interactive dashboards for seamless data visualization
  • πŸ” Data Quality Monitoring - Built-in health checks and validation tools
  • βœ… Configuration Validation - Pre-flight checks before deployment

πŸ“Š Architecture & Data Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          MERCHVIBEX ARCHITECTURE                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  Google Merchant     β”‚         β”‚     Google Ads       β”‚
    β”‚      Center          β”‚         β”‚                      β”‚
    β”‚  (Market Insights)   β”‚         β”‚  (Shopping Campaigns)β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚                                 β”‚
               β”‚  API Data Sync                  β”‚  API Data Sync
               β”‚  (Automated Daily)              β”‚  (Automated Daily)
               β–Ό                                 β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚         BigQuery Data Transfer Service                   β”‚
    β”‚         β€’ Merchant Center Transfer                       β”‚
    β”‚         β€’ Google Ads Transfer                            β”‚
    β”‚         β€’ Scheduled Query Jobs                           β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚              Google BigQuery Data Warehouse              β”‚
    β”‚                                                          β”‚
    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
    β”‚  β”‚  Merchant    β”‚  β”‚  Google Ads  β”‚  β”‚  Reference   β”‚ β”‚
    β”‚  β”‚  Center Data β”‚  β”‚     Data     β”‚  β”‚    Data      β”‚ β”‚
    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β”‚ SQL Processing & Aggregation
                           β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚              Data Processing Layer                        β”‚
    β”‚                                                          β”‚
    β”‚  β€’ Inventory View Procedures                             β”‚
    β”‚  β€’ Best Sellers Analysis Procedures                      β”‚
    β”‚  β€’ Price Competitiveness Calculations                    β”‚
    β”‚  β€’ Data Quality Validation                               β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚              Processed Views & Tables                     β”‚
    β”‚                                                          β”‚
    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚
    β”‚  β”‚ InventoryViewβ”‚        β”‚BestSeller    β”‚              β”‚
    β”‚  β”‚              β”‚        β”‚WeeklyProduct β”‚              β”‚
    β”‚  β”‚β€’ Price Data  β”‚        β”‚View          β”‚              β”‚
    β”‚  β”‚β€’ Competition β”‚        β”‚              β”‚              β”‚
    β”‚  β”‚β€’ Insights    β”‚        β”‚β€’ Trends      β”‚              β”‚
    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚β€’ Performance β”‚              β”‚
    β”‚                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β”‚ Real-time Data Connection
                           β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚              Looker Studio Dashboards                     β”‚
    β”‚                                                          β”‚
    β”‚  πŸ“Š Price Benchmark Dashboard                            β”‚
    β”‚  πŸ“ˆ Best Sellers Overview                                β”‚
    β”‚  πŸ’‘ Price Suggestion Views                               β”‚
    β”‚  🎯 Inventory Insights                                   β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚              Business Users & Teams                       β”‚
    β”‚                                                          β”‚
    β”‚  β€’ Pricing Teams    β€’ Merchandising    β€’ Marketing      β”‚
    β”‚  β€’ Analytics        β€’ Business Intelligence             β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


SETUP WORKFLOW:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Validate   │───▢│   Enable     │───▢│   Create     │───▢│  Deploy SQL  β”‚
β”‚  Config     β”‚    β”‚   Cloud APIs β”‚    β”‚   Transfers  β”‚    β”‚  Procedures  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                    β”‚
                                                                    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Connect    │◀───│  Schedule    │◀───│  Initialize  │◀───│  Load        β”‚
β”‚  Dashboard  β”‚    β”‚  Daily Jobs  β”‚    β”‚  Dataset     β”‚    β”‚  Reference   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎯 Use Cases

For Pricing Teams

  • Competitive Analysis: Compare your prices against market benchmarks
  • Price Optimization: Make informed pricing decisions based on real market data
  • Dynamic Pricing: Identify opportunities for price adjustments

For Merchandising Teams

  • Trend Identification: Discover what's hot in your category
  • Product Opportunities: Find gaps in your inventory for high-demand items
  • Brand Performance: Track which brands are performing best

For Marketing Teams

  • Campaign Optimization: Align marketing strategies with trending products
  • Inventory Alerts: Get notified about products that need restocking
  • Performance Tracking: Monitor how pricing changes affect sales

πŸ› οΈ Tech Stack

  • Python 3.8+ - Core automation and API integration
  • Google BigQuery - Data warehouse and analytics engine
  • BigQuery Data Transfer Service - Automated data synchronization
  • Looker Studio - Data visualization and reporting
  • Google Cloud Platform - Infrastructure and APIs

πŸ“‹ Prerequisites

Before you begin, ensure you have:

  • βœ… A Google Cloud Project with billing enabled
  • βœ… Google Merchant Center account with Standard access
  • βœ… Google Ads account with Standard access
  • βœ… Editor/Owner role in your Google Cloud project
  • βœ… gcloud CLI installed (or use Cloud Shell)

πŸš€ Quick Start

Pre-Setup Validation

Before running the setup, validate your configuration:

python config_validator.py \
  --project_id=<YOUR_PROJECT_ID> \
  --merchant_id=<YOUR_MERCHANT_ID> \
  --ads_customer_id=<YOUR_ADS_CUSTOMER_ID>

Option 1: Cloud Shell (Recommended)

  1. Open Cloud Shell

    # Navigate to Cloud Shell in Google Cloud Console
  2. Clone the Repository

    git clone https://github.com/theyashdhiman04/MerchVibeX.git
    cd MerchVibeX
  3. Run Setup Script

    sh setup.sh --project_id=<YOUR_PROJECT_ID> \
                --merchant_id=<YOUR_MERCHANT_ID> \
                --ads_customer_id=<YOUR_ADS_CUSTOMER_ID>

Option 2: Local Installation

  1. Install Google Cloud CLI

  2. Clone and Setup

    git clone https://github.com/theyashdhiman04/MerchVibeX.git
    cd MerchVibeX
    sh setup.sh --project_id=<YOUR_PROJECT_ID> \
                --merchant_id=<YOUR_MERCHANT_ID> \
                --ads_customer_id=<YOUR_ADS_CUSTOMER_ID>

What the Setup Does

The setup script automates:

  • βœ… Enables required Google Cloud APIs (BigQuery, Data Transfer)
  • βœ… Creates automated data transfers for Merchant Center and Google Ads
  • βœ… Sets up BigQuery datasets and tables
  • βœ… Configures daily scheduled queries for data refresh
  • βœ… Prepares data for Looker Studio visualization

πŸ“Š Dashboard Setup

Once your data pipeline is set up, connect it to Looker Studio:

  1. Access the Template (if available)

    • Join the dashboard template group or create your own
  2. Connect Data Sources

    • Navigate to Resource > Manage added data sources
    • Connect to your BigQuery dataset: merch_vibe_x
    • Link tables: InventoryView and BestSellerWeeklyProductView
  3. Customize & Share

    • Customize the dashboard to your needs
    • Share with your team for collaborative insights

Note: Performance metrics may take 12-24 hours to appear after initial setup.


πŸ“ Project Structure

MerchVibeX/
β”œβ”€β”€ cloud_env_setup.py         # Main setup orchestration
β”œβ”€β”€ cloud_bigquery.py          # BigQuery operations
β”œβ”€β”€ cloud_data_transfer.py     # Data transfer management
β”œβ”€β”€ auth.py                    # Authentication utilities
β”œβ”€β”€ setup.sh                   # Installation script
β”œβ”€β”€ config_validator.py        # Configuration validation
β”œβ”€β”€ data_quality_checker.py    # Data quality monitoring
β”œβ”€β”€ monitoring.py              # Transfer health monitoring
β”œβ”€β”€ demo.py                    # Interactive demo script
β”œβ”€β”€ sql/
β”‚   β”œβ”€β”€ inventory.sql          # Inventory view queries
β”‚   β”œβ”€β”€ best_sellers.sql       # Best sellers queries
β”‚   └── main_workflow.sql      # Daily workflow
β”œβ”€β”€ plugins/
β”‚   └── cloud_utils/           # Cloud API utilities
β”œβ”€β”€ data/                      # Reference data (geo targets, languages)
└── requirements.txt           # Python dependencies

🎬 Demo

Run the interactive demo to see MerchVibeX in action:

python demo.py

The demo showcases:

  • System architecture and data flow
  • Key features and capabilities
  • Setup workflow steps
  • Use cases and applications
  • Technology stack overview

πŸ” Monitoring & Maintenance

Data Quality Checks

Validate your dataset health:

python data_quality_checker.py \
  --project_id=<YOUR_PROJECT_ID> \
  --dataset_id=merch_vibe_x

Transfer Monitoring

Monitor data transfer status:

python monitoring.py \
  --project_id=<YOUR_PROJECT_ID> \
  --dataset_location=us

These tools help ensure:

  • βœ… All required tables exist and are populated
  • βœ… Data is fresh and up-to-date
  • βœ… Data transfers are running successfully
  • βœ… System health is optimal

πŸ”§ Configuration

Environment Variables

The script uses Google Cloud Application Default Credentials. Make sure you're authenticated:

gcloud auth application-default login

Custom Dataset Name

By default, the dataset is named merch_vibe_x. You can customize it:

sh setup.sh --project_id=<PROJECT_ID> \
            --dataset_id=<CUSTOM_DATASET> \
            --merchant_id=<MERCHANT_ID> \
            --ads_customer_id=<ADS_ID>

πŸ“š Documentation

  • API Documentation: See inline code comments for detailed function documentation
  • SQL Queries: Review sql/ directory for query logic
  • Best Practices: Check individual module docstrings

🀝 Contributing

Contributions are welcome! Feel free to:

  • πŸ› Report bugs
  • πŸ’‘ Suggest new features
  • πŸ”§ Submit pull requests
  • πŸ“– Improve documentation

πŸ“„ License

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


πŸ‘€ Author

theyashdhiman04


πŸ™ Acknowledgments

Built with ❀️ using Google Cloud Platform services. Special thanks to the open-source community for inspiration and tools.


⚠️ Disclaimer

This project is provided as-is for educational and commercial use. Ensure you comply with Google's API Terms of Service and your organization's data policies.


Made with ⚑ by theyashdhiman04

⭐ Star this repo if you find it helpful!

About

The MerchVibeX repository features a next-generation analytics platform for Google Merchant Center Market Insights, using automated data pipelines with Python and BigQuery for competitive pricing and best-seller analysis.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published