ホームページ > バックエンド開発 > PHPチュートリアル > PHPでGoogle Analytics API V3を使用:データの取得

PHPでGoogle Analytics API V3を使用:データの取得

William Shakespeare
リリース: 2025-02-19 12:06:13
オリジナル
909 人が閲覧しました

PHPでGoogle Analytics API V3を使用:データの取得

シリーズの最初の部分では、基本的な使用法を含むGoogle Analytics APIを導入しました。この部分では、デモを作成し続け、より多くの機能でどのように拡張できるかを確認します。

キーテイクアウト

    Google Analytics API V3をPHPで利用して、プロパティやビューを含むユーザーアカウントデータを効果的に取得および管理します。
  • 管理APIを実装してアカウント、プロパティ、ビューのリストを取得し、ga_service.phpの初期化設定に基づいて配列またはオブジェクトとしてデータを処理する Metadata APIを活用して、Google_CurlioとGoogle_httpRequestを使用してMetadataにアクセスしてキャッシュ分析をキャッシュし、ETAG属性を使用してデータ検索を最適化します。 APIクエリに並べ替え、フィルタリング、セグメンテーションオプションを組み込み、データのカスタマイズと関連性を強化することにより、機能性を拡張します。
  • PHP内での認証、エラー応答、およびJSONデータの解析を処理して、Google Analytics APIとの安全で効率的な相互作用を確保します。
  • Google Analytics API
  • 管理api
  • 最初の部分で説明したように、管理APIはユーザーアカウント、プロパティ、ビューを取得する責任があります...最初の例では、認証されたユーザーが利用できるアカウントのリストを取得します。
  • ga_service :: accounts承認されたクライアントで新しいGoogle_AnalyticsServiceを作成し、アカウントのリストをAPIに照会します。
この場合、結果は配列ですが、APIはオブジェクトも使用しているため、ga_service :: init関数内でそれを指定する必要があります。次の例では、配列の結果を使用します。

listManagementAccounts関数は、

を含む配列を返します

応答として配列を返すと、Laravelは結果をJSON応答として自動的にエンコードし、ブラウザに送信することに注意してください。

結果には、合計結果といくつかのページネーション情報に関する情報が含まれています。アイテム列には、ID、アクセス許可などのアカウントのリストが含まれていますが、アイテムをループして、アカウントからIDと名前のみを抽出しました。
<span>// app/src/GA_Service.php
</span><span>public function accounts(){
</span>	<span>if( !$this->isLoggedIn() ){
</span>		<span>//login
</span>	<span>}
</span>	
	<span>$service = new Google_AnalyticsService($this->client);
</span>	<span>$man_accounts = $service->management_accounts->listManagementAccounts();
</span>	<span>$accounts = [];
</span>
	<span>foreach ($man_accounts['items'] as $account) {
</span>		<span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ];
</span>	<span>}
</span>
	<span>return $accounts;
</span><span>}//accounts
</span>
<span>// app/controllers/HomeController.php
</span><span>public function accounts(){
</span>	<span>$accounts = $this->ga->accounts();
</span>
	<span>return $accounts;
</span><span>}//accounts
</span>
<span>// app/routes.php
</span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
結果のページネーションが必要な場合は、常により多くのオプションを渡すことができます。

ユーザーにアカウントのリストを表示すると仮定します。それを選択すると、それに関連付けられたプロパティのリストをロードします。

ga_service ::プロパティはアカウントIDを受け入れ、そのアカウントのプロパティのリストを返します。基本的に、アカウントの取得など、同じプロセスがあります
<span>$this->client->setUseObjects(true);</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

すべてのプロパティには、ビューのサブセットがあります。デフォルトでは、Googleはすべての新しいプロパティのすべてのWebサイトデータと呼ばれるビューを追加します。

プロパティのリストと最初の部分から取得したアカウントIDのIDを使用して、特定のアカウントプロパティの利用可能なビューのリストについては、Google Analytics APIを照会します。

ブラウザでは、ヒット/views/{account_id}/{property_id}ルートの場合、次のようなものを取得する必要があります。
<span>// app/src/GA_Service.php
</span><span>public function accounts(){
</span>	<span>if( !$this->isLoggedIn() ){
</span>		<span>//login
</span>	<span>}
</span>	
	<span>$service = new Google_AnalyticsService($this->client);
</span>	<span>$man_accounts = $service->management_accounts->listManagementAccounts();
</span>	<span>$accounts = [];
</span>
	<span>foreach ($man_accounts['items'] as $account) {
</span>		<span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ];
</span>	<span>}
</span>
	<span>return $accounts;
