シンプルなスクリプトタグで Zenovay アナリティクスを WordPress サイトに追加します。
手動セットアップのみ。 Zenovay は現在、公式の WordPress プラグインや WooCommerce 拡張機能を提供していません。以下の手順では、標準のトラッキングスクリプトと header.php / functions.php 内のスニペットを使用して WordPress サイトに Zenovay のトラッキングを追加する方法を示しています(これは確実に機能します)。本記事内の「プラグイン」「WooCommerce 統合」「自動トラッキング」への言及は、本記事の手動コードで実現できる内容を説明しているものであり、別途インストール可能なプラグインを指すものではありません。
インストール
オプション 1: テーマのヘッダーに追加(推奨)
テーマの header.php の </head> の前に追加します。
<script
defer
data-tracking-code="YOUR_TRACKING_CODE"
src="https://api.zenovay.com/z.js">
</script>
オプション 2: functions.php で追加
テーマの functions.php に追加します。
function zenovay_tracking_script() {
?>
<script
defer
data-tracking-code="YOUR_TRACKING_CODE"
src="https://api.zenovay.com/z.js">
</script>
<?php
}
add_action('wp_head', 'zenovay_tracking_script');
WooCommerce 統合
WooCommerce トラッキング(手動セットアップ)
以下のスニペットを使用すると:
- 商品ビューを自動的にトラッキング
- カートへの追加イベント
- チェックアウトのステップ
- 購入完了
- 収益アトリビューション
手動 WooCommerce セットアップ
テーマの functions.php に追加します。
// 商品ビューをトラッキング
add_action('woocommerce_after_single_product', 'zenovay_track_product_view');
function zenovay_track_product_view() {
global $product;
?>
<script>
if (window.zenovay) {
zenovay('track', 'view_product', {
product_id: '<?php echo esc_js($product->get_id()); ?>',
product_name: '<?php echo esc_js($product->get_name()); ?>',
price: <?php echo $product->get_price(); ?>,
category: '<?php echo esc_js(wp_get_post_terms($product->get_id(), 'product_cat')[0]->name ?? ''); ?>'
});
}
</script>
<?php
}
// カートへの追加をトラッキング
add_action('woocommerce_add_to_cart', 'zenovay_track_add_to_cart', 10, 6);
function zenovay_track_add_to_cart($cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data) {
$product = wc_get_product($product_id);
?>
<script>
if (window.zenovay) {
zenovay('track', 'add_to_cart', {
product_id: '<?php echo esc_js($product_id); ?>',
product_name: '<?php echo esc_js($product->get_name()); ?>',
price: <?php echo $product->get_price(); ?>,
quantity: <?php echo $quantity; ?>
});
}
</script>
<?php
}
// 購入をトラッキング
add_action('woocommerce_thankyou', 'zenovay_track_purchase');
function zenovay_track_purchase($order_id) {
if (!$order_id) return;
$order = wc_get_order($order_id);
// すでにトラッキングされているかを確認
if ($order->get_meta('_zenovay_tracked')) return;
$items = array();
foreach ($order->get_items() as $item) {
$product = $item->get_product();
$items[] = array(
'id' => $product->get_id(),
'name' => $item->get_name(),
'price' => $product->get_price(),
'quantity' => $item->get_quantity()
);
}
?>
<script>
if (window.zenovay) {
zenovay('revenue', <?php echo $order->get_total(); ?>, '<?php echo esc_js($order->get_currency()); ?>', {
order_id: '<?php echo esc_js($order_id); ?>',
items: <?php echo json_encode($items); ?>
});
}
</script>
<?php
$order->update_meta_data('_zenovay_tracked', true);
$order->save();
}
ゴールトラッキング
フォーム送信のゴール
Contact Form 7 のトラッキング:
add_action('wp_footer', 'zenovay_cf7_tracking');
function zenovay_cf7_tracking() {
?>
<script>
document.addEventListener('wpcf7mailsent', function(event) {
if (window.zenovay) {
zenovay('goal', 'contact_form', {
form_id: event.detail.contactFormId
});
}
});
</script>
<?php
}
Gravity Forms のトラッキング:
add_action('gform_after_submission', 'zenovay_gf_tracking', 10, 2);
function zenovay_gf_tracking($entry, $form) {
?>
<script>
if (window.zenovay) {
zenovay('goal', 'form_submission', {
form_id: '<?php echo $form['id']; ?>',
form_name: '<?php echo esc_js($form['title']); ?>'
});
}
</script>
<?php
}
ニュースレター登録
MailChimp for WordPress のトラッキング:
add_action('mc4wp_form_success', 'zenovay_mc4wp_tracking');
function zenovay_mc4wp_tracking() {
?>
<script>
if (window.zenovay) {
zenovay('goal', 'newsletter_signup');
}
</script>
<?php
}
ユーザー識別
ログインユーザーのトラッキング
add_action('wp_footer', 'zenovay_identify_user');
function zenovay_identify_user() {
if (!is_user_logged_in()) return;
$user = wp_get_current_user();
?>
<script>
if (window.zenovay) {
zenovay('identify', '<?php echo esc_js($user->ID); ?>', {
email: '<?php echo esc_js($user->user_email); ?>',
name: '<?php echo esc_js($user->display_name); ?>',
role: '<?php echo esc_js($user->roles[0]); ?>'
});
}
</script>
<?php
}
管理者ユーザーを除外する
ロール除外リストの設定
ロール管理プラグインまたはカスタムコードでロール除外リストを設定します。
- Administrator
- Editor
コードによる除外
add_action('wp_head', 'zenovay_conditional_tracking');
function zenovay_conditional_tracking() {
// 管理者をトラッキングしない
if (current_user_can('manage_options')) {
return;
}
?>
<script
defer
data-tracking-code="YOUR_TRACKING_CODE"
src="https://api.zenovay.com/z.js">
</script>
<?php
}
Multisite のサポート
WordPress マルチサイト ネットワークでは、各サイトは Zenovay の個別のプロパティです。そのため、各サイトは独自のトラッキングコードが必要です。ネットワーク内の各サイトに対して Zenovay に個別のウェブサイトを作成し、サイトごとに対応するトラッキングコードを配置します。
サイトごとの設定
ネットワーク有効化された Mu プラグイン(またはネットワーク全体で共有されているテーマ)からスニペットを追加する場合は、各ブログ ID を独自のトラッキングコードにマップします。
add_action('wp_head', 'zenovay_multisite_tracking');
function zenovay_multisite_tracking() {
$codes = array(
1 => 'TRACKING_CODE_FOR_SITE_1',
2 => 'TRACKING_CODE_FOR_SITE_2',
// ブログ ID ごとに 1 つのエントリを追加します
);
$blog_id = get_current_blog_id();
if (empty($codes[$blog_id])) {
return;
}
?>
<script
defer
data-tracking-code="<?php echo esc_attr($codes[$blog_id]); ?>"
src="https://api.zenovay.com/z.js">
</script>
<?php
}
カスタムイベント
ボタンクリックのトラッキング
<button onclick="zenovay('track', 'cta_click', {button: 'hero'})">
始める
</button>
スクロール深度
add_action('wp_footer', 'zenovay_scroll_tracking');
function zenovay_scroll_tracking() {
?>
<script>
let maxScroll = 0;
window.addEventListener('scroll', function() {
const scrollPercent = Math.round(
(window.scrollY / (document.body.scrollHeight - window.innerHeight)) * 100
);
if (scrollPercent > maxScroll && scrollPercent % 25 === 0) {
maxScroll = scrollPercent;
if (window.zenovay) {
zenovay('track', 'scroll_depth', { depth: scrollPercent });
}
}
});
</script>
<?php
}
キャッシュの互換性
一般的なキャッシュプラグイン
以下で動作します:
- WP Super Cache
- W3 Total Cache
- WP Rocket
- LiteSpeed Cache
- Cloudflare
キャッシュの除外
トラッキングが機能しない場合:
- Zenovay スクリプトを最適化から除外する
- 問題が発生する場合は結合/defer しない
WP Rocket の場合:
add_filter('rocket_exclude_js', function($excluded) {
$excluded[] = 'api.zenovay.com';
return $excluded;
});
トラブルシューティング
トラッキングが機能しない場合
確認事項:
- テーマ/functions.php にトラッキングスクリプトが存在する
data-tracking-codeの値が Zenovay のウェブサイト トラッキングコードと一致している- 自身のロール除外コードで除外されていない
- ブラウザ コンソールでスクリプトまたはネットワークエラーがないか
WooCommerce がトラッキングされない場合
確認事項:
- WooCommerce スニペットがテーマの
functions.phpに追加されている - サンクスページ(注文確認)が正常に読み込まれている
- スクリプトがキャッシュ プラグインによってブロックされたり削除されたりしていない
他のプラグインとの競合
競合が発生する場合:
- 他のアナリティクス プラグインを無効にする
- JavaScript エラーを確認する
- デフォルト テーマでテストする
ページビルダーとの互換性
以下で動作します:
- Elementor
- Divi
- Beaver Builder
- Gutenberg
- WPBakery
パフォーマンス
スクリプトの読み込み
Zenovay スクリプトの特徴:
- 非同期読み込み(defer)
- 5 KB 未満
- レンダリングをブロックしない
- CDN 配信
最適化のヒント
- スクリプトを重複させない
- キャッシュを有効にする