Filtered row summary

Rows that aren't adequately aggregated to protect end-user privacy, or don't meet Ads Data Hub's other privacy checks, will be dropped from the results of a given query. You can configure a filtered row summary to return a single row containing constants and sums from dropped rows. This can help prevent discrepancies in your data totals, such as a total impression or total click count.


In the example below, the rows containing campaigns 124 and 125 would be filtered, as they don’t meet the 50-user aggregation requirement.

Campaign ID Users
123 400
124 45
125 6

However, using a filtered row summary, the filtered data can be combined to meet the 50-user aggregation requirement. This example uses a sum to tally filtered data, and a constant to label the row:

  • A sum that aggregates filtered data from the Users column.
  • A constant (used to label the filtered row summary), set to "Filtered row summary" in the Campaign ID column.
Campaign ID Users
Filtered row summary 51
123 400


To add a filtered row summary to a query:

  1. Identify the column that you would like to aggregate.
  2. Click + Add rule under "Filtered row summary" in the right-hand-side of the query editor.
  3. Enter the name of the column you would like to aggregate in the Column name field.
  4. Select Sum from the dropdown. If the sum falls below aggregation thresholds, the filtered row summary will be dropped.
  5. Optionally, add an identifier for the filtered row summary using a constant. Your constant must be a valid data type for your chosen row.
    1. Enter the name of the column in the Column name field.
    2. Select Constant from the "Datatype" dropdown menu.
    3. Enter an identifier for the row in the Specify constant field.

If you are exporting multiple tables using the in-sql syntax introduced in Exporting multiple tables, then you can add a filtered row summary in the column options:

CREATE TABLE `myproject.mydataset.mytable` (
    campaign_id INT64 OPTIONS(merge_constant=0),
    ct INT64 OPTIONS(merge_type="SUM")
OPTIONS(privacy_checked_export=true) AS
SELECT campaign_id, COUNT(*) AS ct GROUP BY campaign_id;

This will produce a result table with a filtered row summary where the campaign_id is 0 and ct will be the sum of rows that were filtered from the result due to privacy checks.

Currently, the available column options for filtered-row summary are:

  • merge_type="SUM": Outputs the sum of filtered values in the summary row. Valid only for numeric types.
  • merge_constant=<value>: Sets a constant value in the summary row. Must have same type as the column.
  • columns with no specified option will have NULL in the summary row.

Only one of merge_type or merge_constant may be specified. Any rules for filtered row summaries apply here, too (i.e. if the sum falls below the aggregation thresholds, the filtered row summary will be dropped).