If you use Google Ad Manager (GAM) — or a similar publisher-side ad platform — and want the revenue, impression, and click data those platforms collect to be available alongside your Piano Analytics traffic data, you have three options. This article lays them out and helps you choose the right one for your situation.
Option 1: Activate Ad Revenue Insights (recommended)
Ad Revenue Insights (ARI) is the Piano Analytics module designed specifically for this use case. When ARI is activated for your account, Piano captures ad-revenue data through standard events (Ad.impression, Widget.impression) joined with your existing site traffic, and exposes it through pre-configured Workspaces boards.
What you get with ARI:
-
Automated revenue, impression, and CPM tracking joined with Piano Analytics traffic data — no custom ETL.
-
Two prebuilt boards covering ad-operations and executive-level views.
-
Access to the full ARI data model (
ad_revenue, line-item type, ad platform, advertiser, content section, and so on) for custom reporting in Data Query. -
Native compatibility with Composer Insights and the rest of the Piano Analytics data model — you can analyze ad revenue against subscription revenue, content performance, and audience segments without additional integration work.
How to activate:
-
Contact your Piano Analytics account manager to confirm ARI can be added to your contract. ARI is a paid option, and pricing depends on your scope; your account manager will walk through what's needed.
-
Once activated, follow the Introduction to Ad Revenue Insights documentation for onboarding the prebuilt boards and reviewing the data model.
This is the only path that requires no custom development from your side, so it is the recommended option if your contract can accommodate it.
Option 2: Site/app-side custom event tagging
If activating ARI is not an option (for example, your contract doesn't currently cover it, or you only need a subset of the ad-revenue use cases), you can implement custom events on the site or app side that report ad activity to Piano Analytics directly via the Piano Analytics SDK.
How it works:
-
For each ad impression or click you want to track, trigger a custom event using the JavaScript SDK (or a mobile SDK equivalent) when the impression or click fires in your ad serving code.
-
Include the ad-context properties you need on the event — typically the ad unit ID, line item, advertiser, and revenue amount (if known at impression time).
-
These custom events are stored in Piano Analytics and can be analyzed through Data Query like any other event.
Trade-offs:
-
No additional Piano cost — this approach uses your existing Piano Analytics tagging.
-
Requires development effort on the site/app side to wire the events into your ad serving code, and ongoing maintenance as the ad serving evolves.
-
No prebuilt boards. You build your own analyses in Data Query against the custom events.
-
Revenue accuracy depends on what's available at impression time. If your revenue figures are only finalized later (for example, post-auction or post-reconciliation in GAM), the site-side event will not have an accurate revenue value and you'll need to reconcile separately.
Option 3: Import aggregated metrics via Measurements
A third path is to export aggregated ad-platform reports from GAM (or similar) and bring them into Piano Analytics using the Measurements feature. Measurements is Piano Analytics' purpose-built mechanism for importing numerical, time-linked, aggregated data — exactly the shape of a GAM daily revenue or impressions report.
How it works:
-
Configure your ad platform (GAM, for example) to deliver daily exports — typically CSV downloads or BigQuery exports — of the metrics you want to track (revenue, impressions, clicks, CPM, fill rate, etc.) at the granularity you need (per day, per ad unit, per line item, per advertiser).
-
Send the aggregated values to Piano Analytics as Measurement metrics, qualified by properties that act as reconciliation keys. Standard Piano Analytics properties (such as country or region) can be reused; ad-specific dimensions (ad unit, line item, advertiser) are declared as custom properties on the Measurement.
-
Once imported, the data is available alongside analytical data in Explorer, Data Query, and Workspaces, so you can, for example, plot GAM revenue per day next to your site's visit volume in a single chart, or break revenue down by an ad-unit property joined to your content sections.
Trade-offs:
-
No additional Piano licensing cost beyond your existing Piano Analytics contract.
-
Some engineering effort — you build a small ETL that reads the daily report, transforms each row into a Measurement payload, and POSTs it to the Measurements endpoint. The process is officially supported and documented (unlike the ad-hoc Data-In approach), so it's lighter than building from scratch.
-
Aggregated, not event-level. Measurements imports aggregated values (e.g., "revenue per ad unit per day"), not individual impressions. You can't drill from a Measurement value down to a specific user session — granular analysis still requires Option 1 (ARI) or Option 2 (event tagging).
-
Daily, not real-time. Data lands in Piano Analytics on the day after the GAM report covers.
-
Not available in Data Flow or Data Sharing. Measurement data is exposed in the interface, Explorer, Data Query, and Workspaces — but it does not flow into Data Flow or Data Sharing exports.
-
No prebuilt boards. You build the visualizations you need in Workspaces / Data Query against the imported Measurement metrics and properties.
Which option should I choose?
|
If you want… |
Choose |
|---|---|
|
The fastest path to full ad-revenue analytics, joined with site data, with prebuilt boards |
Ad Revenue Insights (Option 1) |
|
Lightweight ad-event tracking already inside your existing PA contract, and you have site/app developer bandwidth |
Custom event tagging (Option 2) |
|
Daily aggregate ad-platform data joined with PA, no extra Piano cost, and you have engineering bandwidth for a lightweight ETL |
Measurements import (Option 3) |
|
Side-by-side analysis only (no join needed) |
None — analyze in each tool's own reporting interface |
What about Google Ads, Meta Ads, or Search Ads 360?
Ad Revenue Insights focuses on publisher-side ad revenue — the money your site earns from showing ads. It is distinct from Ad Performance Insights, which focuses on outbound advertising costs — what you spend on Google Ads or Meta Ads to acquire visitors.
If your integration question is about outbound campaigns (Google Ads, Meta Ads), see the Ad Performance docs instead. ARI does not currently have native connectors for Google Ads, Meta Ads, or Search Ads 360 because those are acquisition platforms, not monetization platforms.