開発者 APIs を使用してアクティベーションするために結果をプロバイダーに送信する

コラボレーターは、コンシューマーに分析を実行させ、その結果をアクティベーションするためにプロバイダーにプッシュバックさせることを望むことがあります。このトピックでは、開発者 APIs を使用して、コンシューマーからプロバイダーに結果を送信する方法について説明します。

プロバイダーのアクティベーションの基本的なフローは以下の通りです。

プロバイダー:
  • アクティベーション用にプロバイダーに結果を送信するために、コンシューマーが実行できる テンプレートを作成 します。

  • テーブルをクリーンルームに リンク samooha_by_snowflake_local_db.library.temp_public_key します。

コンシューマー:

プロバイダーのテンプレートを実行 し、結果をプロバイダーの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;
Copy

クリーンルームにアクティベーションテンプレートを追加するための provider.add_custom_sql_template コマンドの呼び出しの詳細については、 Snowflakeデータクリーンルーム:プロバイダーAPIリファレンスガイド をご参照ください。

結果をプロバイダーに送り返す

コンシューマーは、 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'
));
Copy

consumer.run_activation コマンドの詳細については、 Snowflakeデータクリーンルーム:コンシューマーAPIリファレンスガイド をご参照ください。

プロバイダーとして起動した結果を表示する

コンシューマーが結果をプロバイダーにアクティベートした後、プロバイダーは自分のSnowflakeアカウントでこれらの結果を表示することができます(クリーンルーム環境ではありません)。プロバイダーは、Snowflakeアカウントにサインインして結果を表示する前に、クリーンルーム環境にサインインする必要があることに注意してください。

詳細については、 アクティブ化された結果の表示 をご覧ください。