Piwikを使用するユーザーの統計

ユーザーをサブドメインに移動した後、各サブドメインの詳細な統計情報と、これらの統計情報をユーザーに提供する機能が必要になりました。 もちろん、すべてのサブドメインをGoogle Analytics / I. Metricaに手動で接続できますが、多くのサブドメインがある場合、このタスクは不必要に複雑に見え始めます。



何らかの自動化されたソリューションが必要でしたが、それはオープンソースの統計システムPiwikの形で見つかりました。 このシステムをサーバーにインストールし、Webサイトを追加して使用できます。 主にGAとJ. Metricに似た機能を提供し、独自のプラグインを書くことができます(たとえば、Yandex.Metricaの同じブロックに機能が似ている昨日から今日までの予測ウィジェットを開発しました)。



最初に、テストのために、システムは1つのドメインと1つのサブドメインの統計を保持し、これに非常にうまく対処し、Y。メトリックとGAを完全に置き換えました。 したがって、Piwik APIを使用してユーザーサブドメインへの統計の自動接続を実装することが決定されました。 以下が必要でした:

  1. Piwikシステムでユーザーを作成します
  2. ビールでウェブサイトを作成する
  3. サイトの統計を表示するユーザー権利を付与する
  4. サイトIDを取得してカウンターを設定します




Piwik APIについて少しお話します。 このように機能します。Piwik全体はモジュールで構成され、一部のモジュールはAPI関数を提供します。 開発者は誰でもモジュールを記述して、そこに何らかのAPI関数を実装し、呼び出すことができます。

API関数の呼び出しは、次のように特定のアドレスを照会することで実装するのが最も簡単です。

example.com/piwik/index.php?module=API&method=UsersManager.getUsersLogin&format=PHP&prettyDisplay=true&token_auth=14e1b600b1fd579f47433b88e8d85291

この行のexample.com/piwik/index.phpはインストール済みのビールへのパス、 method = UsersManager.getUsersLoginはモジュールと呼び出す関数です。format = PHPは、PHPで使用するシリアル化された配列としてデータを取得する必要があることを意味します、 prettyDisplay = trueはAPI関数が受け入れるパラメーターであり、 token_authはトークンであり、ユーザー管理ページまたはAPI関数のリストのページでビールに取得できます。



したがって、PHPからPiwik APIにアクセスする最も簡単な方法は次のようなものです。

$url = 'http://example.com/piwik/index.php?module=API&method=UsersManager.getUsersLogin&format=PHP&prettyDisplay=true&token_auth=14e1b600b1fd579f47433b88e8d85291' $tmp = file_get_contents($url); $response = unserialize($tmp);
      
      





その結果、Piwikから返されたすべてのデータを含む$応答の配列を取得します。



ユーザー統計を使用してタスクに戻りましょう。 すべてのタスクについて、Piwik APIには次の機能があります。

UsersManager.addUserは新しいユーザーを作成し、ユーザー名、パスワード、ユーザーの電子メールをパラメーターとして受け入れます

サイトを作成するためのSitesManager.addSiteは、サイトの名前とURLをパラメーターとして受け取り、システム内のサイトIDを返します

UsersManager.setUserAccessは権限を付与し、ユーザーログイン、サイトID、およびアクセス権(非アクセス/表示/管理)をパラメーターとして受け入れます



file_get_contentsを手動で実行し、リクエストごとにシリアル化を解除したくなかったので、Piwik APIの小さなラッパークラスを作成し、ユーザー/サイトを作成して権限を発行するメソッドを実装しました。

 <?php Class Piwik_api { private $sAuthToken; private $sPiwikUrl; function __construct($sAuthToken, $sPiwikUrl) { $this->sPiwikUrl = $sPiwikUrl; $this->sAuthToken = $sAuthToken; } /** *   Piwik API * */ function execute($sMethodName, $arData, $sFormat = "PHP") { $url = $this->sPiwikUrl; $url .= "?module=API&method=" . $sMethodName; $url .= '&'.http_build_query($arData); $url .= "&format=$sFormat"; $url .= "&token_auth=" . $this->sAuthToken; $tmp = file_get_contents($url); $response = unserialize($tmp); return $response; } /** *   * */ function addUser($sUserName, $sUserPassword, $sUserEmail) { return $this->execute('UsersManager.addUser', array("userLogin" => $sUserName, "password" => $sUserPassword, "email" => $sUserEmail )); } /** *   * */ function addSite($sSiteName, $sUrl) { return $this->execute('SitesManager.addSite', array("siteName" => $sSiteName, "urls" => $sUrl )); } /** *    * */ function setUserAccess($sUserLogin, $sAccess, $iSiteId) { return $this->execute('UsersManager.setUserAccess', array("userLogin" => $sUserLogin, "access" => $sAccess, "idSites" => $iSiteId )); } }
      
      





addSiteメソッドは数値を返します-これはビールシステムのサイトIDです。



したがって、このクラスを使用すると、最初の問題は簡単に解決されます:ユーザーサブドメインの生成と同時に、Piwikシステムでユーザーを作成し、Webサイトを作成して権限を付与し、ユーザーにPiwikへのリンクとそのログインおよびパスワードを表示して統計を表示します。 このようなもの:

  $oPiwikApi = new Piwik_api(PIWIK_AUTH_TOKEN, PIWIK_URL); $oPiwikApi->addUser($sLogin, $sPassword, $sEmail); $iPiwikSiteId = $oPiwikApi->addSite($sSiteName, $sUrl); $oPiwikApi->setUserAccess($sLogin, "view", $iPiwikSiteId);
      
      







ここで、統計の信頼性の問題が発生する可能性があります-完全に信じられないユーザーのために、GAとYaメトリックを手動で接続する機会を残し、Piwikをすべてのユーザーのデフォルトシステムにしました。



これらのすべての操作の後、ユーザーは、トランジション、訪問者などの履歴全体を含む、GA / Yaメトリックシステムと機能面で完全に類似したサブドメインの統計情報を受け取り、各ユーザーは統計情報をドメインごとにのみ表示します。



UPD:

ビール自体に関するレビュー記事がすでにハブに掲載されています。この記事は、ビールを扱うことがいかに簡単で便利かを示す可能性が高いです。 ところで、私は問題がその記事のコメントで議論されていることを発見しました



executeメソッドは、http_build_queryを使用して書き直されました。



All Articles