perf2k2/direct

Yandex Direct API 第五版本的 PHP 封装

0.11.1 2019-09-15 15:20 UTC

README

Build Status

不稳定版本,请勿在生产环境中使用。

Yandex Direct API 第五版本的封装。

特点

  • 文档中的所有结构都表示为对象,包括 enum
  • 支持多种身份验证提供者,包括环境变量文件
  • 内置助手,方便处理响应(支持目录和统计响应)
  • 测试主要组件的覆盖率

要求

PHP >= 7.0

依赖

  • myclabs/php-enum (用于 enum 类型提示)
  • vlucas/phpdotenv (用于读取环境变量文件中的变量)
  • guzzlehttp/guzzle (用于通过 http 操作 api)

安装

最快速、最方便的安装方法是使用 Composer

$ composer require perf2k2/direct

实现的方法

即使方法已实现,也可能不存在对最新功能的支持

使用示例

获取目录数据

$reference = new ReferenceClient(
    new Connection(new Credential('token', 'client')),
    new JsonReader()
);

$criteria = (new AdsSelectionCriteria())
    ->setCampaignIds([1000])
    ->setTypes([AdTypeEnum::TEXT_AD()]);

$method = $reference
    ->getAdsService()
    ->getGetMethod()
    ->setSelectionCriteria($criteria)
    ->setFieldNames([AdFieldEnum::Id, AdFieldEnum::State])
    ->setTextAdFieldNames([
        TextAdFieldEnum::VCardId,
        TextAdFieldEnum::Href,
        TextAdFieldEnum::SitelinkSetId,
    ]);

$data = $reference->process($method)->getResult('Ads');

获取统计数据(报告)

$stats = new ReportClient(
    new Connection(new Credential('token', 'client')),
    new TSVReader()
);

$method = $stats
    ->getReportsService()
    ->getBuildMethod()
    ->setSelectionCriteria(
        (new SelectionCriteria())
            ->setDateFrom(new \DateTimeImmutable('yesterday'))
            ->setDateTo(new \DateTimeImmutable('today'))
    )
    ->setFieldNames([FieldEnum::CampaignId(), FieldEnum::CampaignName(), FieldEnum::CampaignType()])
    ->setPage(new Page(10))
    ->setOrderBy([new OrderBy(FieldEnum::CampaignId(), OrderBySortOrderEnum::DESCENDING())])
    ->setReportName('Campaigns stats')
    ->setReportType(ReportTypeEnum::CAMPAIGN_PERFORMANCE_REPORT())
    ->setDateRangeType(DateRangeTypeEnum::CUSTOM_DATE())
    ->setFormat(FormatEnum::TSV())
    ->setIncludeVAT(YesNoEnum::NO())
    ->setIncludeDiscount(YesNoEnum::NO());

$data = $stats->process($method)->asArray();

许可证

GNU GPL v3

版权 (C) 2017 Romannikov Nikita

本程序是自由软件:您可以自由分发和/或修改它,前提是遵守 Free Software Foundation 发布的 GNU 通用公共许可证的条款,无论是许可证的第 3 版,还是(根据您的选择)任何较新版本。

本程序的分发是希望它是有用的,但没有任何保证;甚至不保证其可销售性或适用于特定用途。有关详细信息,请参阅 GNU 通用公共许可证。

您应该已收到随本程序一起提供的 GNU 通用公共许可证副本。如果没有,请参阅 https://gnu.ac.cn/licenses/