一个轻量级的python包装器,用于google的分析报告api v4,它是在googleapi python客户端上编写的。

gaapi的Python项目详细描述


砷化镓0.1.5

写在Google's API Python Client上的Google's Analytics Reporting API v4的轻量级python包装器。

gaapi提供的特性

  • 分析聚焦于处理报告API的库。
  • Python式用法。
  • 使您能够缓存响应数据。
  • 使您能够获得简化的响应数据。(待办事项)

安装

要安装,只需使用pipeasy_install

$ pip install --upgrade gaapi

$ easy_install --upgrade gaapi

获取谷歌凭证

1。要创建服务帐户凭据,请按以下链接进行操作

https://support.google.com/a/answer/7378726?hl=en

2。在Google Analytics中获取视图ID,按照下面的链接进行操作

https://keyword-hero.com/documentation/finding-your-view-id-in-google-analytics


开始

实例化GA客户端

from gaapi import Client

GA_SERVICE_ACCOUNT_CREDENTIALS = {
   "type": "service_account",
   "project_id": "analytics-xyz",
   "private_key_id": "private_key_id",
   "private_key": "-----BEGIN PRIVATE KEY-----ASADASDONWQENLKQWEIL\nASDASDOILWQE",
   "client_email": "username@analytics-xyz.iam.gserviceaccount.com",
   "client_id": "103486406559549721528",
   "auth_uri": "https://accounts.google.com/o/oauth2/auth",
   "token_uri": "https://accounts.google.com/o/oauth2/token",
   "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/username@analytics-xyz.iam.gserviceaccount.com"
}
GA_VIEW_ID = '12345567890'


ga = Client(
        credentials=GA_SERVICE_ACCOUNT_CREDENTIALS,
        view_id=GA_VIEW_ID
     )

生成查询

gaapi格式
query = ga.query.date_ranges(
        start_date='2018-07-03', end_date='today'
    ).metrics(
        expression='ga:users'
    ).dimensions(
        name='ga:pagePath'
    ).dimensions(
        name='ga:eventLabel'
    ).dimension_filter_clauses(
        filters=[{
            "dimension_name": "ga:pagePath",
            "operator": "REGEXP",
            "expressions": ".*something.*"
        }],
    )

# Clone query (Only for Gaapi format)
# Add `clean=True` to reset a value in the query (say for date_ranges)
cloned_query = ga.query.clone(query).date_ranges(
         start_date='2018-08-01', end_date='today', clean=True
    )

# Read query
print(query.json())

python字典格式
query = {
    'date_ranges': {
        'start_date': '2018-07-03',
        'end_date': 'today'
    },
    'metrics': [
        {'expression': 'ga:users'}
    ],
    'dimensions': [
        {'name': 'ga:pagePath'}
    ],
    'dimension_filter_clauses': [{
      "filters": [{
          "dimension_name": "ga:pagePath",
          "operator": "REGEXP",
          "expressions": "\/.*something\/.*"
      }]
    }]
}

谷歌的原始查询格式
query = {
    'dateRanges': {
        'startDate': '2018-07-03',
        'endDate': 'today'
    },
    'metrics': [
        {'expression': 'ga:users'}
    ],
    'dimensions': [
        {'name': 'ga:pagePath'}
    ],
    'dimensionFilterClauses': [{
      "filters": [{
          "dimensionName": "ga:pagePath",
          "operator": "REGEXP",
          "expressions": "\/.*something\/.*"
      }]
    }]
}

请求数据

# Using gaapi query or python dictionary or json
response = ga.batch_get(query)

# Cache for 600ms
response = ga.batch_get(query, cache_ttl=600)

第三方库和依赖项

安装客户端库时将安装以下库:

待办事项

  • 响应对象操作。(此更新将使您能够在google raw response、simplified response、csv、panda dataframe中生成响应)。
  • 测试用例。

贡献

  1. 寻找一个打开的issue或创建一个新问题,以获得一个关于您发现的新功能或错误的对话框。
  2. 分叉github上的repository开始对主分支(或其分支)进行更改。
  3. 编写一个测试,显示错误已修复或功能按预期工作。
  4. 提出请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在我的存储库中保存DateTime类型的数据类型时,我面临问题:   java从选项卡中打开新选项卡并选择新选项卡   java正则表达式:解析包含最后、第一和中间首字母的字符串   javajackson映射关系   java像素阵列过于CPU密集   java无法将JTextArea内容打印到文件中   数组求和不正确,线程“main”java中出现异常。lang.ArrayIndexOutofBounds异常:100   java如何从AlarmManager BroadcastReceiver调用MainActivity方法?   java JSR 303组合约束   java如何处理PathExpanderBuilder。addNodeFilter工作?   java如何将变量(字母)输入计算器类函数   JavaApacheIgnite队列比LinkedBlockingQueue慢得多   java JMH微基准递归快速排序   Java单元测试,从循环中的断言获取更多数据   基于地标的java人脸点绘制   如何在使用java和hibernate的mysql中按组计算行数?   布尔递归的java替代方案   java如何将从数据库提取的对象添加到arraylist?   java控制对通信层的访问