質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.93%

自前のwebサイトに今現在接続している人数をアプリで表示したい

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 4,230

monai

score 15

単純な仕組みのアプリを考えています。
swiftのwebViewで固定のHPを読み込ませ「そのサイトに今現在接続している人数を表示させる」
というアプリを作りたいです。
swift側はwebを読み込むだけなのですぐ出来ますがwebは触れたこともない未知の領域ですのでどのように用意したら良いのかわかりません。

できればイチからサーバーを立ててプログラムを組んで~~、、、、ではなく、
例えばWordPressとGoogle Analyticsを使ってこうやれば表示させることが出来る。
など既存のものを組み合わせて可能であれば具体的に教えていただきたいです。

よろしくお願いいたします。

追記修正
表現が端折られたりしており分かりにくい文章でしたので改めて書き直します。
失礼しました。

アプリで「今現在このアプリを何人が使用しているか」を表示させる機能を持たせたいです。
サーバーにデータ送信→集計→アプリで表示。だと自分の知識ではどうにもなりませんので
イメージとしてはwebViewをつかいアプリで自前のwebサイト(WordPressを予定)に接続してもらい
そこで「今現在webに接続している人数をカウント・表示」してアプリで確認出来るようにすれば出来るのではと考えました。

Google Analyticsに該当する項目がありますので
そこから該当のデータのみ引っ張ってくれば出来るのではないかと安直に思っておりましたがうまくできません。
(参考:https://wacul-ai.com/blog/googleanalytics-realtime/)

上記のやり方、もしくは似たようなツールを使ってどうすればデータを自前のwebサイトで表示できるかお教え下さい。
よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+3

「アプリから自前のWebサイトに現在、接続している人数をしりたい」ということなので、いちばん単純な方法で、書いておきます。

この場合に 最低限必要な内容は、「現在、接続している人数」ですが、「5分10分程度の誤差などは気にしません。」とのことなので、過去5分以内にアプリから接続した人数と仮定します。

(サーバ側)
APIにアクセスがあった時点で、アプリ毎にセッションを生成 or (すでにあれば)更新して、過去5分以内に更新されているセッション件数を返却する API を作成する。 (API の設置場所は、Web でも BaaS でもどこでもいいです。)

(アプリ側)
アプリを起動したタイミング、起動中は一定期間ごとに API にアクセスし、件数を取得して表示する。


回答を書いている間に 質問が、追記されていたので、回答も追記

WordPress で、対応するなら プラグインになると思いますが、WordPress のサイトで検索してみた限りでは、ご希望そのままのプラグインはなさそうです。

Google から Real Time Reporting API を使って、直接データを取得してくるのは、比較的簡単にできそうなので、プラグインの作成もできると思います。

PHPで、アクティブユーザを取得するサンプルがありましたので、リンクを書いておきます。
Google Analytics Real Time Reporting API 事始め

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/07 17:26

    一番単純な方法とのこと、ありがとうございます。
    やはりサーバーが必須ということですね。
    Webが出来て久しいですが、昔はよくアクセスカウンターが個人のHPに張ってありました。
    同じ様な感覚で該当サービスが無いものかとずっと調べておりましたが甘かったようです。

    キャンセル

  • 2017/04/07 17:42

    別のサーバーじゃなくても WordPress が動いているサーバーがあるなら、WordPress のサーバーで実行できるようにPHP で、プログラムを一つ書けばいいだけですよ。

    キャンセル

  • 2017/04/07 18:34

    ありがとうございます。
    (o´▽`o)ラズパイデヤルヨー

    キャンセル

  • 2017/04/07 20:00 編集

    すごい、まさにドンピシャです。ありがとうございます。
    あとはこれの料金次第です。

    キャンセル

+2

HPにリアルタイムで接続している人数をアプリ側で表示したいです

質問者さんが「リアルタイムで接続」をどう定義しているかにもよりますが、もし「閲覧している」という意味ですと無理っぽいです。

何故なら「閲覧している」というのはユーザー本人の気持ちの問題のようなもので、Web サーバー側でユーザーの気持ちを知る術はないからです。

多分そういう意味ではないと思いますが、であれば、「リアルタイムで接続」の定義を明確にしてもらわないと答えるのは難しいです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/07 15:12 編集

    特定のサイトに今現在アクセスしている人数、の事を指しています。コレで説明が足りてますでしょうか。

    キャンセル

  • 2017/04/07 16:00

    足りてません。堂々巡りになってしまいますが「今現在アクセス」というのが質問者さん的に/具体的にどういう定義か書かないと誰も答えは出せません。質問者さんは Web アプリの仕組みに関する知識がほとんどないようにお見受けしますが、少し知識をつけていただかないと、この先話が空回りするばかりです。例えば、もし「今現在アクセス」というのが「今現在ブラウザで質問者さんのサイトを見ている」ということですと、サーバー側でその人数を把握する手段はありません。そのあたり理解されているでしょうか?(非常に特別な手段を使うということまで考えれば話は違ってくるかもしれませんが)

    キャンセル

  • 2017/04/07 16:16 編集

    知識不足ですみません。
    SurferOnWwwさんの仰る「もし」がやりたいことでしたので、手段がないということがわかりました。

    しかしながらGoogle Analyticsではその項目があったもので、非常に特別な手段ではなく当たり前のように使われているものと早合点しておりました。
    根気強くお相手して頂き有難うございました。

    キャンセル

+1

素朴な疑問ですが、アプリにとってアクティブ人数をどのぐらいの精度で出したくて、そして表示はどの程度必要なのでしょうか。

そもそも、Webを構成するHTTPは、「接続→リクエスト→レスポンス→切断」という完結型の通信が基本ですので、Webサイトを見ていても、通信は何もしていない、ということがじゅうぶん起きます。

どの程度正確な数値を取得したいかによって、実装方法から変える必要があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/07 10:54

    ありがとうございます。精度は時間で言えば厳密でなく5分10分程度の誤差などは気にしません。人数については正確な方がいいです。
    またwebサイトである必要はないのかもしれません。やりたいことは「今現在アプリ開いている人が何人居るかをアプリに表示する」です。なのでwebサイトに接続している人を利用すればサーバーなどたてずに比較的簡単にできるかも。という程度の考えでした。

    キャンセル

  • 2017/04/07 12:00

    それでしたら、アプリ側に仕組みを仕込む、という方が正解だと思います。

    キャンセル

  • 2017/04/07 15:19

    HPで昨日の訪問数○○万人と確認できますが、今現在でサイトにアクセスしている人数を確認する方法は無いということでしょうか。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る