Skip to content

Releases: biplane/yandex-direct

5.0.1

10 Dec 07:19
84a9e97
Compare
Choose a tag to compare

Исправлена ситуация, когда при записи в лог выбрасывалось исключение TypeError.

Changelog

5.0.0

05 Dec 11:32
7913c91
Compare
Choose a tag to compare

Переход с 4.x на 5.0

Biplane\YandexDirect\User

Класс Biplane\YandexDirect\User отмечен как устаревший, и будет удален в 6.0. Вместо этого рекомендуется использовать Biplane\YandexDirect\Config и фабрики для сервисов, ApiServiceFactory и ReportServiceFactory.

4.x:

use Biplane\YandexDirect\User;
use Biplane\YandexDirect\UserBuilder;
use Symfony\Component\EventDispatcher\EventDispatcher;

$session = (new UserBuilder(new EventDispatcher()))
    ->setAccessToken('INSERT_ACCESS_TOKEN')
    ->setLocale(User::LOCALE_RU)
    ->setLogin('agro')
    ->getUser();

$service = $session->getCampaignsService();
// $service is instance of Biplane\YandexDirect\Api\V5\Campaigns

5.0

use Biplane\YandexDirect\Api\V5\Campaigns;
use Biplane\YandexDirect\ApiServiceFactory;
use Biplane\YandexDirect\ConfigBuilder;

$config = ConfigBuilder::create()
    ->setAccessToken('INSERT_ACCESS_TOKEN')
    ->setLocale('ru')
    ->setClientLogin('agro')
    ->getConfig();
$serviceFactory = new ApiServiceFactory();

$service = $serviceFactory->createService($config, Campaigns::class);
// $service is instance of Biplane\YandexDirect\Api\V5\Campaigns

[BC break] Изменения в типах исключений

Biplane\YandexDirect\Exception\ApiException

  • Удалены константы кодов ошибок API.
  • Удалены методы getMethodName() и getMethodRef()

Biplane\YandexDirect\Exception\NetworkException

Данный класс был удален.
При ошибках с сетью для SOAP-сервисов будет выброшено SoapFault, а для сервиса отчетов - Biplane\YandexDirect\Exception\DownloadReportException.

Biplane\YandexDirect\Exception\RequestException

Данный класс был удален. Ранее использовался как общий тип для ApiException и NetworkException.

[BC break] Сервис Reports

Теперь сервис совместим с PSR-18 (HTTP Client) и PSR-17 (HTTP Factories). Для поиска подходящей реализации используется php-http/discovery, но можно явно указать зависимости при инициализации фабрики ReportServiceFactory.

Biplane\YandexDirect\Api\V5\Report\ReportDefinitionBuilder

Данный класс удален. Вместо этого следует использовать Biplane\YandexDirect\Api\V5\Reports\ReportDefinition, который по структуре соответствует спецификации.

Biplane\YandexDirect\Api\V5\Report\ReportRequest

Данный класс был удален. Его аналогом можно считать Biplane\YandexDirect\Api\V5\Reports\ReportRequest. Только последний является неизменяемым, а для инициализации нужно использовать Biplane\YandexDirect\Api\V5\Reports\ReportRequestBuilder.

Biplane\YandexDirect\Api\V5\Report\ReportResult

  • Изменено пространство имен, Biplane\YandexDirect\Api\V5\Reports
  • Метод getData переименован в getAsString
  • Метод save переименован в saveToFile. И данный метод в качестве аргумента теперь принимает только строку. Если нужно работать с потоком, то для этого есть новый метод - getStream.

4.x

use Biplane\YandexDirect\User;
use Biplane\YandexDirect\Api\V5\Report;

$session = new User([
    'access_token' => 'INSERT_ACCESS_TOKEN',
    'login' => 'agro',
]);
$service = $session->getReportsService();

$reportDefinition = (new Report\ReportDefinitionBuilder())
    ->setReportName('demo')
    ->setReportType(Report\ReportTypeEnum::CAMPAIGN_PERFORMANCE_REPORT)
    ->setDateRangeType(Report\DateRangeTypeEnum::AUTO)
    ->setFieldNames([
        Report\FieldEnum::DATE,
        Report\FieldEnum::CAMPAIGN_ID,
        Report\FieldEnum::COST,
    ])
    ->addFilter(Report\FieldEnum::CAMPAIGN_ID, Report\FilterOperatorEnum::IN, [12301, 12302])
