ID-Mapping在游戏领域的解决方案

本文介绍了如何使用PolarDB for AI的特征算子打造ID-Mapping的解决方案。

背景信息

ID-Mapping是将所有可以收集到的账户类ID、设备标识ID等信息进行关联,并将关联后的信息汇聚到一个自然人身上,同时赋予这个自然人一个ID,作为这个自然人的唯一ID。

在游戏领域,同一用户可以在游戏公司的自建平台上创建多个游戏账号,在其他平台也有游戏公司的自研游戏账号,这些账号分散在各个游戏或平台中而没有进行相互关联 。基础数据建设不完善会带来各种问题,例如:在做精准营销时不能精准刻画同一个用户,流量在跨渠道使用时效率很低,因此,需要借助ID-Mapping技术助力基础数据建设,以完善精准营销或个性化推荐等。

打造ID-Mapping解决方案

以游戏领域的ID类型为例,游戏领域的ID类型分为两大类:

  • 账户类:游戏平台的账号、特定游戏的账号、电话号码和邮箱地址等。

  • 设备类:设备IMEI、设备IMSI、设备OAID和AndroidID等。

  1. 创建基础信息表。

    ID-Mapping使用的资源是已有的两类信息表,即:

    • 用户属性信息,如userid、电话号码、邮箱地址和身份证号码等。

    • 用户行为信息,如用户登录游戏的信息、用户在游戏中的交易信息以及用户在游戏中的交流信息等。

      用户属性信息表user_info如下:

      列名

      说明

      plat_user_id

      用户ID。示例:0b887f9e1e915XXXX。

      phone_number

      电话号码。

      email

      邮箱地址。示例:xxx@alibaba-inc.com。

      device_id

      常用设备号码。示例:0b887fXXXX915e355。

      用户行为信息表1game_platform_info如下,记录用户登录游戏平台的具体信息。

      列名

      说明

      device_id

      设备ID。示例:0b887f9e1e915XXXX。

      android_id

      AndroidID。示例:02bd2a91190c1a6406866302942f4XXXX。

      oaid

      设备唯一ID。示例:106ed9425b12664364a06c51aXXXX。

      ip

      IP地址。示例:182.XX.XX.146。

      ts

      时间戳。示例:1647137327。

      user_id

      平台用户ID。示例:447268XXXX。

      用户行为信息表2 game_info如下,记录用户登录游戏账号的具体信息。

      列名

      说明

      device_id

      设备ID。示例:0b887f9e1e915XXXX。

      user_id

      游戏账号ID。示例:02bd2a91190c1a606866302942XXXX。

      ipv4

      IPV4地址。示例:182.XX.XX.146。

      ipv6

      IPV6地址。示例:240e:337:1026:XXXX:XXXX:a26d:4a34:920d。

      imei

      国际移动设备识别码。示例:45ca53a497897c0b39f4373b0c14XXXX。

      idfa

      iOS平台内的广告跟踪ID。示例:8301c9fcgg6a16fd3XXXX0e30e1854a78a。

      googleid

      谷歌广告ID。示例:f09adce39gr564c7f178bd9ebf64b9XXXX。

      android_id

      安卓系统ID。示例:a9d26756755rtr7b8faf6b2e0b6d414XXXX。

      说明

      刷机会改变该ID值。

      oaid

      设备唯一ID。示例:4aad25ea19rtr769fe84cc46244b2aeXXXX。

      timestamp

      时间戳。示例:1647137327。

  2. 构建ID关联关系。

    将步骤1中的三张表中的账户信息(user_info.plat_user_idgame_platform_info.user_idgame_info.user_id)和设备类信息(device_idandroid_idipimeiidfagoogleidoaid)相互关联,形成一个统一的ID。

    说明

    以下命令中,所在表名不同而含义相同的列需要保持列名一致,如user_infoplat_user_idgame_platform_infouser_id列为相同含义列,可以在CREATE FEATURE语句中通过SELECT plat_user_id as user_id...的方式使其保持一致。不同含义的列需要保持名字不一致,如game_platform_infouser_id列与game_infouser_id列虽然列名相同但含义不同,可以通过SELECT ... user_id as game_user_id...的方式使其不一致。

    1. 执行如下命令,创建特征oneID。

      /*polar4ai*/CREATE FEATURE oneID WITH ( feature_class = 'graph',parameters=()) AS (SELECT plat_user_id as user_id, device_id FROM user_info)
    2. 执行如下命令,查看特征算子状态。

      /*polar4ai*/SHOW FEATURE oneID;
      说明
      • 当算子状态为FINISHED时,表示ID关联关系构建完成。

      • 当算子状态为其他状态时,FeaturePath的内容为Please wait for the feature calculation to finish

    3. 当特征算子的状态为FINISHED时,执行如下命令,更新特征。

      /*polar4ai*/UPDATE FEATURE oneID WITH (parameters=()) AS (SELECT device_id, android_id,oaid,ip,user_id FROM game_platform_info)
    4. 执行如下命令,查看特征算子状态。

      /*polar4ai*/SHOW FEATURE oneID;
    5. 当特征算子的状态为FINISHED时,执行如下命令,更新特征。

      /*polar4ai*/UPDATE FEATURE oneID WITH (parameters=()) AS (SELECT device_id,user_id as game_user_id,ipv4 as ip,ipv6,imei,idfa,googleid,android_id,oaid FROM game_info)
  3. 生成映射表。

    执行以下命令,生成映射表。

    /*polar4ai*/CREATE FEATURE csg_1 WITH ( feature_class = 'connected_subgraph',parameters=()) USING FEATURE oneID

    你可以执行以下命令查看算子构建状态。

    /*polar4ai*/SHOW FEATURE csg_1;

    当算子状态为FINISHED时,FeaturePath内容为OSS的下载地址,将其复制在网页中便可查看ID-Mapping的结果信息。

  4. 查看最终结果。

    如下表所示,csg_id表示column所属连通子图的ID,column表示用户信息表中的列名,value表示column的值。

    csg_id

    column

    value

    0

    user_id

    user1

    0

    device_id

    device1

    0

    oaid

    oaid1

    1

    user_id

    user2

    1

    device_id

    device2