</span><span>}//accounts
</span>
<span>// app/controllers/HomeController.php
</span><span>public function accounts(){
</span>	<span>$accounts = $this->ga->accounts();
</span>
	<span>return $accounts;
</span><span>}//accounts
</span>
<span>// app/routes.php
</span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

メタデータapi

<span>$this->client->setUseObjects(true);</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
Googleアナリティクスからいくつかの統計を照会するには、一連のディメンションとメトリックを提供する必要があります。

メトリック:メトリックは、セッションやPageViewsなど、プロパティ上のユーザーアクティビティの個別の測定値です。

寸法:寸法は、国やブラウザなどのいくつかの一般的な基準にわたってメトリックを分解します。

    利用可能なメタデータのリストを取得するには、Curlを使用して次のURL https://www.googleapis.com/analytics/v3/metadata/ga/columns。
  • Googleアナリティクスは、すべてのリクエストでAPIを照会する必要がないように、応答のキャッシュに使用できるETAG属性を提供します。
  • Google_Curlio:キャッシュ、認証などを扱うためのいくつかのカルートで包まれたクラス - このクラスを使用して、etagattributeを使用して応答がキャッシュされていることを確認します。
Google_httpRequest:単一のHTTPリクエストを表すクラスです。

MakereQuestメソッドはGoogle_HttpRequestインスタンスを返し、getResponseBodyを使用してメタデータ応答を取得できます。

<span>{
</span>    kind<span>: "analytics#accounts",
</span>    <span>username: "me@mail.com",
</span>    <span>totalResults: 3,
</span>    <span>startIndex: 1,
</span>    <span>itemsPerPage: 1000,
</span>    <span>items: [
</span>        <span>{
</span>            id<span>: "4449308",
</span>            <span>kind: "analytics#account",
</span>            <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308",
</span>            <span>name: "me@mail.com",
</span>            <span>permissions: {
</span>                effective<span>: [
</span>                    <span>"COLLABORATE",
</span>                    <span>"EDIT",
</span>                    <span>"MANAGE_USERS",
</span>                    <span>"READ_AND_ANALYZE"
</span>                <span>]
</span>            <span>},
</span>            <span>created: "2013-10-01T11:04:28.478Z",
</span>            <span>updated: "2013-10-01T11:04:28.478Z",
</span>            <span>childLink: {
</span>                type<span>: "analytics#webproperties",
</span>                <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties"
</span>            <span>}
</span>        <span>}
</span>    <span>]
</span><span>}</span>
ログイン後にコピー
ログイン後にコピー
ここで、ブラウザで /メタデータルートにアクセスすると、メトリック用の寸法の配列ともう1つの寸法が取得され、それぞれにグループ化された要素のリストが含まれています。
  • プロセスをスピードアップするには、Bootsnippを使用します。ユーザーがログインしている場合は、ホームページを表示します。
ホームページビューを表示するには、HomeController@インデックスを更新する必要があります。

スクリーンショットからわかるように、ユーザーがアカウントを選択すると、それに応じてプロパティとビューを非同期に変更します。それを達成するために、私はあなたが最終的なリポジトリをチェックできるいくつかの簡単なJSを書きました。
<span>$service->management_accounts->listManagementAccounts( [ 'max-results' => $max_results, 'start-index' => $start_index ] );</span>
ログイン後にコピー
API

のレポート

選択されたビュー、メトリック、ディメンションを提供することにより、ユーザーとインタラクションに関する詳細な統計を取得できます。ユーザーの提出後の結果は、次のようなものになります。
<span>// app/src/GA_Service.php
</span><span>public function properties( $account_id ){
</span>	<span>if( !$this->isLoggedIn() ){
</span>		<span>//login
</span>	<span>}
</span>
	<span>try {
</span>		<span>$service = new Google_AnalyticsService($this->client);
</span>		<span>$man_properties = $service->management_webproperties->listManagementWebproperties($account_id);
</span>		<span>$properties = [];
</span>
		<span>foreach ($man_properties['items'] as $property) {
</span>			<span>$properties[] = [ 'id' => $property['id'], 'name' => $property['name'] ];
</span>		<span>}//foreach
</span>
		<span>return json_encode($properties);
</span>	<span>} catch (Google_ServiceException $e) {
</span>		<span>return Response<span>::</span>json([
</span>			<span>'status'	=> 0,
</span>			<span>'code'		=> 3,
</span>			<span>'message'	=> $e->getMessage()
</span>		<span>]);
</span>	<span>}//catch
</span>
<span>}//properties
</span>
<span>// app/controllers/HomeController.php
</span><span>public function properties( $account_id ){
</span>	<span>$properties = $this->ga->properties( $account_id );
</span>
	<span>return $properties;
</span><span>}//properties
</span>	
	
