Creating the Google Ads Metrics Table

In this guide, we’ll walk through how to create a BigQuery table to store hourly Google Ads metrics data. This structure helps you analyze ad performance at an hourly resolution and can be used for dashboards, reporting, and cost analysis.

Table schema

Here’s the schema for the google_ads_metrics table. Each row represents performance metrics for a specific hour of a specific day.

Create table in BigQuery

CREATE TABLE `project-id.dataset-id.google_ads_metrics` (
  date DATE,
  hour INT64,
  timestamp_start TIMESTAMP,  -- Start of the hour (e.g. "2025-03-20T15:00:00")
  timestamp_end TIMESTAMP,    -- End of the hour (e.g. "2025-03-20T15:59:59")
  timestamp INT64,            -- Epoch timestamp in milliseconds (derived from timestamp_end)
  spend FLOAT64,
  impressions INT64,
  clicks INT64,
  ctr FLOAT64,
  conversions FLOAT64,
  conversions_value FLOAT64,
  average_cpc FLOAT64,
  cost_per_conversion FLOAT64
);

This table supports granular time-based analysis, making it easier to track performance fluctuations over the course of the day.


Field descriptions

  • Name
    date
    Description

    The date of the metrics (e.g. 2025-03-20).

  • Name
    hour
    Description

    The hour of the day (0–23) representing the time bucket.

  • Name
    timestamp_start
    Description

    Start of the hour window (inclusive).

  • Name
    timestamp_end
    Description

    End of the hour window (inclusive).

  • Name
    timestamp
    Description

    Unix timestamp in milliseconds, derived from timestamp_end.

  • Name
    spend
    Description

    Total ad spend in the given hour.

  • Name
    impressions
    Description

    Number of times ads were shown during this hour.

  • Name
    clicks
    Description

    Number of clicks recorded in this hour.

  • Name
    ctr
    Description

    Click-through rate (clicks / impressions).

  • Name
    conversions
    Description

    Number of conversions attributed to ads during the hour.

  • Name
    conversions_value
    Description

    Monetary value of the conversions.

  • Name
    average_cpc
    Description

    Average cost per click.

  • Name
    cost_per_conversion
    Description

    Cost per conversion.

Example row

{
  "date": "2025-03-20",
  "hour": 15,
  "timestamp_start": "2025-03-20T15:00:00Z",
  "timestamp_end": "2025-03-20T15:59:59Z",
  "timestamp": 1742486399000,
  "spend": 12.34,
  "impressions": 1520,
  "clicks": 89,
  "ctr": 0.0586,
  "conversions": 7,
  "conversions_value": 125.00,
  "average_cpc": 0.14,
  "cost_per_conversion": 1.76
}

When to use this table

This schema is ideal if you want to:

  • Monitor hourly ad performance and detect trends.
  • Build visualizations based on time series data.
  • Aggregate data at daily or weekly intervals without losing granularity.
  • Join with other time-based datasets for cross-platform analysis.

Was this page helpful?