開発者 APIs を使用してアクティベーションするために結果をプロバイダーに送信する¶
コラボレーターは、コンシューマーに分析を実行させ、その結果をアクティベーションするためにプロバイダーにプッシュバックさせることを望むことがあります。このトピックでは、開発者 APIs を使用して、コンシューマーからプロバイダーに結果を送信する方法について説明します。
プロバイダーのアクティベーションの基本的なフローは以下の通りです。
- プロバイダー:
- コンシューマー:
プロバイダーのテンプレートを実行 し、結果をプロバイダーのSnowflakeアカウントに返送します。
- プロバイダー:
Snowflakeアカウントのテーブルに 結果を表示 します。
プロバイダーのアクティベーション用テンプレートの作成¶
結果を有効にするために使用されるテンプレートは、分析を実行するために使用されるテンプレートと似ています。例えば、分析テンプレートのように provider.add_custom_sql_template
コマンドでクリーンルームに追加します。しかし、アクティベーションテンプレートには次のような重要な違いがあります。
アクティベーションテンプレート名は、文字列
activation
で始まらなければなりません。例えば、activation_my_template
という名前のアクティベーションテンプレートは、この要件を満たしています。アクティベーションテンプレートは、特定の規約に従った名前のテーブルを作成し、テーブル名を明示的に返す必要があります。
アクティベーションテンプレートでテーブルを定義する¶
クリーンルームでアクティベーションの結果を保持するために、すべてのアクティベーションテンプレートはテーブルを作成しなければなりません。このテーブルには2つの条件があります。
テーブル名は、文字列
cleanroom.activation_data_
で始まらなければならない。たとえば、cleanroom.activation_data_analysis_results
という名前のテーブルの場合、テーブルを作成するテンプレート定義の部分は、テーブル名を形成するために
cleanroom.activation_data_
に追加された文字列を返さなければなりません。例えば、テーブル名がcleanroom.activation_data_analysis_results
の場合、文字列analysis_results
を返さなければなりません。
以下は、テーブルを定義し、それをエクスポートするためにテンプレート定義に含めなければならない内容の例です。
BEGIN
CREATE OR REPLACE TABLE cleanroom.activation_data_analysis_results AS
SELECT * FROM identifier({{ my_table[0] }})
RETURN 'analysis_results';
END;
クリーンルームにアクティベーションテンプレートを追加するための provider.add_custom_sql_template
コマンドの呼び出しの詳細については、 Snowflakeデータクリーンルーム:プロバイダーAPIリファレンスガイド をご参照ください。
必須テーブルのリンク¶
プロバイダーのアクティベーションを可能にするために、プロバイダーはコンシューマーと共有する前に、 samooha_by_snowflake_local_db.library.temp_public_key
テーブルをクリーンルームにリンクする必要がります。例えば、必要なテーブルをクリーンルーム my_activation_cleanroom
にリンクさせるには、以下を実行します。
CALL samooha_by_snowflake_local_db.provider.link_datasets(
'my_activation_cleanroom',
['samooha_by_snowflake_local_db.library.temp_public_key']);
また、他のテーブルやビューをリンクする際に、必要なテーブルをリンクするために単一の呼び出しを使用することもできます。
結果をプロバイダーに送り返す¶
コンシューマーは、 consumer.run_activation
コマンドを呼び出してアクティベーションテンプレートを実行することで、プロバイダーに結果を送り返します。これは、 consumer.run_analysis
コマンドの実行と同様です。違いは第2引数で、プロバイダーがアクティベーションの内容を識別するための文字列を指定します。
例えば、コンシューマーは電話をかけることができます。
CALL samooha_by_snowflake_local_db.consumer.run_activation(
'activation_clean_room',
'my_activation_segment',
'activation_custom_template',
['consumer_source_table'],
['provider_source_table'],
object_construct(
'dimensions', ['p.CAMPAIGN'],
'where_clause', 'p.EMAIL=c.EMAIL'
));
consumer.run_activation
コマンドの詳細については、 Snowflakeデータクリーンルーム:コンシューマーAPIリファレンスガイド をご参照ください。
プロバイダーとして起動した結果を表示する¶
コンシューマーが結果をプロバイダーにアクティベートした後、プロバイダーは自分のSnowflakeアカウントでこれらの結果を表示することができます(クリーンルーム環境ではありません)。プロバイダーは、Snowflakeアカウントにサインインして結果を表示する前に、クリーンルーム環境にサインインする必要があることに注意してください。
詳細については、 アクティブ化された結果の表示 をご覧ください。