Google Analytics и Python - PullRequest
       41

Google Analytics и Python

5 голосов
/ 28 октября 2009

Я новичок в Python и пытаюсь написать расширение для приложения, которое импортирует информацию GA и анализирует ее в MySQL. По этой теме существует крайне скудное количество информации. Документы Google, кажется, имеют примеры только на JS и Java ...

... Я дошел до того, что мой пользователь может пройти аутентификацию в GA с использованием SubAuth. Этот код здесь:

import gdata.service
import gdata.analytics  
from django import http
from django import shortcuts
from django.shortcuts import render_to_response

def authorize(request):
    next = 'http://localhost:8000/authconfirm'
    scope = 'https://www.google.com/analytics/feeds'
    secure = False  # set secure=True to request secure AuthSub tokens
    session = False
    auth_sub_url = gdata.service.GenerateAuthSubRequestUrl(next, scope, secure=secure, session=session)
    return http.HttpResponseRedirect(auth_sub_url)

Итак, следующий шаг - получение данных. Я нашел эту библиотеку: (будьте осторожны, пользовательский интерфейс оскорбительный) http://gdata -python-client.googlecode.com / svn / trunk / pydocs / gdata.analytics.html Однако мне было трудно ориентироваться. Кажется, что я должен быть gdata.analytics.AnalyticsDataEntry.getDataEntry (), но я не уверен, что он просит меня передать его.

Я бы хотел толчок в правильном направлении. Я чувствую, что исчерпал Google в поисках рабочего примера.

Спасибо !!

РЕДАКТИРОВАТЬ: Я получил дальше, но моя проблема все еще не решена. Приведенный ниже метод возвращает данные (я полагаю) .... я получаю сообщение об ошибке: "У объекта 'str' нет атрибута '_BecomeChildElement' 'Я полагаю, что я возвращаю фид? Тем не менее, я не знаю, как это сделать. Могу ли я осмотреть этот объект?

def auth_confirm(request):
    gdata_service = gdata.service.GDataService('iSample_acctSample_v1.0')
    feedUri='https://www.google.com/analytics/feeds/accounts/default?max-results=50'
    # request feed
    feed = gdata.analytics.AnalyticsDataFeed(feedUri)
    print str(feed)

Ответы [ 3 ]

3 голосов
/ 28 октября 2009

Может быть этот пост может помочь. Похоже, что привязок к Google Analytics пока нет, поэтому вы работаете с общими данными.

2 голосов
/ 14 декабря 2009

Я использую GA чуть больше года, и примерно с апреля 2009 года я использовал привязки python, поставляемые в пакете python-googleanalytics от Clint Ecker et al. Пока это работает довольно хорошо.

Вот где его взять: http://github.com/clintecker/python-googleanalytics.

Установите его обычным способом.

Чтобы использовать его: во-первых, чтобы вам не приходилось вручную вводить учетные данные для входа при каждом доступе к API, поместите их в файл конфигурации следующим образом:

[Credentials]
google_account_email = youraccount@gmail.com
google_account_password = yourpassword

Назовите этот файл .pythongoogleanalytics и поместите его в свой домашний каталог.

А из интерактивного приглашения введите:

from googleanalytics import Connection
import datetime
connection = Connection()     # pass in id & pw as strings **if** not in config file
account = connection.get_account(<*your GA profile ID goes here*>)
start_date = datetime.date(2009, 12, 01)
end_data = datetime.date(2009, 12, 13)
# account object does the work, specify what data you want w/ 
# 'metrics' & 'dimensions'; see 'USAGE.md' file for examples
account.get_data(start_date=start_date, end_date=end_date, metrics=['visits'])

Метод 'get_account' вернет Python список (в приведенном выше примере привязанный к переменной 'account'), который содержит ваши данные.

0 голосов
/ 26 мая 2014

Вам нужно 3 файла в приложении. client_secrets.json, analytics.dat и google_auth.py.

Создание модуля Query.py в приложении:

class Query(object):
    def __init__(self, startdate, enddate, filter, metrics):
        self.startdate = startdate.strftime('%Y-%m-%d')
        self.enddate = enddate.strftime('%Y-%m-%d')
        self.filter = "ga:medium=" + filter  
        self.metrics = metrics

Пример models.py: # имеет следующую функцию

import google_auth
service = googleauth.initialize_service()
def total_visit(self):
    object = AnalyticsData.objects.get(utm_source=self.utm_source)
    trial = Query(object.date.startdate, object.date.enddate, object.utm_source, ga:sessions")
    result = service.data().ga().get(ids = 'ga:<your-profile-id>', start_date =   trial.startdate, end_date = trial.enddate, filters= trial.filter, metrics = trial.metrics).execute()
    total_visit = result.get('rows')
    <yr save command, ColumnName.object.create(data=total_visit) goes here>
...