<span>// app/routes.php
</span><span>Route<span>::</span>get( '/properties/{account_id}', [ 'uses' => 'HomeController@properties' ] )->where('account_id', '\d+');</span>
ログイン後にコピー

ga_service ::レポートは、ビューID、開始日と終了日、メトリックの配列の4つの引数を受け入れます。

Googleはすべてのレガシーデータを返すことはできません。代わりに、開始日と終了日を提供します。私の例では、先月の結果を尋ねました

3番目のパラメーターは、ユーザーの選択から既にあるメトリックのリストです。

4番目のオプションパラメーターは、オプションの配列です。
- Max-Results:結果の最大数。 (10を使用して応答を高速化しました)。
- 寸法:値の分離されたコンマ分離されたリスト。 (GA:国、ジョージア州:都市)
- フィルター:結果に付随するルールのコンマ分離リスト(GA:COUNTRY!= USA、GA:PageViews> 100)
この例では、米国を寸法のリストから除外し、100を超えるページビューのみを示しました。 - セグメント:データに適用される高度なセグメントID。
- 並べ替え:寸法またはメトリックによる結果を注文します。複数の次元とメトリックを組み合わせることができます。 (GA:国、-GA:PageViews = GA:COUNTRY ASCENDING、およびGA:PageViews Desinding。 - start-index:ページネーションに使用できます。

get google_analyticsservice :: getメソッドを呼び出した後、結果項目、列ヘッダー、および合計結果のリストを使用して、結果をテーブルとして出力します。
<span>// app/src/GA_Service.php
</span><span>public function accounts(){
</span>	<span>if( !$this->isLoggedIn() ){
</span>		<span>//login
</span>	<span>}
</span>	
	<span>$service = new Google_AnalyticsService($this->client);
</span>	<span>$man_accounts = $service->management_accounts->listManagementAccounts();
</span>	<span>$accounts = [];
</span>
	<span>foreach ($man_accounts['items'] as $account) {
</span>		<span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ];
</span>	<span>}
</span>
	<span>return $accounts;
</span><span>}//accounts
</span>
<span>// app/controllers/HomeController.php
</span><span>public function accounts(){
</span>	<span>$accounts = $this->ga->accounts();
</span>
	<span>return $accounts;
</span><span>}//accounts
</span>
<span>// app/routes.php
</span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

demo PHPでGoogle Analytics API V3を使用:データの取得を拡張します

次に、フィルター、ソート、セグメントでデモをどのように拡張できるか見てみましょう。

フィルター

フィルターは、返された結果からいくつかのデータを除外する方法です。彼らは次の形式を取っています:

ga:列:寸法またはメトリックID(例:ga:国)

<span>$this->client->setUseObjects(true);</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
オペレーター:オペレーターは、メトリックまたはディメンションの列IDの選択に依存します。ドキュメントのオペレーターのリストを確認してください。
    値:値は数字、文字列、または正規表現です。
  • 複数のフィルターを組み合わせることができます。Comma(、)をORオペレーターとして使用し、セミコロン(;)をAnd Operatorとして使用できます。
  • セグメント
  • デフォルトでは、Google Analyticsグループすべてのグループのすべてのデータがすべてのセッションと呼ばれます。ただし、ニーズに応じて、組み込みのセグメントからいつでも選択したり、新しいセグメントを作成したりできます。紹介、デバイスタイプ、年齢、性別などでデータをグループ化できます。 使用可能なセグメントリストに新しい選択要素を追加してデモを拡張し、前述のようにIDをGETメソッドに渡すことができます。

/セグメントページにアクセスして、IDを持つ利用可能なセグメントのリストを表示できます。もちろん、これを以前に見たようにオプションとして使用できます。

