Hybris統合
この記事では、Hybris統合タグの構成方法について説明します。
前提条件
- Tealium IQアカウント。
- hybris v5.0.1+が抽出およびビルドされ、B2C Commerce Acceleratorが含まれています。
定義
- Universal Data Object (UDO) = キー/値のペアのData Layerオブジェクト。
このオブジェクトは、グローバルJavaScriptオブジェクトutag_data
としてページに生成されます。Tealiumのutag.js
は、タグの基本Data Layerとしてutag_data
を使用します。 - Tealiumアカウント = Tealium iQの購入に割り当てられたアカウント。
- Tealiumプロファイル = あなたのウェブサイトの特定のウェブプロパティ名。
アドオンのインストール
Githubリポジトリ: https://github.com/Tealium/integration-hybris
tealiumiqaddon
ディレクトリを${HYBRIS_BIN}/custom
に配置します。このディレクトリはリポジトリの/hybris/bin/custom/
フォルダにあります。config/localextensions.xml
に<extension dir="${HYBRIS_BIN}/custom/tealiumiqaddon"/\>を追加します。yacceleratorstorefront
にtealiumiqaddon
を追加します。以下を使用します:
sudo ant addoninstall -Daddonnames="tealiumiqaddon"
DaddonStorefront.yacceleratorstorefront="yacceleratorstorefront"
- 次のファイルを更新します:
${HYBRIS_BIN\}/ext-template/yacceleratorstorefront/web/webroot/WEB-INF/tags/desktop/template/master.tag
に対して、ファイルの先頭に<%@ taglib prefix=“tealiumiqaddon” tagdir="/WEB-INF/tags/addons/tealiumiqaddon/shared/analytics" %>を追加します。
<head>タグの後に<tealiumiqaddon:sync/>を追加します。
<body>タグの後に<tealiumiqaddon:tealium/>を追加します。${HYBRIS_BIN}/custom/tealiumiqaddon/project.properties.template
に対して、
tealiumiqaddon.account,tealiumiqaddon.profile, および tealiumiqaddon.targetをあなたのTealium IQアカウント固有の情報に変更します。utag.sync.js
の注入をHTMLページの<head>に有効にしたい場合は、tealiumiqaddon.utagSyncEnabled = 1
を変更します。この機能はオプションで、デフォルトでは無効になっています。
カスタムデータの追加
デフォルトでは、アドオンは標準的なe-commerce変数の包括的なリストを提供します。これらのデフォルト値があなたのインストールに十分でない場合は、デフォルトのページタイプを拡張したり、新しいカスタムページタイプを作成したりできます。
com.tealium.dataconnector.hybris.HybrisDataConverter.HybrisCustomDataConverter
インターフェースを実装する新しいクラスを作成し、インターフェースのすべてのメソッドを実装します。
package com.tealium.dataconnector.hybris;
import com.tealium.dataconnector.hybris.HybrisDataConverter.HybrisCustomDataConverter;
import com.tealium.dataconnector.hybris.HybrisDataConverter.HybrisCustomPageTypeCustomData;
import com.tealium.util.udohelpers.UDO;
import com.tealium.util.udohelpers.exceptions.UDOUpdateException;
public class TealiumCustomData implements HybrisCustomDataConverter {
// ... add unimplemented methods of interface.
}
- インターフェースのメソッドに値を追加しない場合は、
udo
オブジェクトを返すようにします。
@Override
public UDO homePage(UDO udo) {
return udo;
}
- デフォルトのページに値を追加または変更するには、そのページのオーバーライドメソッドに追加します。
@Override
public UDO searchPage(UDO udo) {
try {
udo.setValue("page_name", "new search page name");
udo.setValue("custom_key", "custom_value");
} catch (UDOUpdateException e) {
e.printStackTrace();
}
return udo;
}
- 値を持つ新しいページタイプを追加するには、クラスに静的変数を追加し、新しいページを
addCustomPages
メソッドに追加します:
public class TealiumCustomData implements HybrisCustomDataConverter {
private static Map<String, HybrisCustomPageTypeCustomData> customPagesMap;
@Override
public Map<String, HybrisCustomPageTypeCustomData> getHybrisCustomPageTypes() {
return customPagesMap;
}
//... other methods
@Override
public void addCustomPages() {
if (customPagesMap == null){
customPagesMap = new HashMap<>();
}
customPagesMap.put("custom_one", new HybrisCustomPageTypeCustomData(){
@Override
public UDO getCustomDataUdo(UDO udo) {
try {
udo.setValue("page_name", "custom page 1");
udo.setValue("custom_page1_key", "custom value");
} catch (UDOUpdateException e) {
e.printStackTrace();
}
return udo;
}
});
customPagesMap.put("custom_two", new HybrisCustomPageTypeCustomData(){
@Override
public UDO getCustomDataUdo(UDO udo) {
try {
udo.setValue("page_name", "custom page 2");
udo.setValue("custom_page2_key", "custom value");
} catch (UDOUpdateException e) {
e.printStackTrace();
}
return udo;
}
});
}
}
- 変更します:
${HYBRIS_BIN\}/custom/tealiumiqaddonweb/webroot/WEB-INF/tags/addons/tealiumiqaddon/shared/analytics/data.tag
CLASS_NAME
をあなたのクラス名に置き換えます(例えば、TealiumCustomData
)- 新しいクラスを追加します: <%@ tag import=“com.tealium.dataconnector.hybris. CLASS_NAME “%>
- 新しいクラスをHybrisDataConverterに登録します: <%HybrisDataConverter.registerCustomDataClass(“ID”, new CLASS_NAME ()); %>
完了
hybrisを再ビルドして再起動します。
sudo ant all
sudo ./hybrisserver.sh
デフォルトのデータソース
全ページ
ソース | 説明 |
---|---|
page_name |
ユーザーフレンドリーなページ名を含みます |
site_region |
地域またはローカライズされたバージョンの値を含みます。例えば、en_US |
site_currency |
サイトに表示される通貨を含みます。例えば、USD |
page_type |
ユーザーフレンドリーなページタイプを含みます。例えば、カートページ |
検索ページ
ソース | 説明 |
---|---|
search_results |
検索クエリで返された結果の数を含みます |
search_keyword |
ユーザーが行った検索クエリを含みます |
カテゴリーページ
ソース | 説明 |
---|---|
page_category_name |
ユーザーフレンドリーなカテゴリー名を含みます。例えば、ホーム電 |
商品ページ
ソース | 説明 |
---|---|
product_id |
商品IDを含みます。複数の値はカンマで区切られます |
product_sku |
商品SKUを含みます。複数の値はカンマで区切られます |
product_name |
商品名を含みます。複数の値はカンマで区切られます |
product_brand |
商品ブランドを含みます。複数の値はカンマで区切られます |
product_category |
商品カテゴリーを含みます。複数の値はカンマで区切られます |
product_subcategory |
商品サブカテゴリーを含みます。複数の値はカンマで区切られます |
product_unit_price |
商品の単価を含みます。複数の値はカンマで区切られます |
カートページ
ソース | 説明 |
---|---|
product_id |
商品IDを含みます。複数の値はカンマで区切られます |
product_sku |
商品SKUを含みます。複数の値はカンマで区切られます |
product_name |
商品名を含みます。複数の値はカンマで区切られます |
product_brand |
商品ブランドを含みます。複数の値はカンマで区切られます |
product_category |
商品カテゴリーを含みます。複数の値はカンマで区切られます |
product_subcategory |
商品サブカテゴリーを含みます。複数の値はカンマで区切られます |
product_unit_price |
商品の単価を含みます。複数の値はカンマで区切られます |
product_quantity |
商品の数量を含みます。複数の値はカンマで区切られます |
注文確認
ソース | 説明 |
---|---|
order_id |
注文またはトランザクションIDを含みます |
order_subtotal |
注文の支払いタイプを含みます |
order_payment_type |
注文の支払いタイプを含みます |
order_total |
注文の合計値を含みます |
order_discount |
注文の割引(ある場合)を含みます |
order_shipping |
注文の送料を含みます |
order_tax |
注文の税金額を含みます |
order_currency |
トランザクションに関連する通貨を含みます。例えば、USD' |
order_coupon_code |
注文のクーポンコードを含みます |
order_type |
注文/カートを含みます |
product_id |
商品IDを含みます。複数の値はカンマで区切られます |
product_sku |
商品SKUを含みます。複数の値はカンマで区切られます |
product_name |
商品名を含みます。複数の値はカンマで区切られます |
product_brand |
商品ブランドを含みます。複数の値はカンマで区切られます |
product_category |
商品カテゴリーを含みます。複数の値はカンマで区切られます |
product_subcategory |
商品サブカテゴリーを含みます。複数の値はカンマで区切られます |
product_unit_price |
商品の単価を含みます。複数の値はカンマで区切られます |
product_quantity |
商品の数量を含みます。複数の値はカンマで区切られます |
customer_email |
顧客のメールアドレスを含みます |
顧客情報ページ
ソース | 説明 |
---|---|
customer_name |
顧客のユーザー名を含みます |
customer_email |
顧客のメールアドレスを含みます |
gender |
敬称に基づく顧客の性別を含みます |
最終更新日 :: 2016年May月16日