Implementing activation in your clean room

Overview of activation

The provider or consumer can send template results outside of the clean room in a process called activation. Snowflake supports three types of activation:

  • Provider activation, where results are pushed to a table in the provider’s Snowflake account.

  • Consumer activation, where results are pushed to a table in the consumer’s Snowflake account.

  • Third-party activation, where the provider or consumer pushes results to a Snowflake-approved third-party, such as LiveRamp or Meta Ads Manager, through an activation connector.

In all cases, the template must support activation the other party must approve activation for any columns of their own data that will be exported.

Activation supports differential privacy, if enabled, and respects differential privacy rules and budgets.

To activate data from a collaborator in a different cloud region, you must enable Cross-Cloud Auto-Fulfillment.

Provider and consumer activation

You can configure a clean room to save template results in the provider’s or consumer’s Snowflake account. Both the provider and consumer must approve activation of any data out of the clean room.

Activation is implemented using a dedicated activation template. In the clean rooms UI, an analysis template can be associated with an analysis template, and the user can run the analysis template and view the results, then run and activate the results of the associated activation template. The Snowflake-provided Audience Overlap & Segmentation flow does this.

An activation template need not be identical to its associated analysis template. The activation template is often a subset of the analysis template.

Supported templates

The following templates support provider and consumer activation:

Supported combinations

Activation can be run either by the provider or the consumer. You can combine various combinations of provider- and consumer-run analyses with provider and consumer activation. (Learn more about provider-run analyses.)

The following combinations are supported:

Provider activation

Consumer activation

Provider-run

Consumer-run

Results

Provider activation results are saved to the provider’s account SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.CONSUMER_DIRECT_ACTIVATION_SUMMARY table.

Consumer activation results are saved to the consumer’s account in SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY table.

See viewing results to learn how to read the data.

Implementing provider or consumer activation

Setup

1. Create or join a clean room

When creating or joining a clean room, in the Configure Analysis & Query step, under Activation Settings, specify which columns should be added to the results activated to your account.

2. Run the template and activate results

To run the activation associated with your analysis, complete these steps:

  1. Run your analysis.

  2. After running an analysis, select Results » Activate.

  3. Under Activation Hub select the name of the provider or consumer account to activate to.

  4. Provide information specific to the activation template, such as providing descriptive segmentation names or selecting activation columns.

  5. Provide a segment name: this is an arbitrary string used to identify a set of results. You can provide a different string for each activation to group each run’s results separately, or you can use the same segment name over multiple runs with input variations if you want to combine those results.

  6. Select Push Data.

  7. See the next section to learn how to view the activated results.

Viewing provider and consumer activation results

Activation results location and format

All provider activation results are appended to a Snowflake-designated table. Each row in the table maps to a row in the query result. Additional query results are appended to the table. You can distinguish between different runs by the ACTIVATION_ID column, which is unique per activation, and the SEGMENT column, which is specified by the caller for each activation run.

  • Provider activation results are stored in SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY in the provider’s account.

  • Consumer activation results are stored in SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.CONSUMER_DIRECT_ACTIVATION_SUMMARY in the consumer’s account.

These tables contain the following columns:

USER_ID:

One row of results, in JSON format, where the keys are the column names and the values are the value for that column in that row. The object also contains a column for each argument passed into the template.

ACTIVATION_ID:

A unique ID for each request. The ID is returned from a successful activation request. You can filter by this column to get all results for the same activation run, or filter by SEGMENT if you reuse the same segment name across multiple runs. This is the same as the query request ID returned by submit_analysis_request or run_activation.

CLEANROOM_NAME:

Name of the clean room where the query was run.

CONSUMER:

(Provider activation only) The consumer who approved this activation.

PROVIDER:

(Consumer activation only) The provider who approved this activation.

SEGMENT:

An arbitrary string value that you assign when you run the activation. This column enables you to join results across multiple query runs.

TIMESTAMP:

When the activation was run.

Provider activation example

SELECT * FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY WHERE segment = 'my_segment';

                             USER_ID                          |   CLEANROOM_NAME |   SEGMENT  | CONSUMER |          TIMESTAMP      |  ACTIVATION_ID
"{""AGE_BAND"":55,""ITEM_COUNT"":2328,""STATUS"":""MEMBER""}" |  test activation | my_segment | ABC1234  | 2025-04-01 16:27:14.068 | cleanroomactivationdataanalysisresults20250401231728469
"{""AGE_BAND"":20,""ITEM_COUNT"":88,""STATUS"":""PLATINUM""}" |  test activation | my_segment | ABC1234  | 2025-04-01 16:27:14.068 | cleanroomactivationdataanalysisresults20250401231728469
"{""AGE_BAND"":80,""ITEM_COUNT"":18,""STATUS"":""GOLD""}"     |  test activation | my_segment | ABC1234  | 2025-04-01 16:27:14.068 | cleanroomactivationdataanalysisresults20250401231728469
...

Reading provider or consumer activation results

Run the appropriate SQL command to view results activated to your Snowflake account:

View provider activation results

SELECT *
   FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY
   [WHERE segment = <SEGMENT_NAME>] [AND activation_id = <ACTIVATION_ID>];
Copy

View consumer activation results

SELECT *
   FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.CONSUMER_DIRECT_ACTIVATION_SUMMARY
   [WHERE segment = <SEGMENT_NAME>] [AND activation_id = <ACTIVATION_ID>];
Copy

Each row of data is combined into an object in the USER_ID column. You can flatten results using a query like the following:

-- Assuming columns AGE_BAND, STATUS, and ITEM_COUNT
SELECT
  item:"AGE_BAND",
  item:"STATUS",
  item:"ITEM_COUNT"
FROM (SELECT parse_json(user_id)
      AS item
      FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY
      WHERE segment = $segment_name)
ORDER BY item:"AGE_BAND", item:"STATUS" ASC
LIMIT 20 ;
Copy

View the latest 10 result rows in Snowsight:

  1. Open Snowsight and navigate to Data » Database.

    • For provider activation navigate to SAMOOHA_BY_SNOWFLAKE_LOCAL_DB » PUBLIC » Tables » PROVIDER_ACTIVATION_SUMMARY.

    • For consumer activation navigate to SAMOOHA_BY_SNOWFLAKE_LOCAL_DB » PUBLIC » Tables » CONSUMER_DIRECT_ACTIVATION_SUMMARY.

  2. Select Data Preview.

Third-party activation

Third-party activation deposits query results in the account of a Snowflake-approved third party using a third-party activation connector.

Third-party activation is supported only in the clean rooms UI, and not using custom templates.

Activation when using the clean rooms UI is supported only if the clean rooms account allows activation.

The clean rooms administrator must configure the environment to support third-party activation connectors, select the allowed connectors, and configure them, before they can be used in any clean room.

Third-party activation supports both consumer- and provider-run analyses.

Supported templates

The following templates support third-party activation:

  • Audience Overlap & Segmentation

  • SQL Query

Implementing third-party activation

  1. Create or join the clean room: When creating or joining the clean room, in the Configure Analysis & Query step, under Activation Settings, specify which columns should be added to the results activated to your account.

  2. Activate results:

    1. Run your analysis.

    2. After running an analysis, select Results » Activate.

    3. Under Activation Hub select the name of the third-party provider to activate to.

    4. Provide information specific to the provider. This can be providing descriptive names or selecting which columns to activate. The tooltips on the page should provide additional information for that provider.

    5. Select Push Data.