ラッピング

Google Analytics APIは非常に柔軟で多くの機能を提供しますが、ドキュメントはまだ完了しておらず、使用の例を提供していません。ソースコードを掘り下げ、可能性と制限をテストすることで、さらに多くを得ることができます。

このシリーズでは、Googleアナリティクスの基本的な使用法に焦点を当てましたが、Google Analyticsダッシュボードからオプションを使用してデモを拡張できます。

このチュートリアルのソースコードの最終リポジトリを確認できます。

質問?コメント?私に知らせてください!
<span>{
</span>    kind<span>: "analytics#accounts",
</span>    <span>username: "me@mail.com",
</span>    <span>totalResults: 3,
</span>    <span>startIndex: 1,
</span>    <span>itemsPerPage: 1000,
</span>    <span>items: [
</span>        <span>{
</span>            id<span>: "4449308",
</span>            <span>kind: "analytics#account",
</span>            <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308",
</span>            <span>name: "me@mail.com",
</span>            <span>permissions: {
</span>                effective<span>: [
</span>                    <span>"COLLABORATE",
</span>                    <span>"EDIT",
</span>                    <span>"MANAGE_USERS",
</span>                    <span>"READ_AND_ANALYZE"
</span>                <span>]
</span>            <span>},
</span>            <span>created: "2013-10-01T11:04:28.478Z",
</span>            <span>updated: "2013-10-01T11:04:28.478Z",
</span>            <span>childLink: {
</span>                type<span>: "analytics#webproperties",
</span>                <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties"
</span>            <span>}
</span>        <span>}
</span>    <span>]
</span><span>}</span>
ログイン後にコピー
ログイン後にコピー
Google Analytics API V3をphp

で使用することに関するよくある質問(FAQ)

PHPを備えたGoogle Analytics API V3を始めるにはどうすればよいですか?

PHPでGoogle Analytics API V3を開始するには、最初にGoogle Developers Consoleでプロジェクトを作成する必要があります。プロジェクトを作成した後、Google Analytics APIを有効にします。次に、APIの資格情報を作成します。クライアントIDとクライアントの秘密を受け取ります。これをGoogleでアプリケーションを認証するために使用します。その後、PHPを使用してAPIへのリクエストの作成を開始できます。

PHPでGoogle Analytics API V3を使用するための前提条件は何ですか? Googleアカウントと取得するGoogleアナリティクスデータへのアクセスが必要です。また、サーバーにPHPをインストールし、PHPプログラミングの基本的な理解も必要です。 API資格情報を作成したときに受け取ったクライアントIDとクライアントの秘密を使用する必要があります。これらの資格情報を使用してアクセストークンを取得できます。これを使用してAPIリクエストを認証することができます。 Analytics PHPを使用すると、Google Analytics APIにGETリクエストを行う必要があります。リクエストパラメーターに適用するメトリック、寸法、およびフィルターを指定できます。 APIはJSON形式で要求されたデータを返します。これはアプリケーションで解析して使用できます。 Google Analytics API V3 PHPを使用すると、無効な要求パラメーターや認証の問題など、さまざまな理由でエラーが発生する可能性があります。これらのエラーは、APIによって返されるHTTPステータスコードとエラーメッセージをチェックすることで処理できます。これにより、何がうまくいかなかったか、どのように修正するかについての情報が提供されます。

Google Analytics API V3をPHPで使用してリアルタイムデータを追跡できますか?リアルタイムデータを追跡するためのPHPを備えたAPI V3。 APIは、サイト上のアクティブユーザーの数などのリアルタイムデータを取得するために使用できるリアルタイムレポートAPIを提供します。 APIリクエストでフィルターパラメーターを指定することにより、Google Analytics API V3を使用してPHPでGoogle Analytics API V3を使用するときにデータをフィルタリングできます。これらのパラメーターを使用すると、特定の基準を満たすためにAPIによって返されるデータを制限することができます。 Google Analytics API V3をPHPで使用して、複数のGoogleアナリティクスアカウントからデータを取得できます。各アカウントで個別に認証し、各アカウントに対して個別のAPIリクエストを作成する必要があります。Google Analytics API V3をPHPで使用する場合、結果をページングするにはどうすればよいですか?

以上がPHPでGoogle Analytics API V3を使用:データの取得の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート