メインコンテンツへスキップ
見出し画像
Photo bynote_zakky

【第587回】Personalization:Sitemap Builder で Event を設定する

    Nobuyuki Watanabe

    前回の記事では、Salesforce Personalization の Sitemap Builder で Profile Attributes を設定し、TrailNest の Checkout で入力された、

    • Email Address

    • Customer ID

    を、それぞれ以下として扱う準備を行いました。

    • Email Address
      → Contact Point Email

    • Customer ID
      → Party Identification

    これまでの記事では、

    • Page Types
      → 現在表示されているページを判定

    • Resolvers
      → Web ページ上の値を取得

    • Profile Attributes
      → ユーザー自身に関する情報を定義

    という順番で設定してきました。

    ただし、ここまで設定しただけでは、

    • 商品を閲覧した

    • Cart に商品を追加した

    • Checkout を実行した

    • 商品を購入した

    といった、ユーザーの行動そのもの はまだ Event として定義していません。

    そこで、今回は Sitemap Builder の Events タブを設定していきます。


    Personalization 基礎シリーズ

    Sitemap Builder シリーズ

    Data 360 設定シリーズ

    Personalization 設定シリーズ


    Event とは

    Event は、Web サイト上でユーザーが行った Interaction を取得するための仕組みです。

    例えば、

    • Product Detail を表示した

    • Add to Cart をクリックした

    • Form を送信した

    • 商品を購入した

    といった、データとして取得したい行動のみを Event として設定 します。

    Salesforce Interactions SDK には

    • Catalog

    • Cart

    • Order

    などの標準的な Interaction が用意されており、それ以外の行動は Custom Event として定義できます。


    Events タブを確認

    Sitemap Builder の Events タブを開きます。

    今回の環境では、最初から Page View という Event が用意されています。

    画像

    これは、次の記事で PageType に対して、Event の紐づけシーンで、

    • Home

    • Category

    • Cart

    • Checkout

    に紐づけますので、そのままにしてください。

    • Event Type:userEngagement

    • Line Items:なし

    • Interaction Attributes:なし

    • Profile Attributes:なし

    {
      interaction: {
        name: "Page View",
        eventType: "userEngagement"
      }
    }

    Standard Event の設定

    上の Page View は Custom Event です。その一方で、Product View、Add to Cart、Purchase など、Salesforce Interactions SDK が標準で用意している Interaction を利用する場合は、Standard Event を使用します。

    Standard Event を選択すると、Custom Event とは設定画面の構成が少し異なります。

    主な設定項目は、

    • ① Category

    • ② Interaction

    • ③ Field Mapping

    • ④ Interaction Attributes

    • ⑤ Profile Attributes

    • ⑥ Preview

    です。

    1. Category

    まず、作成する Event の種類を選択します。

    今回の画面では、

    • Catalog

    • Cart

    • Order

    から選択できます。

    例えば、

    • 商品の閲覧 → Catalog

    • Cart への追加 → Cart

    • 購入 → Order

    という形で選択します。

    2. Interaction

    選択した Category に応じて、利用できる Standard Interaction が表示されます。

    例えば Catalog では、

    • View Catalog Object

    • View Catalog Object Detail

    • Quick View Catalog Object

    • Share Catalog Object

    • Review Catalog Object

    • Comment Catalog Object

    • Favorite Catalog Object

    などから選択できます。

    今回 Product Detail の閲覧を取得する場合は、

    View Catalog Object

    を使用します。

    Standard Interaction を使用する場合は、Custom Event のように Event Type を手入力する必要はありません。

    Salesforce Interactions SDK が Interaction の種類から適切な eventType を自動的に判断します。

    例えば、

    View Catalog Object
    → catalog

    Add To Cart
    → cart

    Purchase
    → order

    として処理されます。

    3. Field Mapping

    Field Mapping では、その Standard Interaction に必要な値を Resolver と結び付けます。

    Product View の場合は、

    • Catalog Object Type

    • ID Resolver

    などを設定します。

    例えば、

    • Catalog Object Type:Product

    • ID Resolver:Product ID

    とすることで、「Product ID Resolver で取得した商品が閲覧された」という Catalog Interaction を作成できます。

    選択する Standard Interaction によって、ここに表示される Field Mapping の項目は異なります。

    例えば Add to Cart では Line Item、Purchase では Order ID や Total Value など、Event の種類に必要な項目が表示されます。

    4. Interaction Attributes

    Standard Interaction に追加情報を持たせたい場合に使用します。

    例えば Product View では、

    • Product Name

    • Product Price

    などを Resolver から追加できます。

    5. Profile Attributes

    必要であれば、前回作成した Email Capture などの Profile Data を Event と一緒に送信できます。

    ただし、すべての Event に Profile Attributes を付ける必要はありません。

    例えば Product View の時点では Email Address が分かっていない可能性があるため、今回は None とします。

    6. Preview

    最後に Preview で、Standard Interaction がどのような Payload として生成されるか確認します。


    今回作成する Event

    今回は、TrailNest で使用する次の Event を作成します。

    ① Product View

    Product Detail が表示されたことを取得します。

    ② Add to Cart

    商品を Cart に追加したことを取得します。

    ③ Customer Confirm Email

    Checkout で確認された Email Address を Contact Point Email として取得します。

    ④ Customer Identification

    Checkout で確認された Customer ID を Party Identification として取得します。

    ⑤ Purchase

    注文が完了したことを、購入した商品明細とあわせて取得します。

    • Product View、Add to Cart、Purchase では、これまで作成してきた Resolver を利用します。

    • Customer Confirm Email と Customer Identification では、前回作成した Profile Attributes を利用します。


    ① Product View を作成

    それでは + Add New Event をクリックします。

    画像

    今回は商品情報を扱うため Standard Event を選択します。

    画像

    Product View には、次の内容を設定します。

    • Label:Product View

    • Category:Catalog

    • Interaction:View Catalog Object

    • Catalog Object Type:Product

    • ID Resolver:Product ID

    View Catalog Object は、Product や Category、Article などの Catalog Object が閲覧されたことを取得するための Standard Interaction です。

    Catalog Interaction では、Catalog Object の Type と ID によって、何が閲覧されたのか を特定します。


    Product Name と Product Price を追加

    Product View には、Product ID だけでなく Product Name と Product Price も追加します。

    Interaction Attributes の Add Attribute をクリックし、次の Attribute を追加します。

    Price

    • Key:Price

    • Type:Resolver

    • Value:Product Price

    Name

    • Key:Name

    • Type:Resolver

    • Value:Product Name

    画像

    Preview を確認して問題がなければ Save をクリックします。

    {
      interaction: {
        name: SI.CatalogObjectInteractionName.ViewCatalogObject,
        catalogObject: {
          type: "Product",
          id: null,
          attributes: {
            Price: productprice(),
            Name: productname()
          }
        }
      }
    }

    Product View を作成しただけでは送信されない

    ここで重要なのは、Product View Event を作成しただけでは、Product Detail を開いた際に自動的に送信されるわけではない点です。

    このあと Page Types に戻って、

    Product Detail
    → On Page Load Interaction
    → Product View

    と設定することで、

    Product Detail が表示された
    ↓
    Product View を送信

    という関係を作ります。

    この設定は次回の記事で行います。


    ② Add to Cart を作成

    次に Add to Cart Event を作成します。

    Add To Cart は、商品を Cart に追加したことを取得する Standard Cart Interaction です。

    1 回の Add To Cart では、追加された商品を 1 つの Line Item として送信できます。


    Add to Cart Event を設定

    再び Events タブに戻り、+ Add New Event をクリックして Standard Event を選択します。

    次の内容を設定します。

    • Label:Add to Cart

    • Category:Cart

    • Interaction:Add To Cart

    • Line Item Mode:Single Item

    • Catalog Object Type:Product

    • Catalog Object ID Resolver:Product ID

    • Quantity Resolver:Product Quantity

    • Price Resolver:Product Price

    途中の設定である Cart ID Selector は任意項目です。今回の TrailNest では Cart を識別する固有の Cart ID を持っていないため、設定せずに進めます。ログインカートや Commerce システムなどで一意の Cart ID を取得できる場合は、その値を Resolver で設定できます。

    これで、

    どの商品を
    → Product ID

    何個
    → Product Quantity

    いくらで
    → Product Price

    Cart に追加したのかを取得できます。

    設定できたら Preview を確認して Save をクリックします。

    {
      interaction: {
        name: SI.CartInteractionName.AddToCart,
        lineItem: {
          catalogObjectType: "Product",
          catalogObjectId: productid(),
          quantity: productquantity(),
          price: productprice()
        }
      }
    }
    画像

    Add to Cart は Listener から送信する

    Product View は Product Detail の表示時に送信しますが、Add to Cart はページを表示しただけでは発生しません。

    ユーザーが、

    Add to Cart ボタンをクリックした

    ときに送信する必要があります。

    TrailNest には Add to Cart 用のボタンを用意しています。

    次回の記事で Page Types に戻り、このボタンを Listener で監視して、

    Add to Cart ボタンをクリック
    ↓
    Add to Cart Event を送信

    という設定を行います。


    ③ Customer Confirm Email を作成

    まず、Checkout で確認された Email Address を送信する Event を作成します。

    + Add New Event をクリックし、Custom Event を選択します。

    画像

    次の内容を設定します。

    • Label:Customer Confirm Email

    • Event Type:userEngagement

    • Profile Attributes:Email Capture

    Preview では、次のような構成になります。

    {
      interaction: {
        name: "Customer Confirm Email",
        eventType: "userEngagement"
      },
      user: {
        attributes: {
          eventType: "contactPointEmail",
          email: checkoutemail()
        }
      }
    }
    画像

    この 1 回の Event から、userEngagement の Engagement Event と contactPointEmail の Profile Event がそれぞれ Data 360 へ送信されます。

    問題がなければ Save をクリックします。


    ④ Customer Identification を作成

    続いて、Checkout で確認された Customer ID を Party Identification として送信する Event を作成します。

    再び + Add New Event をクリックし、Custom Event を選択します。

    画像

    次の内容を設定します。

    • Label:Customer Identification

    • Event Type:userEngagement

    • Profile Attributes:Customer Identification

    Preview では、次のような構成になります。

    {
      interaction: {
        name: "Customer Identification",
        eventType: "userEngagement"
      },
      user: {
        attributes: {
          eventType: "partyIdentification",
          IDName: "TrailNest Customer ID",
          IDType: "Customer ID",
          userId: checkoutcustomerid()
        }
      }
    }
    画像

    Customer ID は userId として送信され、後ほど Party Identification DMO の Identification Number に Mapping します。

    問題がなければ Save をクリックします。

    この段階では 2 つの Event を作成するところまでにします。

    次回の記事で、どちらも Checkout の Confirm Customer ボタンに紐付けます。


    ⑤ Purchase を作成

    最後に Purchase Event を作成します。

    Purchase は注文が完了したことを取得する Standard Order Interaction です。

    Purchase では、

    • Order ID

    • Total Value

    • Line Items

    を使用して、注文全体と購入した商品明細を取得します。

    TrailNest では Place Order を実行すると、

    • Order ID

    • Date Time

    • Customer

    • Items

    • Total

    を含む Order Object を作成し、trailnest_last_order として Local Storage に保存しています。

    また、Order Confirmation では購入商品ごとに、

    <div
        class="checkout-summary-item"
        data-product-id="TN-BP-003"
        data-quantity="1"
        data-price="79000">

    のような要素を出力しています。

    今回は、この商品要素を Purchase の Line Items として取得します。


    Purchase Event を設定

    Events タブで + Add New Event をクリックし、Standard Event を追加します。

    次の内容を設定します。

    • Label:Purchase

    • Category:Order

    • Interaction:Purchase

    • Order ID Selector:Order ID

    • Total Value Selector (number):Order Total

    画像

    続いて Line Items Mapping を設定します。

    • Line Items Selector:.checkout-summary-item

    • Catalog Object Type:Product

    • Catalog Object ID Resolver:Order Item Product ID

    • Quantity Resolver:Order Item Quantity

    • Price Resolver:Order Item Price

    画像

    Line Items Selector には、Order Confirmation 上に表示されている各購入商品を表す .checkout-summary-item を指定します。

    一致した各商品要素は $item として、前回作成した Order Item 用 Resolver に渡されます。

    そのため、

    Product ID
    → Order Item Product ID

    Quantity
    → Order Item Quantity

    Price
    → Order Item Price

    として、購入商品ごとの情報を取得できます。

    今回は、

    • Line Item Attributes:なし

    • Interaction Attributes:なし

    • Profile Attributes:None

    のまま進めます。

    Preview を確認して Save をクリックします。

    {
      interaction: {
        name: SI.OrderInteractionName.Purchase,
        order: {
          id: orderid(),
          totalValue: ordertotal(),
          lineItems: cashDom(".checkout-summary-item").map((index, el) => {
            const $item = cashDom(el);
            return {
              catalogObjectType: "Product",
              catalogObjectId: orderitemproductid($item),
              quantity: orderitemquantity($item),
              price: orderitemprice($item)
            };
          }).get()
        }
      }
    }

    これには以下の処理が含まれます。

    .checkout-summary-item を全部取得
    ↓
    1件ずつ $item にする
    ↓
    Order Item Product ID
    Order Item Quantity
    Order Item Price
    で値を取得
    ↓
    lineItems 配列を作る


    Purchase は Order Confirmation で送信する

    TrailNest では、注文完了後に Order Confirmation ページへ移動します。

    そのページには Order ID や Total が表示されるだけでなく、Local Storage に保存した Order 情報も利用できます。

    そのため Purchase は、

    Order Confirmation が表示された
    ↓
    Purchase Event を送信

    という設定にします。

    これも次回、Page Types の On Page Load Interaction から設定します。


    いかがでしたでしょうか。

    今回 Event を作成したことで、これまで個別に設定してきた Resolver や Profile Attribute を、実際のユーザー行動と結び付ける準備ができました。

    ここまでで、

    • 何を Event として送信するのか は定義できました。

    ただし、

    • まだ、いつ、その Event を送信するのか を設定していません。

    次回は、今回作成した Event を Page Type に紐付けて、実際に発火する条件を設定します。

    Page Load Interaction や Listener を使用して、

    Product Detail の表示
    → Product View

    Add to Cart のクリック
    → Add to Cart

    Confirm Customer のクリック
    → Customer Confirm Email
    → Customer Identification

    Order Confirmation の表示
    → Purchase

    が送信されるように設定していきます。

    今回は以上です。


    次の記事はこちら

    前回の記事はこちら

    私の note のトップページはこちら

     
     
     
    Salesforce Marketing Cloud、Agentforce、Data Cloud、Salesforce 認定資格に関する実践的な情報を発信しています。これらの記事が、皆さまの学習や日々の業務に少しでもお役に立てば幸いです。