【第71回】 データフィルターにおけるデータリレーションシップ使用時の注意点
今回は SQL を使用できないマーケターの強い味方である Email Studio のデータフィルターについての記事です。Salesforce Marketing Cloud の画面上からドラッグアンドドロップで条件を設定していくだけで、簡単に配信リストが作成できます。
データフィルターのオプションとして「データリレーションシップ」機能を使用されている方も多いかと思います。データリレーションシップを使用していない方のために説明しますと、データリレーションシップ機能を使用していない場合は、単純にフィルター時にはソースとなるデータエクステンションが持っているフィールドのみを条件にすることになります。
例えば、会員情報が含まれるソースデータエクステンションであれば「性別」や「住んでいる県」のフィールドがあると思いますが
とフィルター条件を設定することで
という配信リストができるわけですね。
ここでデータリレーションシップ機能を使用すると、主たるソースデータエクステンションと、それとは異なる従たるデータエクステンションを結合させて、従たるデータエクステンション側のフィールドを条件にしてフィルターを作成することができます。(※直列に 3つ連続では結合できません。)
例えば、購買データが格納されている従たるデータエクステンションがあり「この購買データを活用したい!」と思っています。会員情報が含まれる主たるソースデータエクステンションと、購買データが格納されている従たるデータエクステンションには、それぞれ「会員 ID」というキーフィールドがあります。このキーフィールドを、それぞれを「結合キー」として結合します。
この時、主たるソースデータエクエステンションのすべてのプライマリーキーを結合キーとする必要があります。仮に主たるデータエクエステンションにプライマリーキーが複数ある場合、従たるデータエクエステンション側にも、それに対応するフィールドが存在しないと正しく結合できません。
さて、以上のような対応をすることで「購買データ」が格納されている従たるデータエクステンション側の「商品名」というフィールドや「購入日」というフィールドが、主たるソースデータエクステンションのフィルター作成時に使用できるようになるわけですね。
これらのフィールドを使用して、先ほどのフィルター条件を作成しますと
とすれば
という配信リストが作成できるわけです。便利ですよね。このような複雑な配信リストであっても、SQL を使用せずに、画面上から簡単に作成ができるようになります。
ここまでが、データリレーションシップの基本的な使い方の説明でしたが、今回のタイトルに記載した通り、データリレーションシップ使用時の注意点も記載したいと思います。
まずは、従たるデータエクエステンション側のフィールドを使用してフィルターを作成した場合、その結合されたデータエクエステンション間が強制的に SQL で言うところの INNER JOIN(内部結合) のような状態になってしうので注意してください。結合しただけでは INNER JOIN のような状態にはなりません。1 つでもフィールドをフィルター条件に使用した場合だけとなります。
INNER JOIN(内部結合)とは何?という方のために、上で挙げた例で説明しますと、従たるデータリレーションシップのあるフィールド(「商品名」や「購入日」など)を 1 つでもフィルターの条件で使用した時点で「購買データ」がある人であることが前提となります。つまり、従たるデータエクエステンション側に存在していない人、つまり、一度も購入していない人は抽出の対象外となります。
別の例でも説明しておきます。100 万人の顧客リストが主たるデータエクステンションとしてあったとして、購買データとしては 20 万人分だけがあったとします。つまり 80 万人は「顧客リストとしては存在するけど、まだ購入していない」という状況です。
この状態で配信リストを作ると、強制的に内部結合が起こり、主たるデータエクステンションの抽出対象が「購買データのある 20 万人分だけに限定されてしまう」というわけです。
もちろん、ここから「商品名」や「購入日」などを使用してセグメントを切るんだから、何も問題ないじゃない?と思うかもしれませんが、以下のようなセグメントが切れない、という点が注意が必要です。
この抽出結果は「0」となります。理由は、先ほども書きました通り、すでに「購買データがある人」に限定されているからですね。
いかがでしたでしょうか。
データリレーションシップのあるデータエクステンションのフィールドを使ったフィルター作成において、何度実行しても、抽出結果が「0」になってしまうということであれば、今作ろうとしている配信リストが条件的にフィルターでは実行できないのではないか?ということを疑って下さい。
また、このような場合はフィルターでは作成できないだけで、SQL で作成すれば、解決することが多いので SQL で作成することを検討してください。
最後に、データリレーションシップの注意点をまとめたいと思います。
今回は以上です。