一个轻量级的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第三方库


热门话题
junit有没有办法在Java中重新初始化静态类?   在浏览器中点击应用程序时java Play框架挂起   文件Java错误中的NullPointerException   使用Java中的SNMP查找网络中计算机的登录名   java包装服务器引导程序已弃用,有什么替代方案?   当客户在等待理发时,java信号量值是否存在问题?   java如何使用JavaMail仅下载特定类型的附件   如何在java中将十进制转换为十六进制   java Slick2D粒子系统不会生成粒子   java检测更改事件来自何处   将Java集合类型参数类设置为数组   java如何从eclipse导出为可运行JAR文件?   java EntityManager对象未注入Glassfish和Spring   swing从actionPerformed和actionListener Java返回字符串   java在给定另一个等价键对象的情况下获取映射项的当前键   无论输入如何,java网络都会产生相同的输出