URLのパラメータの有無でFacebookボタンのカウントが違う現象

URLにパラメータが付いているかどうかでいいねボタンのカウント数が違う現象に遭遇いたので、その原因を調べてみました。

サンプルコード

HTML

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.7";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class="fb-like" data-layout="box_count" data-action="like" data-size="small" data-show-faces="false" data-share="false"></div>

このサンプルコードを埋め込むと、以下のような挙動になりました。

  • パラメータなしURLでいいねボタンを押した場合、パラメータありURLに反映されない。
  • パラメータありURLでいいねボタンを押した場合、パラメータなしURLにも反映される。

デモページ1(パラメータなし)

デモページ1(パラメータあり)

上記デモページは、パラメータなしURLでのみいいねボタンを押した状態で、記事公開時点ではパラメータなしURLが1、パラメータありURLが0のカウントになっています。
 

原因としては、Facebookのサイトでボタンの作成をする際、URLを指定していないためのようです。

different-count-facebook01

URLを指定していないと、data-href属性でページのURLを指定されないため、パラメータの有無でカウント数が変わってしまうようです。
data-href属性が指定されている場合、パラメータの有無でカウント数が変わることはありませんでした。

HTML

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.7";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class="fb-like" data-href="https://cly7796.net/blog/sample/different-count-facebook/index2.html" data-layout="box_count" data-action="like" data-size="small" data-show-faces="false" data-share="false"></div>

デモページ2(パラメータなし)

デモページ2(パラメータあり)
 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年10月
 12345
6789101112
13141516171819
20212223242526
2728293031