我使用Google API获取Google分析数据。为了获得分析,我需要提供配置文件Id,它看起来像“ga:12345678”。如何从跟踪代码中获取Google个人资料ID?
问题是用户可能有许多配置文件。是否有可能从Google跟踪代码中找出配置文件ID(例如,如果我知道跟踪ID看起来像“UA-1234567-1”)? 它们是否相互关联?
感谢
我使用Google API获取Google分析数据。为了获得分析,我需要提供配置文件Id,它看起来像“ga:12345678”。如何从跟踪代码中获取Google个人资料ID?
问题是用户可能有许多配置文件。是否有可能从Google跟踪代码中找出配置文件ID(例如,如果我知道跟踪ID看起来像“UA-1234567-1”)? 它们是否相互关联?
感谢
你想获得什么叫做tableId
。跟踪代码中使用的ID称为webPropertyId
。可以为每个网络媒体资源创建多个配置文件,并使用唯一tableId's
。
您可以从该tableId
“Analytics设置>配置文件设置”中GA(在型材一个按“编辑”)的屏幕。然后选择“配置文件ID”字段并将其附加到“ga:”。您也可以下载帐户详细信息,包括配置文件数据,使用帐户供稿:http://code.google.com/intl/en/apis/analytics/docs/gdata/gdataReferenceAccountFeed.html
可以编程得到使用管理API(下面的链接)存在一个给定WebPropertyId(UA码)的配置文件。
HTTP调用你的决定将是这样的:
https://www.google.com/analytics/feeds/datasources/ga/accounts/[accountID]/webproperties/[webPropertyID]/profiles
凡accountID
和webPropertyID
要么被设为您有兴趣或~all
的具体数值带回一切当前用户访问。
如果按照约定,您不会在Web属性下创建多个配置文件,那么对于给定的WebPropertyId,只会返回默认配置文件,这意味着您将获得WebPropertyId到配置文件ID的一对一映射。这将允许您从WebPropertyId查找配置文件ID。
看到这里获取更多信息的管理API文档:http://code.google.com/apis/analytics/docs/mgmt/mgmtFeedReference.html
我刚做完发现在Java中通过跟踪代码的配置文件ID的这个任务。关键是,跟踪代码用作网络媒体资源ID,而且该配置文件通过内部网络媒体资源ID与网络媒体资源相关联。因此,步骤如下:
的完整代码如下,所述getProfileId()方法将返回你想要的档案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;
}
}
我用Perl
做了这个。
这是网址get request
my $ url = qq~https://www.googleapis.com/analytics/v3/management/accounts/ACCOUNTID/webproperties/WEBPROPERTYID/profiles?key=APIKEY~;
使用本url
与Token
产生的数据在那里你会找到ga id
希望这有助于。
我有同样的问题,我找到了最简单的方法来获得谷歌分析配置文件ID。
登录到谷歌Analytics(分析)
1.访问您的网站的资料(转至信息中心)
2.您的网址应该会像:
https://www.google.com/analytics/web/#report/visitors-overview/a1234b23478970p987654/
/a1234b23478970p 987654/
最后一部分,在“p”之后是您的Google Analytics配置文件ID,在这种情况下(这是假帐户),它是“987654”
感谢您的回复,抱歉,如果我的问题不明确,我们正在构建一项服务,允许用户通过我们的网站访问他们的GA。事实是,用户可以拥有很多分析配置文件,但我们不希望让他们通过我们的系统访问所有配置文件,只有一个,特别是我们不希望他们手动输入配置文件ID。所以我问是否可以从我们可以访问的跟踪ID中获取个人资料ID?我使用'Gdata'获得GA,我可以得到他们的配置文件列表,但不知道要获取哪些数据。谢谢 – Burjua 2011-03-21 17:54:14
我也有这个问题,试试https://developers.google.com/analytics/solutions/google-analytics-super-proxy,如果有效,我会告诉你@Burja – PauAI 2015-10-20 02:40:03