我使用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