メインコンテンツへスキップ
無料10分初級

WordPress インテグレーション

WordPress に Zenovay を追加します — プラグインのインストール、WooCommerce のサポート、テーマへの統合についてご説明します。

wordpresswoocommerceplugincmsintegration
最終更新日:

シンプルなスクリプトタグで 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

キャッシュの除外

トラッキングが機能しない場合:

  1. Zenovay スクリプトを最適化から除外する
  2. 問題が発生する場合は結合/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 配信

最適化のヒント

  • スクリプトを重複させない
  • キャッシュを有効にする

次のステップ

この記事は役に立ちましたか?