0

Google アナリティクス API を使用して、アナリティクス アカウントからウェブ プロパティ情報を取得しています。

ただし、分析にログインすると、Web サイトは 1 つしかありませんが、API を介していくつかの (古いサイトと削除されたサイト) を取得します。

私のコードは次のようなものです:

        var provider = new WebServerClient(GoogleAuthenticationServer.Description)
                           {
                               ClientIdentifier = _appId,
                               ClientSecret = _appSecret
                           };

        var auth = new OAuth2Authenticator<WebServerClient>(provider, x => new AuthorizationState { AccessToken = token });
        var analyticsService = new AnalyticsService(auth);

        var accounts = analyticsService.Management.Accounts.List().Fetch();

        foreach (var account in accounts.Items)
        {
            var webProperties = analyticsService.Management.Webproperties.List(account.Id).Fetch();

            // todo: determine if web property is still in use?
        }

コードから、どれがまだアクティブであるかをどのように確認できますか?

4

1 に答える 1

0

それで、もう少し掘り下げた後。

削除されたことを示すフラグなどはないようですが、結果セットを掘り下げ続けると、プロファイル レベルで、子アイテムを持たないプロファイルが削除されたように見えることがわかります。

これは、削除されたプロファイルに関連付けられたプロファイルはないと思います。

var provider = new WebServerClient(GoogleAuthenticationServer.Description)
                           {
                               ClientIdentifier = _appId,
                               ClientSecret = _appSecret
                           };

        var auth = new OAuth2Authenticator<WebServerClient>(provider, x => new AuthorizationState { AccessToken = token });
        var analyticsService = new AnalyticsService(auth);

        var accounts = analyticsService.Management.Accounts.List().Fetch();
        var result = new List<Profile>();

        foreach (var account in accounts.Items)
        {
            var webProperties = analyticsService.Management.Webproperties.List(account.Id).Fetch();

            foreach (var webProperty in webProperties.Items)
            {
                var profiles = analyticsService.Management.Profiles.List(account.Id, webProperty.Id).Fetch();

                if (profiles.Items != null && profiles.Items.Any())
                {
                    // these are the ones we want
                    result.AddRange(profiles.Items);
                }
            }

        }
    }
于 2012-10-03T01:48:04.533 に答える