サンプル ページ イベントの登録

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

ページイベントを作成した後、ページイベントをプログラムで登録する必要もあります。ページ イベントを登録するコードにより、イベントがコンタクトによってトリガーされたときに、Sitecore Experience Database (xDB) に登録されます。ただし、ページ イベントがトリガーされると、すぐにはxDBに保存されず、アクティブ セッションに保存されます。つまり、セッションが終了したときにのみxDBに保存されます。接触がロボットとして分類されている場合、セッションとページ イベントはxDBに保存されません。

プログラムでページ イベントを登録するために使用できるコード サンプルは2つあります。

  • Standard registration code - ページイベントを登録するための完全なコード。

  • 重複するページイベントを防ぐ登録コード。

標準登録コード

このコード サンプルを使用すると、ページ イベントを登録できます。

    private void RegisterPageEvent(string name, Guid definitionId, Guid itemId, string data, string text)
    {
      Assert.IsNotNull(Tracker.Current, "Tracker.Current");
      Assert.IsNotNull(Tracker.Current.Session, "Tracker.Current.Session");
      var interaction = Tracker.Current.Session.Interaction;
      Assert.IsNotNull(interaction, "Tracker.Current.Session.Interaction");
      Assert.IsNotNull(interaction.CurrentPage, "Tracker.Current.Session.Interaction.CurrentPage");
      var pageEventData = new PageEventData(name, definitionId)
      {
        ItemId = itemId,
        Data = data,
        Text = text
      };
      interaction.CurrentPage.Register(pageEventData);
    }

重複ページイベントを防ぐ登録コード

重複をチェックするIfステートメントを記述するには、異なるLINQステートメントを使用して2つの方法があります。

All LINQ拡張機能を使用する場合:

      if (interaction.CurrentPage.PageEvents.All(pe => pe.PageEventDefinitionId != definitionId))

Any LINQ拡張機能を使用する場合:

      if (!interaction.CurrentPage.PageEvents.Any(pe => pe.PageEventDefinitionId == definitionId))

ページイベントがまだ登録されていない場合は、登録できます。

重複するページイベントを回避するための完全なコードサンプル:

    private void RegisterUniquePageEvent(string name, Guid definitionId, Guid itemId, string data, string text)
    {
      Assert.IsNotNull(Tracker.Current, "Tracker.Current");
      Assert.IsNotNull(Tracker.Current.Session, "Tracker.Current.Session");
      var interaction = Tracker.Current.Session.Interaction;
      Assert.IsNotNull(interaction, "Tracker.Current.Session.Interaction");
      Assert.IsNotNull(interaction.CurrentPage, "Tracker.Current.Session.Interaction.CurrentPage");
      if (interaction.CurrentPage.PageEvents.All(pe => pe.PageEventDefinitionId != definitionId))
      {
        var pageEventData = new PageEventData(name, definitionId)
        {
          ItemId = itemId,
          Data = data,
          Text = text
        };
        interaction.CurrentPage.Register(pageEventData);
      }
    } 
この記事を改善するための提案がある場合は、 お知らせください!