سؤال

أنا جديد تمامًا في 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()، لكنني لست متأكدًا مما يطلب مني تمريره.

أود أن دفعة في الاتجاه الصحيح.أشعر أنني استنفدت جوجل أبحث عن مثال عملي.

شكرًا لك!!

يحرر:لقد تقدمت كثيرًا، لكن مشكلتي لم يتم حلها بعد.الطريقة أدناه ترجع البيانات (على ما أعتقد)....الخطأ الذي أحصل عليه هو:"لا يحتوي كائن '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)
هل كانت مفيدة؟

المحلول

هذا المنصب يمكن أن تساعد بها. يبدو أن هناك لا برنامج Analytics الارتباطات محددة بعد، لذلك كنت تعمل مع gdata عام.

نصائح أخرى

أنا أستخدم GA منذ أكثر من عام بقليل، ومنذ أبريل 2009 تقريبًا، استخدمت روابط python المتوفرة في حزمة تسمى python-googleanalytics بواسطة Clint Ecker et al.حتى الآن، يعمل بشكل جيد.

إليك مكان الحصول عليه: http://github.com/clintecker/python-googleanalytics.

قم بتثبيته بالطريقة المعتادة.

لتستخدمها:أولاً، حتى لا تضطر إلى تمرير بيانات اعتماد تسجيل الدخول يدويًا في كل مرة تصل فيها إلى واجهة برمجة التطبيقات، ضعها في ملف تكوين كما يلي:

[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" الثعبان قائمة (في المثال أعلاه، منضم إلى المتغير "الحساب")، الذي يحتوي على بياناتك.

تحتاج إلى 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

نماذج النماذج.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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top