WordPressのプラグイン WooCommerce 利用時に成果計測を行う方法
本マニュアルの内容は、作成・更新時点の連携先仕様に基づいているため、プラグイン側の仕様変更により、一部の手順や設定が異なる場合があります。
最新の情報については、ご利用サービスの公式ドキュメントやサポートサイトをご確認ください。
プラグイン WooCommerce 利用時の成果計測
WordPressのeコマースプラグインWooCommerceでネットショップを構築している環境で、アフィリエイト計測を行う方法を解説します。
本マニュアルでは、WooCommerceで既にショップ開設していることを前提に進めます。
参考(外部サイト):https://ja.wordpress.org/plugins/woocommerce/
1. 事前準備
アフィリコード・システムで発行するトラッキングタグ(計測タグ)をWordPressの任意の記事内に出力できるプラグインAffilicode-Tag-Settingを公開しています。商品ページなどの広告遷移先(着地点)を「投稿」で作成する場合は、こちらの利用を推奨します。
WordPressでAffilicode-Tag-Settingプラグインを利用する方法
2. 商品登録時の注意点
アフィリコード・システム側の報酬設定は「商品テーブル」を使用します。
商品テーブル機能を使用する方法
WooCommerce側の商品登録時に、SKU(在庫保管単位)の値を設定し、商品テーブルIDと同一にしておくことで計測が可能になります。
3. Cookie発行ファイルと着地点タグの設置
Cookie発行ファイルは、WordPressを設置した階層(ルートディレクトリ)にアップロードしてください。
例)インストール先が「https://example.com/wp/」なら、wpディレクトリにアップロード。
次に、着地点タグを「広告詳細」より取得し、Cookie発行ファイルの読み込み先を相対パスから絶対パスに変更します。変更後、広告遷移時の着地点ページに設置します。
- 着地点タグ編集箇所
var PDIR = "./";
↓var PDIR = "https://example.com/wp/";
※https://example.com/wp/ の部分は、Cookie発行ファイル設置先を記述
着地点タグ変更例
<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", "fbclid", "yclid", "ttclid", "ldtag_cl", "ss", "msi"];
var PDIR = "https://example.com/wp/";
var durl = "https://システム設置先URL/direct.php";
========== 省略 ============
</script>
- WordPressのパーマリンク設定について
- 着地点ページを投稿機能で作成し、デフォルトのパーマリンク設定にしている場合、遷移先URLのパラメータに「p」が付与されます(例:http://example.com/other/wp/?p=123)。アフィリコード・システムの広告ID「p」パラメータと重複する問題が発生するため、以下を参考に対応を行ってください。
トラッキングパラメータの「p」を変更する方法
アフィリエイトリンクをクリックしても意図するページに遷移できない
カートドメインと異なる記事LPなどを挟む場合は、複数ドメインジのタグ設置手順で設定します。
4. 成果地点タグの設置
成果地点タグは、woocommerceフォルダ配下 orderフォルダ内のorder-details.phpファイルに追記して、FTPでアップロードします。
- プラグイン利用時の注意点
- プラグインインストール時、/wp-content/plugins/配下に関連ファイルが展開されます。
- order-details.phpは、/wp-content/plugins/woocommerce/templates/order/配下にありますが、このファイルに直接記述するとプラグインアップデート時に上書きされる恐れがあります。
- ご利用のテーマフォルダ内にwoocommerceフォルダ(/wp-content/themes/テーマ名/woocommerce/)を作成し、上記のtemplatesフォルダの中身をアップロードして作業する、バックアップ管理などの対応をしてください。
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行目
102行目以降に以下のコードを追記します。3、4行目の「広告ID」と「アフィリコード・システム設置先URL」は各々の値に書き換えてください。
※トラッキングコードの実質的な追記箇所は、</script>閉じタグまでですが、先ほど削除した記述があるため、最後尾まで本コードで上書きしてください。
商品テーブルの値や注文IDは、本コードの設置で動的に返却されます。
<?php
// ACS Tracking Param Data
$acs_p = '広告ID';
$acs_url = 'アフィリコード・システム設置先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 ) );
}
5. 成果の確認
テスト注文を行い、成果テストを行います。
成果発生の確認だけでなく、トラッキングログで認証方式の確認を行ってください。 Cookie発行ファイル設置時は「cid(GET認証)、Cookie(PHP)経由」で認証されていればOKです。
args値には「注文ID」が返却されます。商品テーブルの値と共に、WooCommerce管理画面で注文状況の確認を行ってください。