DEV Community

chaanli
chaanli

Posted on

Building a Real-Time Ad Fraud Detection Pipeline with Grafana and Python

Visualizing ad traffic quality in real-time helps you catch fraud before it drains your budget. Here's how to build a monitoring pipeline.

Stack

  • Python — data processing and bot detection
  • InfluxDB — time-series storage
  • Grafana — visualization and alerting

Architecture

Ad Traffic → Python Analyzer → InfluxDB → Grafana
                 ↓
           Bot Detection
           (3-layer)
Enter fullscreen mode Exit fullscreen mode

Data Collection

from influxdb_client import InfluxDBClient, Point
import time

class TrafficAnalyzer:
    def __init__(self, influx_url, token, org, bucket):
        self.client = InfluxDBClient(url=influx_url, token=token, org=org)
        self.write_api = self.client.write_api()
        self.bucket = bucket

    def process_visit(self, visit_data):
        bot_score = self.detect_bot(visit_data)

        point = Point('ad_traffic') \
            .tag('source', visit_data['source']) \
            .tag('geo', visit_data['geo']) \
            .field('bot_score', bot_score) \
            .field('page_time', visit_data['time_on_page']) \
            .field('clicks', visit_data['click_count'])

        self.write_api.write(bucket=self.bucket, record=point)

        return bot_score
Enter fullscreen mode Exit fullscreen mode

Grafana Dashboards

Key Panels

  1. Bot Score Distribution — histogram of scores across all traffic
  2. Geographic Anomalies — map showing suspicious traffic origins
  3. Hourly Trend — bot percentage over time
  4. Alert Rules — trigger when bot rate > 30%

Resources

What you can't measure, you can't improve.

Top comments (0)