$request = (new Report\ReportRequest())
    ->setDefinition($reportDefinition)
    ->returnMoneyAsFloat()
    ->skipReportHeader()
    ->skipReportSummary();

$service->download('path/to/file.tsv', $request);

5.0

use Biplane\YandexDirect\Api\V5\Reports;
use Biplane\YandexDirect\ConfigBuilder;
use Biplane\YandexDirect\ReportServiceFactory;

$config = ConfigBuilder::create()
    ->setAccessToken('INSERT_ACCESS_TOKEN')
    ->setClientLogin('agro')
    ->getConfig();
$serviceFactory = new ReportServiceFactory();
$service = $serviceFactory->createService($config);

$selectionCriteria = Reports\SelectionCriteria::create()
    ->addFilter(Reports\FilterItem::create(Reports\FieldEnum::CAMPAIGN_ID, Reports\FilterOperatorEnum::IN, ['12301', '12302']));
$reportDefinition = Reports\ReportDefinition::create($selectionCriteria)
    ->setReportName('demo')
    ->setReportType(Reports\ReportTypeEnum::CAMPAIGN_PERFORMANCE_REPORT)
    ->setDateRangeType(Reports\DateRangeTypeEnum::AUTO)
    ->setFieldNames([
        Reports\FieldEnum::DATE,
        Reports\FieldEnum::CAMPAIGN_ID,
        Reports\FieldEnum::COST,
    ])
$request = Reports\ReportRequestBuilder::create()
    ->setReportDefinition($reportDefinition)
    ->returnMoneyInMicros(false)
    ->skipReportHeader(true)
    ->skipReportSummary(true)
    ->getReportRequest();

$result = $service->getReady($request);
$result->saveToFile('/path/to/file.tsv');

5.0.0-beta3

12 Sep 19:30
c0c6f5b
Compare
Choose a tag to compare
5.0.0-beta3 Pre-release
Pre-release

4.20.0

01 Sep 11:18
6a7c535
Compare
Choose a tag to compare

5.0.0-beta1

04 Apr 16:51
d044dd8
Compare
Choose a tag to compare
5.0.0-beta1 Pre-release
Pre-release
Sync with the latest versions of WDSL

4.19.0

11 Oct 12:06
e811414
Compare
Choose a tag to compare

Добавлена поддержка Symfony 5.x

4.16.0

18 Mar 17:11
2c22bbc
Compare
Choose a tag to compare
  • Добавлена поддержка сервиса Feeds.
  • Добавлена поддержка сервиса SmartAdTargets.

Подробнее в changelog

4.15.0

11 Feb 14:57
cf0433c
Compare
Choose a tag to compare

Added

  • Добавлена поддержка сервиса AudienceTargets (PR #23)

Changed

  • Обновлены контракты данных для совместимости с последней версией API, включая изменения от 2020-02-06.

Fix regression

28 Nov 10:41
Compare
Choose a tag to compare

Отменены изменения в части генерации кода для массива-подобных типов, сделанные в f954f72. Так как, эти изменения несовместимы с нативным SoapClient, в случае десериализации XML.

- public function setTrackingPixels(array $value = null)
+ public function setTrackingPixels(TrackingPixelGetArray $value = null)
  • Biplane\YandexDirect\Api\V5\Contract\CpmBannerAdBuilderAdGet
  • Biplane\YandexDirect\Api\V5\Contract\CpmVideoAdBuilderAdGet
- public function setPriorityGoals(array $value = null)
+ public function setPriorityGoals(PriorityGoalsArray $value = null)
  • Biplane\YandexDirect\Api\V5\Contract\DynamicTextCampaignAddItem
  • Biplane\YandexDirect\Api\V5\Contract\DynamicTextCampaignGetItem
  • Biplane\YandexDirect\Api\V5\Contract\RetargetingListGetItem
  • Biplane\YandexDirect\Api\V5\Contract\TextCampaignAddItem
  • Biplane\YandexDirect\Api\V5\Contract\TextCampaignGetItem

4.14.0

21 Nov 15:40
Compare
Choose a tag to compare

Changes

  • Теперь опция stream_context поддерживается всеми сервисами, где используется SoapClient (issue #20)