菜单

全域用户关联 API(Python)

SDK 版本需要 >= v1.11.0

用户关联

用户注册/登录

在全域用户关联业务中,用户标识通过 Bind 接口进行绑定。用户登录时调用 bind() 绑定,第一个参数从详细的预置 id key 列表中获取,第二个参数为对应的具体用户 ID。例如,给用户("ABCDEF123456789")绑定手机号:

接口说明:

def bind(self, first_identity, second_identity, *other_identities):
    """        
    绑定用户标识。至少需要提供两个用户标识信息。identity 的数据类型为 SensorsAnalyticsIdentity。
 
    :param first_identity 待绑定的用户标识
    :param second_identity 待绑定的用户标识
    :param other_identities 其他需要绑定的用户标识
    """


使用示例:

sa.bind(SensorsAnalyticsIdentity("$identity_mobile", "123"), SensorsAnalyticsIdentity("$identity_email", "a@a.com"))

用户解绑

多用户 ID 取消关联时调用  unbind() 解绑,第一个参数为取消关联的 key,第二个参数为对应的取消关联用户 ID。

接口说明:

def unbind(self, identity):
    """
    解除用户标识
    :param identity
    """


使用示例:

sa.unbind(SensorsAnalyticsIdentity(SensorsAnalyticsIdentity.EMAIL, "sv1"))

设置用户属性

为了更准确地提供针对人群的分析服务,神策分析 SDK 可以设置用户属性,如年龄、性别等。用户可以在留存分析、分布分析等功能中,使用用户属性作为过滤条件或以用户属性作为维度进行多维分析。

记录用户属性

使用 profile_set_by_id() 设置用户属性:

接口说明:

def profile_set_by_id(self, properties, *identities):
    """
    设置用户的属性。如果要设置的 properties 的 key,之前在这个用户的 profile 中已经存在,则覆盖,否则,新创建
    :param properties 用户属性
    :param identities 用户标识,类型是 SensorsAnalyticsIdentity
    """ 


示例示例:

sa.profile_set_by_id({"$city":"武汉"}, SensorsAnalyticsIdentity(SensorsAnalyticsIdentity.EMAIL, "sv1"))

对于不再需要的用户属性,可以通过 profile_unset_by_id() 接口将属性删除。用户属性中,属性名称与属性值的约束条件与事件属性相同,详细说明请参考 数据格式

记录初次设定的属性

对于只在首次设置时有效的属性,我们可以使用 profile_set_once_by_id() 记录这些属性。与 profile_set_by_id() 接口不同的是,如果被设置的用户属性已存在,则这条记录会被忽略而不会覆盖已有数据,如果属性不存在则会自动创建。因此,profile_set_once_by_id() 比较适用于为用户设置首次激活时间、首次注册时间等属性。

接口说明:

def profile_set_once_by_id(self, properties, *identities):
    """
    首次设置用户的属性。与  profile_set_by_id 接口不同的是:如果被设置的用户属性已存在,则这条记录会被忽略而不会覆盖已有数据,如果属性不存在则会自动创建
    :param properties 用户属性
    :param identities 用户标识,类型是 SensorsAnalyticsIdentity
    """

示例示例:

sa.profile_setonce_by_id({"$city":"武汉"}, SensorsAnalyticsIdentity(SensorsAnalyticsIdentity.EMAIL, "sv1"))

数值类型的属性

对于数值型的用户属性,可以使用 profile_increment_by_id() 对属性值进行累加。常用于记录用户付费次数、付费额度、积分等属性。

接口说明:

def profile_increment_by_id(self, properties, *identities):
    """
    为用户的一个或多个数值类型的属性累加一个数值,若该属性不存在,则创建它并设置默认值为 0。属性取值只接受 Number类型。
    :param properties 用户属性,类型是 dict,value 必须是 Number 类型
    :param identities 用户标识,可以是 identity、list、tuple
    """


使用示例:

sa.profile_increment_by_id({"age": 2}, SensorsAnalyticsIdentity(SensorsAnalyticsIdentity.EMAIL, "sv1"))

列表类型的属性

对于用户喜爱的电影、用户点评过的餐厅、兴趣爱好等属性,可以记录列表型属性。需要注意的是,列表型属性中的元素必须为 string 类型,且元素的值会自动去重。关于列表类型限制请见 数据格式 属性长度限制。

接口说明:

def profile_append_by_id(self, profiles, *identities):
    """
    追加一个用户的某一个或者多个集合类型的 Profile。
    :param profiles 用户属性,其 key 必须是 str 类型,value 必须是 str 集合类型
    :param identities 用户标识,类型是 SensorsAnalyticsIdentity


使用示例:

sa.profile_append_by_id({"interest": ["ball"]}, SensorsAnalyticsIdentity(SensorsAnalyticsIdentity.EMAIL, "sv1"))

埋点事件采集

在 SDK 初始化完成之后,您可以通过以下接口进行数据埋点。

追踪事件

第一次接入神策分析时,建议先追踪 3~5 个关键的事件,只需要几行代码,便能体验神策分析的分析功能。例如:

  • 图片社交产品,可以追踪用户浏览图片和评论事件
  • 电商产品,可以追踪用户注册、浏览商品和下订单等事件

用户通过 track_by_id() 接口记录事件,对于任何事件,必须包含用户标志符(Identity)和事件名(event)两个参数。用户可以在 TrackById() 的第三个参数传入一个 map[string]interface{} 对象,为事件添加自定义事件属性。以电商产品为例,可以这样追踪一次购物行为:

接口说明:

def track_by_id(self, event_name, properties, *identities):
        """
       使用用户标识 3.0 进行事件埋点
       :param identity 用户标识
       :param event_name 事件名
       :param properties 事件属性,数据类型为 dict
       """


使用示例:

sa.track_by_id("ViewProduct", {"ProductName":"XX手机"}, SensorsAnalyticsIdentity(SensorsAnalyticsIdentity.LOGIN_ID, "sv1"))
上一个
基础 API 介绍(Python)
下一个
简易用户关联 API(Python)
最近修改: 2024-12-27