双翼飞机 / yandex-direct
用于 Yandex.Direct API 的 PHP 库
5.13.1
2024-05-22 12:36 UTC
Requires
- php-64bit: ^7.2 || ^8.0
- ext-libxml: *
- ext-soap: *
- php-http/discovery: ^1.14
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- symfony/event-dispatcher: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/options-resolver: ^4.0 || ^5.0 || ^6.0 || ^7.0
- symfony/serializer: ^4.4 || ^5.0 || ^6.0 || ^7.0
Requires (Dev)
- allejo/php-vcr-sanitizer: ^1.0.9
- doctrine/coding-standard: ^9.0
- nyholm/psr7: ^1.4
- php-http/httplug: ^2.2
- php-vcr/php-vcr: ^1.5.2
- phpunit/phpunit: ^7.5 || ^9.5
- psalm/plugin-phpunit: ^0.17.0
- psr/log: ^1.1
- symfony/http-client: ^4.4 || ^5.0
- vimeo/psalm: 4.30.0
- dev-master / 5.x-dev
- 5.13.1
- 5.13.0
- 5.12.0
- 5.11.0
- 5.10.0
- 5.9.0
- 5.8.1
- 5.8.0
- 5.7.1
- 5.7.0
- 5.6.0
- 5.5.0
- 5.4.1
- 5.4.0
- 5.3.0
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 5.0.0-beta4
- 5.0.0-beta3
- 5.0.0-beta2
- 5.0.0-beta1
- 4.x-dev
- 4.22.0
- 4.21.0
- 4.20.0
- 4.19.0
- 4.18.0
- 4.17.0
- 4.16.0
- 4.15.0
- 4.14.1
- 4.14.0
- 4.13.0
- 4.12.0
- 4.11.0
- 4.10.0
- 4.9.1
- 4.9.0
- 4.8.0
- 4.7.1
- 4.7.0
- 4.6.1
- 4.6.0
- 4.5.0
- 4.4.1
- 4.4.0
- 4.3.0
- 4.2.0
- 4.1.1
- 4.1.0
- 4.1.0-beta2
- 4.1.0-beta1
- 4.0.1
- 4.0
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.0
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 2.x-dev
- 2.0.0
- 1.0.0
This package is auto-updated.
Last update: 2024-09-22 13:22:06 UTC
README
用于操作 API Директа 的库。
交互格式: SOAP
注意:此库仅与 64 位 PHP 版本兼容。
安装
最简单的安装方法是使用包管理器 - composer。
$ composer require biplane/yandex-direct
关于 Reports 服务的附加信息
为了使用 Reports 服务,需要一个与 PSR-18 兼容的 HTTP 客户端。依赖项中没有指定具体的实现。相反,使用 php-http/discovery
来在已安装的包中搜索合适的实现,这是默认的策略。
使用示例
获取广告数据
此示例反映与 Ads 服务(Ads)的交互,以获取广告列表。
<?php use Biplane\YandexDirect\ApiServiceFactory; use Biplane\YandexDirect\Api\V5\Ads; use Biplane\YandexDirect\Api\V5\Contract; use Biplane\YandexDirect\ConfigBuilder; $serviceFactory = new ApiServiceFactory(); $config = ConfigBuilder::create() ->setAccessToken('<INSERT_ACCESS_TOKEN>') ->setClientLogin('agrom') ->setLocale('ru') ->getConfig(); $service = $serviceFactory->createService($config, Ads::class); $campaignsIds = [123]; $criteria = Contract\AdsSelectionCriteria::create() ->setCampaignIds($campaignsIds) ->setStates([ Contract\StateEnum::ON, ]); $request = Contract\GetAdsRequest::create() ->setSelectionCriteria($criteria) ->setFieldNames([ Contract\AdFieldEnum::AD_CATEGORIES, Contract\AdFieldEnum::AGE_LABEL, Contract\AdFieldEnum::AD_GROUP_ID, Contract\AdFieldEnum::ID, Contract\AdFieldEnum::STATUS, ]); $response = $service->get($request); foreach ($response->getAds() ?? [] as $item) { // Здесь $item будет являться экземпляром `Biplane\YandexDirect\Api\V5\Contract\AdGetItem` // Например, получение информации о возрастной метке: // $item->getAgeLabel(); }
获取报告
在此示例中,发起一个报告请求,等待报告准备完成,然后将其下载并保存到文件中。
use Biplane\YandexDirect\Api\V5\Reports; use Biplane\YandexDirect\ConfigBuilder; use Biplane\YandexDirect\ReportServiceFactory; $serviceFactory = new ReportServiceFactory(); $config = ConfigBuilder::create() ->setAccessToken('<INSERT_ACCESS_TOKEN>') ->setClientLogin('agrom') ->setLocale('ru') ->getConfig(); $service = $serviceFactory->createService($config); $reportDefinition = Reports\ReportDefinition::create() ->setReportName('demo') ->setReportType(Reports\ReportTypeEnum::CAMPAIGN_PERFORMANCE_REPORT) ->setDateRangeType(Reports\DateRangeTypeEnum::LAST_7_DAYS) ->setFieldNames([ Reports\FieldEnum::CAMPAIGN_ID, Reports\FieldEnum::CAMPAIGN_NAME, Reports\FieldEnum::IMPRESSIONS, Reports\FieldEnum::CLICKS, Reports\FieldEnum::COST, ]) ->setIncludeVAT(false); $request = Reports\ReportRequestBuilder::create() ->setReportDefinition($reportDefinition) ->returnMoneyInMicros(false) ->skipReportHeader(true) ->getReportRequest(); $result = $service->getReady($request); $result->saveToFile('/path/to/file.tsv');
日志记录
为了记录 API 请求,可以实现 Biplane\YandexDirect\Log\SoapLogger
接口。或者使用 psr/log
的适配器
use Biplane\YandexDirect\ApiServiceFactoryBuilder; use Biplane\YandexDirect\Log\SoapLogger\PsrLogger; $serviceFactory = ApiServiceFactoryBuilder::create() ->setLogger(new PsrLogger($psrLogger)) ->getFactory(); // ...
在此配置中,所有 API 请求都将记录到日志中,但日志级别将由响应(成功或错误)确定。
支持的 API 服务
许可证
本软件包使用 MIT 许可证授权。