Technical documentation

Horizen Insights

The intelligence platform behind every Horizen engagement. Insights pulls performance data from the six campaign types ecommerce runs on — Search, Shopping, Performance Max, Display, Video, and Demand Gen — into one margin-aware reporting store, mines search terms and keyword opportunities against Google's keyword planning data, and audits the placements where ads ran.

● Placement Audit module — working prototype, internal use ◐ Reporting Hub & Keyword Lab — in development ◐ Google Ads API integration — in development ○ Hosted multi-account version — planned

Document version 2.0 · Last updated 2026-06-12 · Maintained by Horizen (Intelektas verslui, MB) · team@joinhorizen.com

Why this platform exists

An ecommerce account today runs across six campaign types at once, and the questions that decide budgets cut across all of them: which products and queries make margin, where spend leaks, what to scale next. The answers live in six different report screens, none of which know the store's margins. Exporting reports by hand, account by account, week after week, doesn't scale — and the Google Ads UI's keyword and placement views answer "what happened", not "what is this query, this keyword, this placement actually worth".

Horizen Insights closes that gap with one internal platform: scheduled, consistent reporting across every campaign type; query and keyword intelligence grounded in Google's own planning data; and placement-quality auditing. Its outputs drive the decisions Horizen makes in client accounts — manually, in the Google Ads interface.

The three modules

ModuleWhat it doesStatus
Reporting HubScheduled performance pulls across Search, Shopping, Performance Max, Display, Video, and Demand Gen into a normalised reporting store; ROAS and product-margin overlays; weekly decision reports per accountIn development
Keyword LabSearch-term mining (classifies queries for intent and waste) plus keyword expansion: candidate keywords enriched with search volumes, trends, seasonality, and forecasts from Google's keyword planning dataIn development
Placement AuditClassifies every website, mobile app, and YouTube channel ads ran on across seven quality dimensions plus a performance overlay; produces exclusion-ready segments — full module documentationWorking prototype

End-to-end workflow

Connect API: in dev

An account is connected once via Google OAuth (the account's own consent). Today, the equivalent input is manual report exports from the Google Ads UI. The Google Ads API integration replaces those exports — it is read-only (see API usage).

Pull API: in dev

Scheduled weekly pulls plus on-demand refreshes per account: campaign/ad-group/asset-group performance for all six campaign types, search term reports, product-level Shopping performance, and placement reports. Each pull lands in a staging area with hash-based dedup, so re-runs are idempotent.

Normalise live

Rows are parsed into a canonical store with consistent dimensions across campaign types — date, account, campaign, entity (query / product / placement / asset group), and metrics (impressions, clicks, cost, conversions, conversion value).

Enrich & classify livekeyword data: in dev

Three enrichment layers: placements get public metadata and seven-dimension quality labels (the shipped Placement Audit pipeline); search terms get intent and waste classification; keyword candidates get search volumes, trends, and forecasts from Google's keyword planning data. A margin table per client joins product economics onto Shopping and PMax rows.

Review live

The web UI presents per-account views: cross-campaign performance summaries, ranked waste candidates (queries and placements), keyword opportunities with volume and forecast context, and per-row evidence behind every label.

Act — manually, in Google Ads live

Outputs are decision documents and exclusion/expansion-ready CSV lists. The Horizen team applies approved changes (negative keywords, placement exclusions, new keywords, budget shifts) by hand in the Google Ads interface. The platform makes no changes to any account via the API.

Google Ads API usage

The API integration is the subject of our developer-token application. It is deliberately narrow: read-only reporting plus keyword planning, for accounts under or linked to the Horizen manager account, each authorised by its own OAuth consent.

PurposeAPI surfaceFrequency
Cross-campaign performanceGoogleAdsService.SearchStream — campaign, ad_group, asset_group queries with metrics, segmented by date and campaign typeWeekly per account + on demand
Search term reportssearch_term_view (Search, Shopping) and campaign_search_term_insight (Performance Max)Weekly per account
Shopping product performanceshopping_performance_view — product-level metrics joined to client margin dataWeekly per account
Placement reportsgroup_placement_view, detail_placement_view — input to the Placement Audit moduleWeekly per account + on demand
Keyword planningKeywordPlanIdeaService.GenerateKeywordIdeas, GenerateKeywordHistoricalMetrics, GenerateKeywordForecastMetrics — volumes, trends, forecasts for Keyword LabPer research session
Account discoveryCustomerService.ListAccessibleCustomers, customer_client queryOn connect
Status note. The Placement Audit classification pipeline is a working prototype used in client engagements today on manually exported reports. The Reporting Hub and Keyword Lab modules are in active development, and the read-only Google Ads API integration described above is what replaces manual exports across all three. This document and our API application describe the same scope.

Components

ComponentRoleNotes
Connector layerOAuth flows and scheduled report pulls per accountIn development; replaces manual UI exports; staged, hash-deduplicated, idempotent
Reporting storeSource of truth: normalised performance rows, labels, enrichment caches, margin tablesEmbedded SQL database (WAL mode), single-writer discipline
Classification enginesPlacement labeling (shipped) and search-term intent/waste labelingLLM-assisted; schema validator rejects malformed labels before any write
Keyword Lab engineJoins candidate keywords with planning data: volumes, trends, forecastsIn development; per research session, cached per client
Margin overlayPer-client product economics joined onto Shopping/PMax performanceClient-provided cost data; never shared across clients
Web UIPer-account dashboards, waste queues, keyword research views, export selectionLightweight Python web service + vanilla JS frontend
Export moduleDecision reports and exclusion/expansion-ready CSV listsApplied manually by the team in Google Ads

Data handling

Roadmap

Questions about this document: team@joinhorizen.com · Google Ads is a product of Google LLC; Horizen is independent and not affiliated with Google.