Pregunta

Soy nuevo en Python e intento escribir una extensión para una aplicación que importa información de GA y la analiza en MySQL. Hay una cantidad escasamente escasa de información sobre el tema. Google Docs solo parece tener ejemplos en JS y Java ...

... He llegado al punto en que mi usuario puede autenticarse en GA usando SubAuth. Ese código está aquí:

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)

Entonces, el siguiente paso es obtener los datos. He encontrado esta biblioteca: (cuidado, la interfaz de usuario es ofensiva) http://gdata-python-client.googlecode.com/svn/trunk/pydocs/gdata.analytics.html Sin embargo, me ha resultado difícil navegar. Parece que debería ser gdata.analytics.AnalyticsDataEntry.getDataEntry (), pero no estoy seguro de qué me está pidiendo que lo pase.

Me encantaría un empujón en la dirección correcta. Siento que he agotado google buscando un ejemplo de trabajo.

¡Gracias!

EDITAR: he llegado más lejos, pero mi problema aún no está resuelto. El siguiente método devuelve datos (creo) ... el error que obtengo es: " el objeto 'str' no tiene el atributo '_BecomeChildElement' " ¿Creo que estoy devolviendo un feed? Sin embargo, no sé cómo profundizar en él. ¿Hay alguna manera de inspeccionar este objeto?

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)
¿Fue útil?

Solución

Quizás esta publicación puede ayudar. Parece que todavía no hay enlaces específicos de Analytics, por lo que está trabajando con los gdata genéricos.

Otros consejos

He estado usando GA durante un poco más de un año y desde abril de 2009, he usado enlaces de python suministrados en un paquete llamado Python-googleanalytics por Clint Ecker et al. Hasta ahora, funciona bastante bien.

Aquí es donde obtenerlo: http://github.com/clintecker/python-googleanalytics.

Instalarlo de la manera habitual.

Para usarlo: Primero, para que no tenga que pasar manualmente sus credenciales de inicio de sesión cada vez que acceda a la API, colóquelas en un archivo de configuración de la siguiente manera:

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

Nombre este archivo '.pythongoogleanalytics' y póngalo en su directorio de inicio.

Y desde una solicitud interactiva escriba:

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'])

El método 'get_account' devolverá una lista de python (en la instancia anterior, vinculada a la variable 'cuenta'), que contiene sus datos.

Necesita 3 archivos dentro de la aplicación. client_secrets.json, analytics.dat y google_auth.py.

Cree un módulo Query.py dentro de la aplicación:

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

Ejemplo de models.py: # tiene la siguiente función

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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top