Onebox クリック数の改善

投稿にリンクを埋め込むと、そのリンクが何回クリックされたかが表示されます。しかし、リンクを1行に配置してワンボックス化されると、クリック数の表示が一切されません。

この投稿で問題についてさらに詳しく説明されています:

答えには2つの部分があります。

まず、リンクを新しいタブで開く機能を有効にする必要があります(技術的には理解できません。このオプションをオンにしなくても他のリンクはカウントされているからです)。

次に…

つまり、ユーザーが主にクリックするメインのリンクは決してカウントされません。これもまた、リンク間の技術的な違いや、なぜ一方はカウントされ他方はカウントされないのかを理解できません。

技術的な仕組みに対する私の理解不足はさておき、ワンボックス化されたリンクのクリック数が一貫してカウントされることを望んでいます。

「いいね!」 6

ダッシュボードのすべての設定を確認しましたが、リンクを外部タブで開くようにするチェックボックスはありません。それでもリンクはすでに別のタブで開いています。
記事のタイトルリンク自体の両方をクリックしましたが、どちらの場合もカウントされません。
ここが難しい点です。1〜2日間、突然カウントが機能し始めたかと思うと、また停止しました。何も変更していません。モデレーターや複数のユーザーに、投稿されたリンクの横にカウントが表示されているか尋ねましたが、誰も見ていないとのことでした。つまり、これは管理者である私だけの問題ではないことは確実です。
あなたと同じく、Onebox によるリンククリックの一貫したカウントを望んでいます。

編集:空白の後に投稿されたリンク(Onebox されないようにするため)ではカウントは機能しますが、Onebox されたリンクでは機能しないことを付け加えておきます。

「いいね!」 2

先週、この設定は既に有効にしています。「default other external links in new tab」で検索してください。この設定は、設定を有効にした後に登録された新しいユーザーに適用されます。古いユーザーは、プロフィールからこれを有効にできます(コンソールを通じて古いユーザーにも一括で有効化できる場合)。

このトピックの最初の2つの投稿にある2つのワンボックスをクリックしてみました https://forum.nodders.net/t/2019-plastic-waste-and-recycling/167 。カウントが0から1に増加しました。テストを行ったユーザーが古いユーザーで、プロフィールで外部タブの設定を有効にしていなかったか、またはリンクを右クリックして直接新しいウィンドウで開こうとした可能性があります。

「いいね!」 3

おそらくそれが原因でしょう。全員にプロフィールで変更を行う必要があることをお知らせします…私のように。:wink: ありがとうございます。

また、ご自身の投稿内のリンクをクリックしてもカウンターは増加しない点にご注意ください。

「いいね!」 3

@dax さん、@codinghorror さん、当フォーラムでリンクカウンターが私や他のユーザーの環境で機能していた理由がわかりました。[環境設定/インターフェース/その他] で「すべての外部リンクを別のタブで開く」にチェックが入っていましたが、「ブラウザアイコンにカウントを表示」もチェックされていました。どうやら後者が前者よりも優先されるようです。「ブラウザアイコンにカウントを表示」のチェックを外して保存し、投稿を確認すると、カウンターが表示されました!

また、ちょっとした微妙な点も見つけました。ユーザーがリンクを投稿し、OneBox がそれを OneBox 化しようとして失敗した場合(リンクはそのまま残る)、そのリンクの直前に空白がないと、リンククリックカウンターは機能しません。ちょうどこの現象が発生したユーザーの投稿を編集し、空白を追加したところ、カウンターが表示されるようになりました。:wink:

「いいね!」 2

@dax 1-box のクリックバッジを表示するには、なぜこの設定が必要なのかについて、何かご意見はありますか?私のサイトでは変更できますが、実用的にするには 7400 人以上のユーザーに対して一括で設定を変更する必要があります。混乱を招くだけなので、できれば避けたいです。

「いいね!」 2

なぜわざわざやる必要があるのか私にもわかりません。なぜなら、最も目立たないリンクをクリックするごく少数の人を除き、ワンボックスのクリックはカウントされないからです。つまり、クリック回数のデータが表示されない代わりに、誤ったデータ(人為的に低い値)が表示されることになります。私としては、こちらの方がはるかに問題だと考えます。

「いいね!」 1

良いご指摘です。理想的には、ワンボックスのヘッドラインへのクリックもカウントされるべきです。

「いいね!」 4

見出しのクリック数もカウントするために、テーマコンポーネントを作成しました。

「いいね!」 3

以前は確かに機能していました。当時は Onebox のクリックが当サイト内でカウントされていました。その後、ある時点で機能しなくなったのですが、正確な時期は覚えていませんが、おそらく1年以上前だと思います。これは新機能のリクエストというより、リグレッション(後退)だと考えています。

@evantill さん、お使いのコンポーネントが具体的にどのような役割を果たしているのか、詳しく教えていただけますか?

「いいね!」 1

動作すれば、コアに単純に追加できる小さな JavaScript のようなものに見えます。

URL の中のクリックをヘッダーの URL のクリックに置き換えるだけの単純なスクリプトです。

    // onebox 本体内でのクリックの場合
    $('.onebox-body a').on('click.onebox-track-url', function(event){      
      event.preventDefault(); // onebox 内のクリックイベントを無視
      var headerUrl = $(event.target).closest('.onebox').find('header a'); // ヘッダーの URL を選択
      // トラッキングカウンターを更新するために代わりにヘッダーの URL をクリック
      if(headerUrl.length > 0){
        headerUrl[0].click(); // ヘッダー URL でのクリックをシミュレート
      }
      });
    });
</script>
「いいね!」 1

どうやら、onebox 本体内のリンクは選択によって追跡されていないようです:

isValidLink() はリンクが .onebox-body 内にある場合に false を返します

「いいね!」 1

解決策として、onebox 内のリンクの追跡を有効にする新しい設定を onebox に追加し、その場合、onebox 内のリンクに track-link クラスを追加するのはどうでしょうか?

「いいね!」 1

このスレッドからは、ワンボックスのクリック追跡を停止することが意図的な決定だったのか、それとも単なるバグでプルリクエストを作成できるものなのか、明確ではありません。

「いいね!」 3

提案された修正を以下のように表現するのは正しいでしょうか?

「リンクが onebox 本文に含まれている場合、onebox の URL を取得します。その URL がリンクと同じであればクリックをカウントし、そうでなければ無視します」

「いいね!」 4

onebox 内に、onebox 対象の URL 以外のリンクを含めることは可能なのでしょうか?私はそうは思いませんでしたが。

この機能を以下のコミットで追加しました

「いいね!」 5