Pergunta

Eu sou novo em Python e eu estou tentando escrever uma extensão para um aplicativo que as importações GA informações e analisa-lo em MySQL. Há uma quantidade shamfully escassa de infomation sobre o tema. O Google Docs só parecem ter exemplos em JS e Java ...

... eu ter chegado ao ponto em que meu usuário pode autenticar em GA usando SubAuth. Esse código é aqui:

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)

Assim, o passo seguinte é obter os dados. Eu encontrei esta biblioteca: (cuidado, UI é ofensivo) http://gdata-python-client.googlecode.com/svn/trunk/pydocs/gdata.analytics.html No entanto, eu achei difícil de navegar. Parece que eu deveria ser gdata.analytics.AnalyticsDataEntry.getDataEntry (), mas eu não tenho certeza do que ele está me pedindo para passá-lo.

Eu adoraria um empurrão na direção certa. Eu sinto que eu google exausto procurando um exemplo de trabalho.

Obrigado !!

EDIT: Eu comecei mais longe, mas o meu problema ainda não está resolvido. Os abaixo método retorna dados (eu acredito) .... o erro que eu recebo é: " 'str' objeto não tem nenhum atributo '_BecomeChildElement" Eu acredito que eu estou retornando um feed? No entanto, eu não sei como perfurar para ele. Existe uma maneira para mim para inspecionar 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)
Foi útil?

Solução

este post pode ajudar. Parece que não existem ligações específicas do Google Analytics ainda, então você está trabalhando com o gdata genérico.

Outras dicas

vínculos python Eu tenho usado GA por um pouco mais de um ano e desde cerca de abril de 2009, eu usei fornecido em um pacote chamado python-googleanalytics por Clint Ecker et al. Até agora, ele funciona muito bem.

Aqui é onde obtê-lo: http://github.com/clintecker/python-googleanalytics.

Instale-o da maneira usual.

Para usá-lo: Primeiro, para que você não tem que passar manualmente em suas credenciais de login cada vez que você acessar a API, colocá-los em um arquivo de configuração da seguinte forma:

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

Nome '.pythongoogleanalytics' este arquivo e colocá-lo em seu diretório home.

E a partir de um tipo de prompt interativo:

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

O método 'get_account' irá retornar uma python lista (no exemplo acima, vinculado à variável 'conta'), que contém seus dados.

Você precisa de 3 arquivos dentro do aplicativo. client_secrets.json, analytics.dat e google_auth.py.

Criar um módulo Query.py dentro do aplicativo:

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

Exemplo models.py: #has a seguinte função

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top