ID-Mapping的本质是将稀疏的信息通过实体之间的关系汇集起来,是ID类数据加工的最重要的基础工作之一,ID-Mapping在企业中通常是用户画像构建的最底层、也是最重要的环节。通常是在基础数据入库后再执行ID-Mapping构建操作,构建完成后形成新的基础数据。

ID-Mapping其他应用场景

增强用户行为

ID-Mapping技术可以对数据进行加工,加工后的数据为上层业务(个性化搜索、精准推荐)提供更优质的数据支撑,提高上层业务的效果。例如:利用ID-Mapping技术可以将同属于一个自然人的不同应用ID上的用户行为合并,以此来增强数据。在电商业务中,可以将本地购物行为数据和电商网站上的行为数据合并,补全用户购物链路来分析用户喜好。

发现黑灰产团伙

在电商营销领域,常常会遇到“刷单党”等,他们拥有多个设备和多个用户ID,用于赚取电商佣金、抢优惠券、刷好评等电商活动,极大的破坏电商的健康生态,给商户和平台带来极大困扰。使用ID-Mapping技术,可以将不同ID关联起来,通过一些运营经验,可以发现账号异常情况,例如:会获取同一设备下的超多活跃userid、或者同一userid在一段时间内拥有超多的设备ID等。再通过已关联的账号之间一些互动行为来发现更大的团伙。

扩展用户画像

通过对用户的基础数据或者行为分析,可以得到一些用户画像,比如某人属于男性、某人对某品牌或商品类目有偏好等等。由于用户行为存在的马太效应,某些用户可能在某些领域行为缺失,加上用户基础数据本身的不完善,导致用户画像并不能完全覆盖所有用户。通过ID-Mapping技术来挖掘ID之间的关系,从另一个角度来补充用户画像信息,以此来扩展用户画像。例如某ID对某商品类目有偏好,他可能属于一个家庭中的一员,和他相关的ID可能是另一个家庭成员,他也会对该类目有偏好。

营销圈人

广告领域会根据用户的兴趣、设备类型等定点投放广告。例如:某游戏平台上存在多款游戏,同一个人会拥有不同游戏的账号,或使用多个设备来登录游戏等。通过ID-Mapping技术,可以将同一个人的不同游戏账号和不同设备信息进行相互关联,并针对性地对一个人进行跨设备和跨游戏的投放广告,让用户在玩不同游戏,或者在不同设备登录游戏后都能看到该广告,相比于仅利用用户偏好在单一游戏上投放广告的效果更好。