跳到正文

分析

产品分析:track、identify、漏斗与同期群。

概览

基础路径: /v1/analytics
Python 命名空间: infra.analytics
text
# Python
from infrai import infra

# TypeScript
import { InfraiClient } from "@infrai/sdk";
const client = new InfraiClient({ apiKey: process.env.INFRAI_API_KEY! });
// → client.analytics

方法

analytics.track

POST /v1/analytics/track

追踪一个或多个分析事件。

Python

python
infra.analytics.track(event=..., distinct_id=..., properties=None)

TypeScript

typescript
client.analytics.track(ev: AnalyticsEvent | AnalyticsEvent[]): Promise<{ ok, accepted }>

参数

名称类型必填说明
eventstring
必填
事件名称。
distinct_idstring
必填
操作用户的稳定 id。
propertiesRecord<string, unknown>可选任意事件属性。

返回

{ ok, accepted }

示例

一次性前置(每个范例都假定已完成):

bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...
python
from infrai import infra

infra.analytics.track(event="signup", distinct_id="u_123",
                      properties={"plan": "standard"})
print("tracked")

analytics.identify

POST /v1/analytics/identify

将特征属性关联到某个 distinct id。

Python

python
infra.analytics.identify(distinct_id=..., user_id=None, traits=None)

TypeScript

typescript
client.analytics.identify(opts): Promise<{ ok }>

参数

名称类型必填说明
distinct_idstring
必填
操作用户的稳定 id。
user_idstring可选连接用户的 id。
traitsRecord<string, unknown>可选要设置的用户特征。

返回

{ ok: boolean }

示例

一次性前置(每个范例都假定已完成):

bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...
python
from infrai import infra

infra.analytics.identify(distinct_id="u_123", user_id="u_123",
                         traits={"email": "alice@example.com", "plan": "pro"})
print("identified")

analytics.funnel

POST /v1/analytics/funnel

计算跨事件步骤的转化漏斗。

Python

python
infra.analytics.funnel(steps=[...], from_=..., to=...)

TypeScript

typescript
client.analytics.funnel(opts): Promise<{ steps }>

参数

名称类型必填说明
stepsstring[]
必填
构成漏斗的有序事件名称。
fromstring
必填
时间范围起点。
tostring
必填
时间范围终点。

返回

{ steps: Array<{ event, count, conversion_pct }> }

示例

一次性前置(每个范例都假定已完成):

bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...
python
from infrai import infra

f = infra.analytics.funnel(steps=["signup", "activate", "pay"],
                           from_="2026-01-01", to="2026-01-31")
for s in f.get("steps", []):
    print(s.get("event"), s.get("count"), s.get("conversion_pct"))

analytics.cohort

POST /v1/analytics/cohort

在时间范围内计算同期群分桶。

Python

python
infra.analytics.cohort(definition=..., from_=..., to=...)

TypeScript

typescript
client.analytics.cohort(opts): Promise<{ buckets }>

参数

名称类型必填说明
definition{ event, filter? }
必填
同期群定义,含事件与可选过滤。
fromstring
必填
时间范围起点。
tostring
必填
时间范围终点。

返回

{ buckets: Array<{ bucket, size }> }

示例

一次性前置(每个范例都假定已完成):

bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...
python
from infrai import infra

c = infra.analytics.cohort(definition={"event": "signup"},
                           from_="2026-01-01", to="2026-01-31")
for b in c.get("buckets", []):
    print(b.get("bucket"), b.get("size"))