カスタムイベントの作成

独自のストアフロントイベントを作成して、業界固有のデータを収集することで、​ イベントプラットフォーム ​を拡張できます。 カスタムイベントを作成して設定すると、Adobe Commerce Events Collectorに送信されます。

カスタムイベントの処理

カスタムイベントは、Adobe Experience Platformでのみサポートされています。 カスタムデータは、Adobe Commerce ダッシュボードや指標トラッカーには転送されません。

任意のcustom イベントの場合、コレクター:

  • identityMapECIDのプライマリ IDとして追加します
  • emailがセカンダリ ID としてidentityMapに含まれます( personalEmail.addressがイベントで設定されている場合)
  • Edgeに転送する前に、xdm オブジェクト内でイベント全体をラップします

例:

Adobe Commerce Events SDKを通じて公開されたカスタムイベント:

mse.publish.custom({
    commerce: {
        saveForLaters: {
            value: 1,
        },
    },
});

Experience Platform Edgeでは、

{
  xdm: {
    identityMap: {
      ECID: [
        {
          id: 'ecid1234',
          primary: true
        }
      ],
      email: [
        {
          id: "runs@safari.ke",
          primary: false
        }
      ]
    },
    commerce: {
        saveForLaters: {
            value: 1
        }
    }
  }
}
NOTE
カスタムイベントを使用すると、デフォルトのAdobe Analytics レポートに影響する場合があります。

イベントの上書き(カスタム属性)の処理

customContextを持つ任意のイベントセットの場合、コレクターは、イベントペイロードのフィールドをcustom contextのフィールドから上書きまたは拡張します。 オーバーライドのユースケースは、開発者が既にサポートされているイベントでページの他の部分によって設定されたコンテキストを再利用および拡張したい場合です。

イベントの上書きは、Experience Platformに転送する場合にのみ適用されます。 Adobe CommerceおよびSensei Analytics イベントには適用されません。 Adobe Commerce Events Collector READMEは、追加情報を提供します。

NOTE
Experience Platform イベントペイロードのカスタム属性でproductListItemsを強化する場合は、SKUを使用して商品を一致させます。 この要件は、product-page-view イベントには適用されません。

使用状況

const mse = window.magentoStorefrontEvents;

mse.publish.productPageView(customCtx);

例1

次の使用例は、イベントの公開時にカスタム コンテキストを追加します。

magentoStorefrontEvents.publish.productPageView({
    productListItems: [
        {
            productCategories: [
                {
                    categoryID: "cat_15",
                    categoryName: "summer pants",
                    categoryPath: "pants/mens/summer",
                },
            ],
        },
    ],
});

例2

次の使用例は、イベントを公開する前にカスタム コンテキストを追加します。

const mse = window.magentoStorefrontEvents;

mse.context.setCustom({
  productListItems: [
    {
      productCategories: [
        {
          categoryID: "cat_15",
          categoryName: "summer pants",
          categoryPath: "pants/mens/summer",
        },
      ],
    },
  ],
});

mse.publish.productPageView();

例3

次の使用例は、パブリッシャーでカスタムコンテキストを設定し、以前にAdobe Client Data Layerで設定したカスタムコンテキストを上書きします。

この例では、pageView イベントには、web.webPageDetails.name フィールドに​ カスタムページ名2 ​が含まれます。

const mse = window.magentoStorefrontEvents;

mse.context.setCustom({
  web: {
    webPageDetails: {
      name: 'Custom Page Name 1'
    },
  },
});

mse.publish.pageView({
  web: {
    webPageDetails: {
      name: 'Custom Page Name 2'
    },
  },
});

例4

次の使用例は、複数の製品を含むproductListItems件のイベントにカスタム コンテキストを追加します。

const mse = window.magentoStorefrontEvents;

mse.context.setCustom({
  productListItems: [
    {
      SKU: "24-WB01", //Match SKU to override correct product in event payload
      productCategory: "Hand Bag", //Custom attribute added to event payload
      name: "Strive Handbag (CustomName)" //Override existing attribute with custom value in event payload
    },
    {
      SKU: "24-MB04",
      productCategory: "Backpack Bag",
      name: "Strive Backpack (CustomName)"
    },
  ],
});

mse.publish.shoppingCartView();

Luma ベースのストア:

Luma ベースのストアは公開イベントをネイティブに実装するので、customContextを拡張してカスタムデータを設定できます。

例:

mse.context.setCustom({
  web: {
    webPageDetails: {
      name: 'Custom Page Name'
    },
  },
});
NOTE
カスタム属性を使用してイベントを上書きすると、デフォルトのAdobe Analytics レポートに影響する場合があります。
recommendation-more-help
commerce-help-data-connection