【问题标题】:How to get google profile Id from tracking code?如何从跟踪代码中获取谷歌个人资料 ID?
【发布时间】:2019-06-26 14:40:14
【问题描述】:

我正在使用 Google API 获取 Google 分析。为了获得分析,我需要提供类似于“ga:12345678”的配置文件 ID。

问题是用户可以拥有许多个人资料。是否可以从 Google 跟踪代码中找出配置文件 ID(例如,如果我知道跟踪 ID 看起来像“UA-1234567-1”)? 它们之间有什么关系吗?

谢谢

【问题讨论】:

    标签: google-analytics google-analytics-api


    【解决方案1】:

    我遇到了同样的问题,我找到了获取谷歌分析配置文件 ID 的最简单方法。

    登录谷歌分析

    1.访问您网站的个人资料(进入仪表板)

    2.您的网址应如下所示:

    https://www.google.com/analytics/web/#report/visitors-overview/a1234b23478970p987654/
    

    /a1234b23478970p987654/

    最后一部分,“p”之后是您的 Google Analytics(分析)个人资料 ID,在这种情况下(这是一个假帐户)是“987654”

    【讨论】:

      【解决方案2】:

      您可以使用管理 API(下面的链接)以编程方式获取给定 WebPropertyId(UA 代码)存在的配置文件。

      您进行的 HTTP 调用将如下所示:

      https://www.google.com/analytics/feeds/datasources/ga/accounts/[accountID]/webproperties/[webPropertyID]/profiles
      

      accountIDwebPropertyID 将设置为您感兴趣的特定值或 ~all 以恢复当前用户可以访问的所有内容。

      如果按照惯例,您不在一个网络媒体资源下创建多个配置文件,则只会返回给定 WebPropertyId 的默认配置文件,这意味着您将获得从 WebPropertyId 到配置文件 ID 的一对一映射。这将允许您从 WebPropertyId 中查找配置文件 ID。

      有关更多信息,请参阅管理 API 文档:http://code.google.com/apis/analytics/docs/mgmt/mgmtFeedReference.html

      【讨论】:

        【解决方案3】:

        我刚刚完成了通过 Java 中的跟踪代码查找配置文件 ID 的任务。关键是跟踪代码用作网络资源 ID,并且配置文件通过内部网络资源 ID 与网络资源链接。所以步骤如下:

        1. 在 Google 开发者控制台中,设置 Service Accounts 客户端 ID 以获取客户端电子邮件地址、客户端 ID 和 p12 文件。下载 p12 并放到您的服务器上。
        2. 使用客户端 ID 和 p12 文件授权您的 Google Analytics 帐户以获取 Analytics 对象
        3. 使用 Analytics 对象,您可以获取所有网络媒体资源对象,选择您的跟踪代码作为网络媒体资源 ID 的媒体资源并获取其内部网络媒体资源 ID
        4. 使用 Analytics 对象,遍历所有配置文件对象,选择内部网络媒体资源 ID 与从第 2 步获得的配置文件相同的配置文件

        完整代码如下,getProfileId()方法会返回你想要的profile id:

        import java.io.File;
        import java.util.Arrays;
        
        import org.apache.commons.lang.StringUtils;
        
        import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
        import com.google.api.client.http.HttpTransport;
        import com.google.api.client.http.javanet.NetHttpTransport;
        import com.google.api.client.json.JsonFactory;
        import com.google.api.client.json.jackson2.JacksonFactory;
        import com.google.api.services.analytics.Analytics;
        import com.google.api.services.analytics.AnalyticsScopes;
        import com.google.api.services.analytics.model.Profile;
        import com.google.api.services.analytics.model.Profiles;
        import com.google.api.services.analytics.model.Webproperties;
        import com.google.api.services.analytics.model.Webproperty;
        
        public class AnalyticsUtils {
        
            public static final String APP_NAME = "<YOUR APP NAME>";
            public static final String CLIENT_ID = "<YOUR CLIENT ID>";
            public static final String CLIENT_EMAIL = "<YOUR CLIENT EMAIL>";
            public static final String PATH_TO_P12= "<PATH TO YOUR P12 FILE>";
            public static final String TRACKING_ID="<YOUR TRACKING CODE>";
        
            public static Analytics initializeAnalytics() throws Exception {
        
                final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
        
                final JsonFactory JSON_FACTORY = new JacksonFactory();
        
                GoogleCredential credential = new GoogleCredential.Builder()
                        .setTransport(HTTP_TRANSPORT)
                        .setJsonFactory(JSON_FACTORY)
                        .setServiceAccountId(CLIENT_EMAIL)
                        .setServiceAccountPrivateKeyFromP12File(new File(PATH_TO_P12))
                        .setServiceAccountScopes(
                                Arrays.asList(AnalyticsScopes.ANALYTICS_READONLY))
                        .build();
        
                Analytics analytics = new Analytics.Builder(HTTP_TRANSPORT,
                        JSON_FACTORY, credential).setApplicationName(APP_NAME).build();
        
                return analytics;
            }
        
            public static String getProfileId(Analytics analytics) throws Exception {
                Webproperties webproperties = analytics.management().webproperties().list("~all").execute();
                String internalPropertyId = StringUtils.EMPTY;
        
                for (Webproperty webproperty: webproperties.getItems()) {
                    if (TRACKING_ID.equalsIgnoreCase(webproperty.getId())) {
                        internalPropertyId = webproperty.getInternalWebPropertyId();
                        break;
                    }
                }
        
                Profiles profiles = analytics.management().profiles()
                        .list("~all", "~all").execute();
        
                for (Profile profile: profiles.getItems()) {
                    if (internalPropertyId.equalsIgnoreCase(profile.getInternalWebPropertyId())) {
                        return profile.getId();
                    }
                }
        
                return StringUtils.EMPTY;
            }
        
        }
        

        【讨论】:

          【解决方案4】:

          您尝试获取的内容称为tableId。跟踪代码中使用的 ID 称为webPropertyId。可以为每个网络媒体资源创建多个具有唯一 tableId's 的配置文件。

          您可以从 GA 中的“分析设置 > 配置文件设置”屏幕获取tableId(在其中一个配置文件上按“编辑”)。然后获取“个人资料 ID”字段并将其附加到“ga:”。您还可以使用帐户供稿下载帐户详细信息,包括个人资料数据:http://code.google.com/intl/en/apis/analytics/docs/gdata/gdataReferenceAccountFeed.html

          【讨论】:

          • 感谢您的回复,如果我的问题不清楚,很抱歉,我们正在构建一项服务,允许用户通过我们的网站访问他们的 GA。事实上,用户可以拥有许多分析配置文件,但我们不想让他们通过我们的系统访问他们的所有配置文件,特别是一个,当然我们不希望他们手动输入配置文件 ID。所以我问是否可以从我们可以访问的跟踪 ID 中获取配置文件 ID?我正在使用Gdata 获取 GA,我可以获取他们的个人资料列表,但不知道要获取哪些数据。谢谢
          • 我也有这个问题,试试这个developers.google.com/analytics/solutions/…,我会告诉你它是否有效@Burja
          【解决方案5】:

          我使用 Perl 完成了这项工作。

          这是 get request

          的网址
           my $ url = qq~https://www.googleapis.com/analytics/v3/management/accounts/ACCOUNTID/webproperties/WEBPROPERTYID/profiles?key=APIKEY~;
          

          将此urlToken 一起使用以生成数据,您将在其中找到ga id

          希望这会有所帮助。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-09-15
            • 2013-05-20
            • 1970-01-01
            • 2022-01-13
            • 1970-01-01
            • 1970-01-01
            • 2016-02-26
            • 1970-01-01
            相关资源
            最近更新 更多