xDBプログラミング:プログラムでキャンペーンと訪問情報を関連付ける

samatsu 8/9/2015 1227 N/A xDB Programming

xDBプログラミングサンプルシリーズとして、プログラムから、今回の訪問とキャンペーンを関連付ける方法をご紹介します。

Sitecoreではプログラムからキャンペーンを訪問(インタラクション)と関連付ける方法を記載します。

Sitecoreはコンテンツ管理システムの機能を持っているので、コンテンツ編集者がUIを使用してキャンペーンを関連付けることができます。コンテンツエディターやエクスペリエンスエディターを使用して属性コマンドをクリックすると、下図のように属性ダイアログが表示されてキャンペーンタブの中でコンテンツに関連付けたいキャンペーンをチェックするだけでOKです。訪問者がキャンペーンページを訪れると自動的にキャンペーンがインタラクションと関連付けられるようになります。

sc_camp クエリパラメーターにキャンペーンアイテムのID(GUID)を設定して訪問とキャンペーンを関連付けることもできます。リスティン広告など外部サイトからキャンペーンページにリンクを張るときなどに使用します。

プログラムでキャンペーンを関連付ける方法を説明していきます。今回はTestというサンプルのキャンペーンアイテムを使用する前提でサンプルプログラムを記載します。

ランディングページを表示したタイミングでキャンペーンをトリガーするには、次のようなサンプルコードを記載します。 キャンペーンアイテムのIDを使用してCampaignItemのインスタンスを作成して、TriggerCampaignメソッドを呼び出してキャンペーンを今回の訪問と関連付けます。

private void Page_Load(object sender, EventArgs e)
{
    if (Tracker.IsActive)
    {
        // 訪問のランディングページ(最初のページ)の場合は、インタラクションにキャンペーンが関連付けられ、
        // ランディングページ以外の場合は、ページイベントとしてキャンペーンがトリガーされたことが記録されます。
        // キャンペーンアイテムのキャンペーンのトラフィックの種類にチャネルが選択されている場合は、トラフィックの種類が切り替わります。
        Item test = Sitecore.Context.Database.GetItem("{D5B20B0F-5CE7-4B1A-8CE2-376ED9282508}");
        CampaignItem campaign = CampaignItem.Create(test);
        Tracker.Current.Interaction.CurrentPage.TriggerCampaign(campaign);
    }
}

MongoDBのInteranctionsコレクションをみると CampaignId 属性にトリガーしたキャンペーンアイテムのGUIDが設定されていることを確認できます。キャンペーンアイテムにトラフィックの種類を設定しているとChannelId属性に選択した種類のチャネルのIDが設定されていることがわかります。

ランディングページ(最初に訪問したページ)でキャンペーンと関連付けられた訪問の場合は、下図のようにエクスペリエンスプロファイルのタイムラインにキャンペーンのアイコンが表示され、最近のキャンペーンリストに関連付けたキャンペーンが表示されるようになります。

ランディングページ以外でキャンペーンをトリガーした場合は、上記のコードではページイベントとしてインタラクションドキュメントに関連付けられます(下図参照)。プログラムを変更することでランディングページ以外でもCampaignIdに設定されるようにできます。

エクスペリエンスプロファイルでイベント一覧にトリガーされたキャンペーンがその他のページイベントとともに表示されます。

プログラムでキャンペーンと関連付けたいということは少ないかもしれませんが、プログラムで関連付ける方法をご紹介しました。