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

WooComerce

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

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

WooCommerce|概要

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

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

WooCommerce|1. 事前準備

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

img1

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

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

どちらも 広告管理 > 広告一覧 > 詳細 にて取得できます。

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

2. 着地点タグ

取得後、以下の記述をCookie発行ファイルのアップロード先(絶対パス)に書き換えてください。

var PDIR = "./";

↓↓

var PDIR = "https://example.com/wp/";

https://example.com/wp/ の部分は実際のアップロード先に書き換えてください

pパラメータの重複について

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フォルダの中身をアップロードして作業する、バックアップ管理などの対応をしてください

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