Google Analytics API в C# - Не удалось выполнить запрос: https://www.google.com/analytics/feeds/accounts/default

Я хочу получить доступ к аналитическим данным Google, и я получил образцы из SDK API данных Google. но эта кодировка не работает и выдает исключение

Не удалось выполнить запрос: https://www.google.com/analytics/feeds/accounts/default

так что я нашел причину этого, Google обновил это до v3.0. Я искал обновленную кодировку для C#, но я не мог найти решение для этого.

У меня такая же проблема, как это, но с C#. Исключение при использовании GData .NET Analytics API

я попытался написать код с внесением изменений, как указано в Google Developer - https://developers.google.com/analytics/resources/articles/gdata-migration-guide

string userName = this.Username.Text;
string passWord = this.Password.Text;

AnalyticsService service = new AnalyticsService("AnalyticsSampleApp");
service.setUserCredentials(userName, passWord);
string googleAccountWebId = "AIXXXXXXXXXXXXXXXXXXXXXXXXXXX";
string profileFeedUrl = "https://www.googleapis.com/analytics/v2.4/data?key=" + googleAccountWebId;

DataQuery query2 = new DataQuery(profileFeedUrl);
query2.Ids = "12345678";
query2.Metrics = "ga:visits";
query2.Sort = "ga:visits";
query2.GAStartDate = DateTime.Now.AddMonths(-1).AddDays(-2).ToString("2011-08-01");
query2.GAEndDate = DateTime.Now.ToString("2013-09-01");
query2.StartIndex = 1;


DataFeed data = service.Query(query2);


foreach (DataEntry entry in data.Entries)
{
    string st=entry.Metrics[0].Value;       
}

но даже я меняю это бросает исключение в

DataFeed data = service.Query(query2);

эта линия. Исключением является следующее:

Не удалось выполнить запрос: https://www.googleapis.com/analytics/v2.4/data?key=AIXXXXXXXXXXXXXXXXXXXXXX-8&start-index=1&end-date=2013-09-01&ids=12345678&metrics=ga:visits&sort=ga:visits&start-date=2011-08-01: -date = 2011-08-01

я использую следующую DLL

Google.GData.Analytics.dll
Google.GData.Client.dll
Google.GData.Extensions.dll

Мои вопросы:

  1. как я могу исправить эту ошибку?

  2. как я могу получить доступ к аналитическим данным Google? это правильно? или как это сделать?? Например, я хочу получить доступный ProfileId и их значения. (Заголовок и просмотр страниц)

1 ответ

Решение

Аккаунт Google Analytics:

Я предполагаю, что у вас уже есть аккаунт аналитики, если вы не создадите его, и зарегистрируйте свой домен здесь: http://www.google.com/intl/en/analytics/

Чтобы получить ключ API, сделайте это:

Следуйте инструкциям на https://developers.google.com/analytics/resources/articles/gdata-migration-guide (создать проект в консоли API Google), чтобы сгенерировать свой ключ. После того, как он будет установлен как часть строки запроса запросить службу Google Analytics, в этом случае: YourAPIkEStringabcdefghijklmno

Чтобы получить profileId (идентификаторы в коде), вы должны сделать это:

Войдите в свою учетную запись Google Analytics, выберите нужный домен в своем списке (синяя ссылка), нажмите кнопку администратора и на вкладке профилей найдите вложенную вкладку конфигурации профиля, прямо там вы найдете идентификатор профиля, в данном случае длинный идентификатор из восьми символов: 12345678

Здесь у вас есть код C#, чтобы помочь вам получить количество посещений для этого идентификатора:

public string VisitsNumber() 
    {
        string visits = string.Empty;
        string username = "youremailuser@domain.com";
        string pass = "yourpassword";
        string gkey = "?key=YourAPIkEYYourAPIkEYYourAPIkEYYourAPIkE";

    string dataFeedUrl = "https://www.google.com/analytics/feeds/data" + gkey;
    string accountFeedUrl = "https://www.googleapis.com/analytics/v2.4/management/accounts" + gkey;

    AnalyticsService service = new AnalyticsService("WebApp");
    service.setUserCredentials(username, pass);

    DataQuery query1 = new DataQuery(dataFeedUrl);

    query1.Ids = "ga:12345678";
    query1.Metrics = "ga:visits";
    query1.Sort = "ga:visits";

    //You were setting 2013-09-01 and thats an invalid date because it hasn't been reached yet, be sure you set valid dates
    //For start date is better to place an aprox date when you registered the domain on Google Analytics for example January 2nd 2012, for an end date the actual date is enough, no need to go further
    query1.GAStartDate = new DateTime(2012, 1, 2).ToString("yyyy-MM-dd"); 
    query1.GAEndDate = DateTime.Now.ToString("yyyy-MM-dd");
    query1.StartIndex = 1;        

    DataFeed dataFeedVisits = service.Query(query1);

    foreach (DataEntry entry in dataFeedVisits.Entries)
    {
        string st = entry.Title.Text;
        string ss = entry.Metrics[0].Value;
        visits = ss;
    }

    return visits;
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack) 
    {
        Response.Write("Visits:" + this.VisitsNumber());
    }
}

Поскольку API 2.4 больше не так гибок, у меня есть еще одна публикация, в которой он взломан для получения идентификатора профиля: Получение определенного ProfileId из зарегистрированных учетных записей с использованием GData .NET Analytics API 2.4, если вам нужно преобразовать код в C#, вы можете использовать Telerik конвертер: http://converter.telerik.com/

Я думаю, что этого достаточно, чтобы использовать 2.4 API. Если вам нужна дополнительная помощь, дайте мне знать.

Другие вопросы по тегам