2

audioElement.jsを使用してオーディオプレーヤーを処理しているmy Wordpress siteのjQueryを使用して、再生と一時停止を追跡しようとしています。私はこれを研究し、私が答えと思ったものを見つけましたが、私はまだの機能を発動させることができません!次のようにjQueryを使用してGAイベントを追跡する(ユニバーサル)

私のコードは次のとおりです。

jQuery(document).ready(function($) { 
    //Tracking MediaElement Plays 
    $('body').on('click', '.mejs-play', function() { 
    ga('send', 'event', 'Audio', 'Play', 'Audio Played'); 
    }); 
}); 

私はそれに割り当てられた、このクラスを持つ要素をクリックしたときに、私はGAリアルタイムレポートから任意の応答を取得しておりません。

私が間違っていることは何ですか?

+0

[OK]を、私は明らかに問題を引き起こしていた1つの大きな問題を見つけました。私はMonsterInsights(旧Yoast)を使用してGA analytics.jsを私のサイトに注入しています。しかし、奇妙な理由から、 'ga()'変数を '__gaTracker()'に変更しました。 'ga()'変数が動作するようにするための簡単なコードを追加したサイトが見つかりました(https://www.kathirvel.com/yoast-google-analytics-reassign-gatracker-to-ga/)。しかし、私はまだこの関数から '.mejs 'を見つけるために私のコードを得ることができません。 –

答えて

0

[OK]を、私は私が自分自身のためにこれを解決すると思います。いくつかの要因が、この特定の状況への鍵でした:原因Wordpress.org CMSの奇妙に

  1. 、私は自分のサイト上のすべてのルックアップのためにjQuery()の代わり$()を使用する必要があります - だけでなく、コードの先頭に私のコード内でルックアップを行う必要があるたびに。肥大したコードを作成しますが、うまくいきます!

  2. MEJS要素のいずれかが作成される前に読み込まれていたため、スクリプトはMediaElement.jsで何もしていなかったため、JSコードが起動された時点で存在しませんでした。これを解決するには、<script>要素を行の最後にキューイングできるようにするthis defer trickが見つかりました。シンプルで、私は<script defer="defer">を使って私のヘッダーのスクリプトを呼び出さなければならなかった。

  3. 基本スクリプトが機能し、結果がコンソールに届いたら、と組み合わせて、再生と一時停止を区別する単純なif() {} else {}ステートメントを使用しました。

私のサイトのヘッダーに挿入された最終結果は美しく動作します!ここにあります:

<script defer="defer"> 
//Tracking MediaElement Plays and Pauses 
jQuery(window).load(function() { 
    jQuery('.mejs-playpause-button').click(function() { 
    if (jQuery(this).hasClass('mejs-play')) { 
     ga('send', 'event', 'audio', 'play audio', 'audio played'); 
    } else { 
     ga('send', 'event', 'audio', 'pause audio', 'audio paused'); 
    } 
    }); 
}); 
</script> 

これは、他の誰かが自分の演奏や一時停止を追跡するのに役立ちます。

0

jQueryの実装に問題があります。私は$(window)のようなコンソールに何かを入力すると、私はエラーが表示されます。

TypeError: $ is not a function 
+1

'$(window)'の代わりに 'jQuery(window)'を使ってみてください。なぜ私は考えていないのですが、私のサイトのリファレンスは代わりにセットアップされています。私がこれが唯一の人ではないと思われるhttps://stackoverflow.com/questions/11242586/jquery-selectors-dont-work-in-console –

+1

さらに研究したら、Wordpress、私のサイトが構築されている他のJSライブラリとの競合を避けるために、「互換モード」や「セーフモード」のようなものとして '$()'の代わりに 'jQuery()'を使用しています(https://digwp.com/2011/09/using-jquery-in-wordpress /)を使用しています。 –

関連する問題