WooComerce
WooComerceプラグイン利用時の成果計測について解説します。
WooCommerce|概要
WordPressのeコマースプラグイン 「WooCommerce」 でネットショップを開設している場合の計測方法を解説します。
ドキュメントでは、WooCommerceで既にショップ開設していることを前提に進めます。
WooCommerce
https://ja.wordpress.org/plugins/woocommerce/
WooCommerce|1. 事前準備
1. 商品登録時の注意
アフィリコード・システムでは 商品テーブル機能 を使用します。
WooCommerceでの商品登録時に、SKU(在庫保管単位)のID を設定し、商品テーブルIDと同一にすることで計測が可能になります。
2. Affilicode-Tag-Settingプラグイン
アフィリコード・システムのタグ設置専用プラグイン (Affilicode-Tag-Setting)があります。
タグ設置時はプラグインのご利用を推奨します。
WooCommerce|2. Cookie発行ファイルと着地点タグ
どちらも 広告管理 > 広告一覧 > 詳細 にて取得できます。
1. Cookie発行ファイル
WordPressを設置した階層(ルートディレクトリ)にアップロードしてください。
例 : インストール先が https://example.com/wp/
なら、wpディレクトリ
にアップロード
取得後、以下の記述をCookie発行ファイルのアップロード先(絶対パス)に書き換えてください。
var PDIR = "./";
↓↓
var PDIR = "https://example.com/wp/";
※ https://example.com/wp/
の部分は実際のアップロード先に書き換えてください
Wordpressではデフォルトのパーマリンク設定の場合、遷移先URLのパラメータに「p」が付与されます。
例 : http://example.com/other/wp/?p=123
アフィリコード・システムの広告ID「p」パラメータと重複するため、以下を参考に別途対応してください。
WooCommerce|3. 成果地点タグの設置
成果地点タグは、woocommerceフォルダ配下 orderフォルダ内
の order-details.phpファイル
に追記して、FTPでアップロードします。
-
プラグインインストール時、
/wp-content/plugins/
配下に関連ファイルが展開されます -
order-details.php
は、/wp-content/plugins/woocommerce/templates/order/
配下にありますが、このファイルに直接記述するとプラグインアップデート時に上書きされる恐れがあります -
ご利用のテーマフォルダ内にwoocommerceフォルダ(
/wp-content/themes/テーマ名/woocommerce/
)を作成し、上記のtemplatesフォルダの中身をアップロードして作業する、バックアップ管理などの対応をしてください
- 101行目 :
<section class="woocommerce-order-details">
の閉じタグ</section>
を検索 - 102行目以降をいったん削除します
<section class="woocommerce-order-details">
<?php do_action( 'woocommerce_order_details_before_order_table', $order ); ?>
=== 省略 ===
</section> //101行目
- 102行目以降に以下のコードを追記します
- 「広告ID」と「アフィリコードドメイン」は書き換えてください
※ 追記箇所は </script>
閉じタグまでですが、先ほど削除した記述があるため、最後尾まで本コードで上書きしてください
※ 商品テーブルの値や注文IDは、本コードの設置で動的に返却されます
<?php
// ACS Tracking Param Data
$acs_p = '広告ID';
$acs_url = 'アフィリコードドメイン';
$pg_list = [];
foreach ( $order_items as $item_id => $item ) {
$product = $item->get_product();
$order_subtotal = $item->get_subtotal();
$order_subtotal = number_format( $order_subtotal, 0 );
$turn_subtotal = str_replace(',','',$order_subtotal);
$order_quantity = $item->get_quantity();
$product_sku = $product->get_sku();
$pg_list[] = array(
'item_id' => $product_sku,
'price' => $turn_subtotal / $order_quantity,
'quantity' => $order_quantity
);
}
$tmp = "";
foreach($pg_list as $params) {
$tmp .= "pg[]=".$params["item_id"].".".$params["price"].".".$params["quantity"]."&";
}
$pg_params = rtrim($tmp, "&");
?>
<script>
(function acsTrack(){
var PV = "<?php echo $acs_p; ?>";
var _ARGSV = "order-<?php echo $order_id; ?>";
var _PGV = "<?php echo $pg_params; ?>";
var KEYS = {cid : ["CL_", "ACT_", "cid_auth_get_type"], plid : ["PL_", "APT_", "plid_auth_get_type"]};
var turl = "<?php echo $acs_url ?>track.php?p=" + PV + "&args=" + _ARGSV + "&" + _PGV;
var cks = document.cookie.split("; ").reduce(function(ret, s){ var kv = s.split("="); if(kv[0] && kv[1]) ret[kv[0]] = kv[1]; return ret; }, []);
turl = Object.keys(KEYS).reduce(function(url, k){ var vk = KEYS[k][0] + PV; var tk = KEYS[k][1] + PV; var v = "", t = ""; if(cks[vk]){ v = cks[vk]; if(cks[tk]) t = cks[tk]; }else if(localStorage.getItem(vk)){ v = localStorage.getItem(vk); t = "ls"; } if(v) url += "&" + k + "=" + v; if(t) url += "&" + KEYS[k][2] + "=" + t; return url; }, turl);
var xhr = new XMLHttpRequest(); xhr.open("GET", turl); xhr.send(); })();
</script>
<?php
/**
* Action hook fired after the order details.
*
* @since 4.4.0
* @param WC_Order $order Order data.
*/
do_action( 'woocommerce_after_order_details', $order );
if ( $show_customer_details ) {
wc_get_template( 'order/order-details-customer.php', array( 'order' => $order ) );
}
3.計測テスト
成果が発生するか確認テストをしてください。
argsには注文IDが返却されるので、商品テーブルの値と共に、WooCommerce管理画面で注文状況の確認を行ってください。