srkt/amplitude-php

Amplitude PHP SDK

1.0.0 2020-06-16 18:01 UTC

This package is not auto-updated.

Last update: 2024-09-19 13:13:53 UTC


README

PHP Composer

多功能Amplitude REST API PHP SDK,支持PSR-7和PSR-18(HTTP请求、响应和客户端接口)。

  • 简单的接口,用于将您的事件身份追踪到Amplitude服务。
  • 可以发送单个事件(身份)和多个事件。
  • 使用PSR-7接口进行请求和响应,PSR-18进行HTTP客户端。这允许您利用其他PSR-18兼容的库SDK。默认使用Guzzle HTTP客户端。
  • 支持Amplitude功能:平台数据、收入数据等。

安装Amplitude PHP SDK

推荐通过Composer安装SDK。

composer require srkt/amplitude-php

示例

有两种类型的库使用方式:简单的“单方法调用”和功能完整的OOP风格。

事件追踪

创建客户端

// Create new Amplitude client
$client = new \Srkt\Amplitude\Client('your-api-key-goes-here');

简单

// Simple event tracking:
$client->log(
    'user123',
    'testEventType',
    ['eventProperty' => 'value'],
    ['userProperty' => 'value'],
    'deviceId'
); // PSR-7 Response

完整的事件对象

// Full data event tracking
$event = new \Srkt\Amplitude\Model\Event('user1', 'registration');

// This is not full list of data setters, please check all Event class setters
$event
    ->setAppVersion('1.0.0')
    ->setCountry('USA') 
    ->setCity('New York')
    ->setRevenueData(new \Srkt\Amplitude\Model\RevenueData(10.00, 5.00, 2, 'product1', 'sell'))
    ->setLanguage('en')
    ->setDeviceId('device-id-1')
    ->setPlatformData(
        new \Srkt\Amplitude\Model\PlatformData('Moblie', 'Android', '11.0')
    )
    ->setEventProperties(['property' => 'value'])
    ->setUserProperties(new \Srkt\Amplitude\Model\UserProperties(['userProperty' => 'value']));

$client->logEvent($event); // PSR-7 Response

具有设备ID但无userId的事件

// Event without userId tracking
$event = new \Srkt\Amplitude\Model\Event(null, 'registration', [], null, null, 'device-id1');
$client->logEvent($event); // PSR-7 Response

单次请求中的多个事件

$events = [
    new \Srkt\Amplitude\Model\Event('user1', 'registration'),
    new \Srkt\Amplitude\Model\Event('user1', 'addPhoto'),
    new \Srkt\Amplitude\Model\Event('user1', 'addInfo'),
];
$client->logEvents($events); // PSR-7 Response

用户身份追踪

简单

$client = new \Srkt\Amplitude\Client('your-api-key-goes-here');
$identity = new \Srkt\Amplitude\Model\UserIdentity(
    'userId1',
    new \Srkt\Amplitude\Model\UserProperties(['userProperty' => 'value'])
);
$client->identifyUser($identity); // PSR-7 Response

完整身份对象

// Full data identity tracking
$identity = new \Srkt\Amplitude\Model\UserIdentity(
    'userId1',
    new \Srkt\Amplitude\Model\UserProperties(['userProperty' => 'value'])
);

// This is not full list of data setters, please check all Event class setters
$identity
    ->setDeviceId('device-id')
    ->setLanguage('en')
    ->setStartVersion('1.0.0')
    ->setPlatformData()
    ->setPaying('paying')
    ->setPlatformData(
        new \Srkt\Amplitude\Model\PlatformData('Moblie', 'Android', '11.0')
    );

$client->identifyUser($identity); // PSR-7 Response

单次请求中的多个身份

$identities = [
    new \Srkt\Amplitude\Model\UserIdentity('user1', new \Srkt\Amplitude\Model\UserProperties(['property' => 'value'])),
    new \Srkt\Amplitude\Model\UserIdentity('user2', new \Srkt\Amplitude\Model\UserProperties(['property' => 'value'])),
    new \Srkt\Amplitude\Model\UserIdentity('user3', new \Srkt\Amplitude\Model\UserProperties(['property' => 'value'])),
];
$client->identifyUsers($identities); // PSR-7 Response

高级使用

您可以将默认的Guzzle HTTP客户端更改为支持PSR-18接口的任何其他客户端,或者您可以设置Guzzle客户端选项。

$client = new \Srkt\Amplitude\Client('your-api-key-goes-here');
// Client adapter used for Guzzle versions prior to 7.0.0 
$httpClient = new \Srkt\Amplitude\Http\Client\GuzzlePsr18ClientAdapter([
    'timeout'         => 0,
    'allow_redirects' => false,
    'proxy'           => '192.168.16.1:10'
]);
$client->setHttpClient($httpClient);