myhayo/diversion

There is no license information available for the latest version (v0.0.1) of this package.

项目间相互倒流

Maintainers

Package info

github.com/myhayo/diversion

Type:project

pkg:composer/myhayo/diversion

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.0.1 2026-02-27 08:23 UTC

This package is auto-updated.

Last update: 2026-02-27 08:36:04 UTC


README

  • 项目之间相互导流
  • 安卓使用 google id 和 google 广告id 归因
  • iOS 使用 ip加时间窗口归因

要求

依赖 说明
PHP >=8.0
Laravel >=10

安装

1.通过Composer安。

composer require "myhayo/diversion"

2.发布文件

php artisan vendor:publish --provider="Myhayo\Diversion\DiversionServiceProvider"

3.执行 migrate

php artisan migrate

使用

修改配置文件

    // 当前项目唯一标识
    'source_app_id'         => env('DIVERSION_SOURCE_APP_ID', 'walking_cash'),

    // iOS IP 归因的有效时间窗口(分钟)
    'ios_time_window_hours' => 30,

    // 接口路由前缀
    'route_prefix'          => 'diversion',

    // 引流项目列表
    'partners'              => [
        // 引流项目唯一标识
        'ai_cleaner_pro' => [
            'secret'         => 'secret_diversion_ai_cleaner_pro', // 秘钥
            'report_url'     => 'http://192.168.0.22:9034/diversion/click', // 上报引流记录链接
            'callback_url'   => 'http://192.168.0.22:9034/diversion/callback', // 完成引流回调链接
            // 引流回调事件处理 
            'callback_event' => [
                'active' => '\App\Repositories\TaskRepository@completedNewbieTaskDiversionAiCleanerPro', // 激活事件处理函数
                'register' => null, // 注册事件处理函数
            ], // 回调事件处理 目前只支持激活和注册
        ],

        'walking_cash' => [
            'secret'         => 'secret_for_b', // 秘钥
            'report_url'     => 'http://192.168.0.22:9034/diversion/click', // 上报引流记录链接
            'callback_url'   => 'http://192.168.0.22:9034/diversion/callback', // 完成引流回调链接
            'callback_event' => [
                'active' => '\App\Repositories\TaskRepository@completedNewbieTaskDiversionAiCleanerPro', // 激活事件处理函数
                'register' => null, // 注册事件处理函数
            ], // 回调事件处理 目前只支持激活和注册
        ],
    ],

操作函数说明

上报引流 DiversionClient::report()

DiversionClient::report(
    $partner_app_id, // 引流项目 唯一标识 为 配置文件里的 [ai_cleaner_pro]
    (string)Str::uuid(), // 上报记录唯一标识id 
    $user->id, // 上报用户ID
    [
        'sys'       => $device_info->sys, // 系统 1-安卓 2-iOS
        'ip'        => $device_info->ip, // ip
        'aid'       => $device_info->aid ?? '', // 安卓ID
        'gid'       => $device_info->gid ?? '', // google id 
        'timestamp' => time(), // 时间戳
    ],
);

归因

// 激活
$record = \Myhayo\Diversion\Services\DiversionAttribution::active(
    $sys, // 系统 1-安卓 2-iOS
    $aid, // 安卓ID
    $gid, // google id 
    $ip // ip
);

// 注册
$record = \Myhayo\Diversion\Services\DiversionAttribution::registered(
    $sys, // 系统 1-安卓 2-iOS
    $aid, // 安卓ID
    $gid, // google id 
    $ip // ip
);

$record = 
{#2983
  +"id": 10
  +"diversion_id": "505e15a9-d828-458e-a9ab-fc77ec0c4f82"
  +"source_app_id": "walking_cash"
  +"source_user_id": "271684"
  +"sys": 1
  +"aid": "test111"
  +"gid": null
  +"ip_address": "192.168.65.1"
  +"actived_at": "2026-02-27 14:57:31"
  +"registered_at": null
  +"created_at": "2026-02-27 14:57:02"
  +"updated_at": "2026-02-27 14:57:02"
}

// 归因成功返回记录,无记录返回 null;项目自行处理渠道和后续步骤