Search by

perf2k2 / direct

perf2k2

PHP wrapper for Yandex Direct API version 5

Package info

github.com/perf2k2/direct

pkg:composer/perf2k2/direct

Statistics

Installs: 106

Dependents: 0

Suggesters: 0

Stars: 3

Open Issues: 2

0.11.1 2019-09-15 15:20 UTC

This package is auto-updated.

Last update: 2026-09-20 03:02:30 UTC


README

Build Status

Нестабильная версия, не используйте в продакшене.

Обертка для работы с API Яндекс.Директа пятой версии.

Особенности

  • Все структуры из документации представлены в виде объектов, в том числе enum
  • Несколько провайдеров аутентификации, в том числе файл переменных окружения
  • Встроенные хелперы для удобной работы с ответами (поддерживаются ответы справочника и статистики)
  • Покрытие тестами основных компонентов

Требования

PHP >= 7.0

Зависимости

  • myclabs/php-enum (для enum type hint)
  • vlucas/phpdotenv (для чтения переменных окружения из файла)
  • guzzlehttp/guzzle (для работы с api по http)

Установка

Наиболее быстрый и удобный способ установки - используя Composer:

$ composer require perf2k2/direct

Реализованные методы

Даже если метод реализован, есть вероятность отсутствия поддержки последних его возможностней

Сервисы Методы Все
Campaigns add, archive, delete, get, resume, suspend, unarchive, update ✔
AdGroups add, delete, get, update ✔
Ads add, archive, delete, get, moderate, resume, suspend, unarchive, update ✔
Creatives get ✔
Keywords add, delete, get, resume, suspend, update ✔
Bids get, set, setAuto ✔
KeywordBids get, set, setAuto ✔
BidModifiers add, delete, get, set, toggle ✔
AudienceTargets add, delete, get, resume, setBids, suspend ✔
RetargetingLists add, delete, get, update ✔
VCards add, get, delete ✔
Sitelinks add, get, delete ✔
AdImages add, get, delete ✔
AdExtensions add, get, delete ✔
DynamicTextAdTargets add, get, delete, resume, suspend, setBids ✔
Changes check, checkCampaigns, checkDictionaries ✔
TurboPages get ✔
Leads get ✔
NegativeKeywordSharedSets
Dictionaries get ✔
Clients get, update ✔
AgencyClients get, update, add ✔
KeywordsResearch hasSearchVolume ✔

Пример использования

Получение данных из справочника

$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

Copyright (C) 2017 Romannikov Nikita

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.