メインコンテンツまでスキップ

WooComerceプラグイン利用時の成果計測

WooComerceプラグイン利用時の成果計測について解説します。

備考

ドキュメントの内容は、作成・更新時点の連携先仕様に基づいているため、プラグイン側の仕様変更により、一部の手順や設定が異なる場合があります。最新情報は、ご利用サービスの公式ドキュメントやサポートサイトをご確認ください。


概要

WordPressのeコマースプラグイン 「WooCommerce」 でネットショップを開設している場合の計測方法を解説します。
WooCommerceで既にショップ開設していることを前提に進めます。


1. 事前確認

1. 商品登録時の注意

アフィリコード・システムでは 商品テーブル機能 を使用します。
WooCommerceでの商品登録時に、SKU(在庫保管単位)のID を設定し、商品テーブルIDと同一にすることで計測が可能になります。

WooComerce_商品登録

2. Affilicode-Tag-Settingプラグイン

アフィリコード・システムのタグ設置用プラグイン (Affilicode-Tag-Setting)があります。
タグ設置時はプラグインのご利用を推奨します。

2. Cookie発行ファイルと着地点タグ

広告管理 > 広告一覧 > 詳細 から取得します。

1. Cookie発行ファイル

WordPressを設置した階層(ルートディレクトリ)にアップロードしてください。
インストール先が https://example.com/wp/ なら、wpディレクトリ にアップロードします。

2. 着地点タグ

取得後、以下の記述をCookie発行ファイルのアップロード先(絶対パス)に書き換えてください。
※設定例:https://example.com/wp/は、実際のアップロード先に書き換えてください。

取得時の着地点タグ
<script>
window.acs_cbs = window.acs_cbs || [];
(function acsKeep(){
var PK = "p";
var IMK = "im";
var LKEYS = {cid : ["cid", "CL_", "ACT_"], gclid : ["plid", "PL_", "APT_"]};
var DKEYS = ["gclid", "gbraid", "wbraid", "msclkid", "fbclid", "yclid", "ttclid", "ldtag_cl", "ss", "msi"];
var PDIR = "./";
    ==== 以下、省略 ====
</script>
変更後の着地点タグ(アップロード先を指定)
<script>
window.acs_cbs = window.acs_cbs || [];
(function acsKeep(){
var PK = "p";
var IMK = "im";
var LKEYS = {cid : ["cid", "CL_", "ACT_"], gclid : ["plid", "PL_", "APT_"]};
var DKEYS = ["gclid", "gbraid", "wbraid", "msclkid", "fbclid", "yclid", "ttclid", "ldtag_cl", "ss", "msi"];
var PDIR = "https://example.com/wp/";
    ==== 以下、省略 ====
</script>
pパラメータの重複について

Wordpressではデフォルトのパーマリンク設定の場合、遷移先URLのパラメータに「p」が付与されます。
例 : http://example.com/other/wp/?p=123

アフィリコード・システムの広告ID「p」パラメータと重複するため、pパラメータの変更を参考に対応してください。

3. 成果地点タグの設置

成果地点タグは、woocommerceフォルダ配下 orderフォルダ内 の order-details.phpファイル に追記して、FTPでアップロードします。

プラグイン利用時の注意点
  • プラグインインストール時、/wp-content/plugins/ 配下に関連ファイルが展開されます
  • order-details.php は、 /wp-content/plugins/woocommerce/templates/order/ 配下にありますが、
    このファイルに直接記述するとプラグインアップデート時に上書きされる恐れがあります
  • ご利用のテーマフォルダ内に別フォルダを作成して作業するなど、バックアップ管理の対応をしてください

WooComerce_プラグインディレクトリ

1. order-details.php の追記準備

  • 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行目

2. order-details.php の追記

  • 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管理画面で注文状況の確認を行ってください。