srkt/ amplitude-php
Amplitude PHP SDK
1.0.0
2020-06-16 18:01 UTC
Requires
- php: >=7.1
- ext-json: *
- guzzlehttp/guzzle: ^6.5
- psr/http-client: ^1.0
Requires (Dev)
- phpunit/phpunit: >=8.0
This package is not auto-updated.
Last update: 2024-09-19 13:13:53 UTC
README
多功能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);