11

提供されている.NETAPIを使用してGoogleアナリティクスのレポートを取得しようとしていて、最新バージョンのv3を使用して実際に何かを取得する方法に頭を悩ませています。http ://code.google.com /apis/analytics/docs/gdata/v3/gdataLibraries.html

たとえば、次のようなレポートクエリを取得したいと思います: https ://www.google.com/analytics/feeds/data?dimensions = ga:browser&end-date = 2012-01-25&ids = ga:ACCOUNTID&metrics = ga:visits&start-date = 2011-12-25

GDataを使用するバージョン2を使用してレポートを正常に返すことができますが、バージョン2が非推奨になった場合に備えて、バージョン3を実行することを望んでいましたが、意味のあるドキュメントが古くなっているか存在しないように見えるため、多くの問題が発生しました。例を見つけることができませんでした。

4

5 に答える 5

3

これは、.NET APIの最新リリースv1.3.0.15233 )で可能になり、簡単に実行できるようになりました。リリースされた例はありませんが、タスクサンプルをパターンとして使用してGAデータをクエリできます。

そのサンプルプロジェクトをGAで機能させるために追加/変更する必要があるものは次のとおりです。

のインスタンスを宣言しますAnalyticsService

private static AnalyticsService _analyticsService;

スコープをに変更しますScopes.Analytics

scopeメソッド内で宣言された変数がありますGetAuthorization。から変更します

string scope = TasksService.Scopes.TasksReadonly.GetStringValue();

string scope = AnalyticsService.Scopes.Analytics.GetStringValue();

GAサービスを初期化します

if (_analyticsService == null)
{
    _analyticsService = new AnalyticsService(new BaseClientService.Initializer()
    {
        Authenticator = _authenticator = CreateAuthenticator();  
    });
}

クエリを作成する

これは、GAプロファイルをクエリする方法です

// make a request
var request = _analyticsService.Data.Ga.Get(
    "ga:12345678", 
    "2013-01-01",
    "2013-05-08", 
    "ga:visits,ga:bounces,ga:timeOnSite,ga:avgTimeOnSite");
// run the request and get the data                
var data = request.Fetch();

GetRequestAPIドキュメントで定義されているものと同様の4つの必須の引数があることに気付くでしょう。クエリエクスプローラーにアクセスして、.NETAPIで使用する有効なメトリックを確認できます。

于 2013-05-08T10:18:58.950 に答える
3

数日間の検索でアクセスAnalitycsを達成した後、コンソールプロジェクトフレームワーク3.5になります。

*AnalyticsAPIサービスがアクティブ化されたGoogleAPIコンソールプロジェクトが必要です。
* Simple APIでは、AccessはインストールされたアプリケーションのクライアントIDの新しいキーを生成する必要があります。
*Google.Apis.Analytics.v3.dllへの参照を
ダウンロードして追加します*Google.Apis.Authentication.OAuth2.dllへの参照をダウンロードして追加します*
Google.Apis.dllへの参照をダウンロードして追加します*Newtonsoft.Jsonへの参照を
ダウンロードして追加します.Net35.dll
*DotNetOpenAuth.dllへの参照をダウンロードして追加します

そして最後に次のコードを実装します。

private const string Scope = "https://www.googleapis.com/auth/analytics.readonly";
    static void Main(string[] args)
    {
        try
        {
            var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description);
            provider.ClientIdentifier = "Your_Client_ID";
            provider.ClientSecret = "Your_Client_Secret";
            var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthentication);
            var asv = new AnalyticsService(auth);
            var request = asv.Data.Ga.Get("ga:Your_TrackingID", "2013-08-05", "2013-08-05", "ga:visitors");
            request.Dimensions = "ga:visitorType";
            var report = request.Fetch();
            var rows = report.Rows;
            var newVisitors = rows[0];
            var returnVisitors = rows[1];
            Console.WriteLine(newVisitors[0] + ": " + newVisitors[1]);
            Console.WriteLine(returnVisitors[0] + ": " + returnVisitors[1]);
            int newV = Int32.Parse(newVisitors[1]);
            int retV = Int32.Parse(returnVisitors[1]);
            int sum = newV + retV;
            Console.WriteLine("Total:  " + sum);
        }

        catch(Exception ex){
            Console.WriteLine("\n Error: \n" + ex);
            Console.ReadLine();
        }

    }

private static IAuthorizationState GetAuthentication(NativeApplicationClient arg)
    {
        IAuthorizationState state = new AuthorizationState(new[] { Scope });
        state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);
        Uri authUri = arg.RequestUserAuthorization(state);
        System.Diagnostics.Process.Start(authUri.ToString());
        Console.Write("Paste authorization code: ");
        string authCode = Console.ReadLine();
        return arg.ProcessUserAuthorization(authCode, state);
    }

お役に立てれば。

于 2013-09-27T23:09:37.670 に答える
2

これを行う方法についてのステップバイステップの説明をここに投稿しました:Google V3 Beta API How To

于 2013-10-10T15:33:59.013 に答える
1

サービスアカウントを使用した追加の完全な例。

nugetパッケージGoogle.Apis.Analytics.v3をインストールします。

//based on https://github.com/LindaLawton/Google-Dotnet-Samples/tree/master/Google-Analytics

using System;
using System.Threading.Tasks;

using System.Security.Cryptography.X509Certificates;
using Google.Apis.Analytics.v3;
using Google.Apis.Analytics.v3.Data;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Util;
using System.Collections.Generic;
using Google.Apis.Services;

namespace GAImport
{


    class Program
    {
        static void Main(string[] args)
        {
            string[] scopes = new string[] { AnalyticsService.Scope.AnalyticsReadonly }; 

            var keyFilePath = @"path\to\key.p12";    
            var serviceAccountEmail = "someuser@....gserviceaccount.com";  

            //loading the Key file
            var certificate = new X509Certificate2(keyFilePath, "notasecret", X509KeyStorageFlags.Exportable);
            var credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail)
            {
                Scopes = scopes
            }.FromCertificate(certificate));
            var service = new AnalyticsService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "Analytics API Sample",
            });
            var request = service.Data.Ga.Get("ga:1234567", "30daysAgo", "yesterday", "ga:sessions");
            request.MaxResults = 1000;
            var result = request.Execute();
            foreach (var headers in result.ColumnHeaders)
            {
                Console.WriteLine(String.Format("{0} - {1} - {2}", headers.Name, headers.ColumnType, headers.DataType));
            }

            foreach (List<string> row in result.Rows)
            {
                foreach (string col in row)
                {
                    Console.Write(col + " "); 
                }
                Console.Write("\r\n");

            }


            Console.ReadLine();
        }

    }
}
于 2016-12-13T09:53:39.120 に答える
0

v2.3が非推奨になったため、APIのv3.0を使用するように分析サービスを更新しました。Googlehttps://developers.google.com/analytics/resources/articles/gdata-migrationに移行ガイドがあります。 -役立つかもしれないガイド。

v3をサポートするgoogledotnetAPI http://code.google.com/p/google-api-dotnet-client/を使用してみましたが、ドキュメントとサンプルが不足しているため、あきらめました。私たちはnet.httpwebrequestを介してAPIを呼び出しています。これは、APIで何が起こっているのかを理解しようとするよりも簡単でした。

v3の場合は、 https://www.googleapis.com/analytics/v3/data/ga?dimensions = ga:browser&end-date = 2012-01-25&ids = ga:ACCOUNTID&metrics = ga:visits& start-date=2011に電話する必要があります。 -12-25

于 2012-06-15T07:42:49.140 に答える