direct
, (*1)
Нестабильная версия, не используйте в продакшене., (*2)
Обертка для работы с API Яндекс.Директа пятой версии., (*3)
Особенности
- Все структуры из документации представлены в виде объектов, в том числе enum
- Несколько провайдеров аутентификации, в том числе файл переменных окружения
- Встроенные хелперы для удобной работы с ответами (поддерживаются ответы справочника и статистики)
- Покрытие тестами основных компонентов
Требования
PHP >= 7.0, (*4)
Зависимости
- myclabs/php-enum (для enum type hint)
- vlucas/phpdotenv (для чтения переменных окружения из файла)
- guzzlehttp/guzzle (для работы с api по http)
Установка
Наиболее быстрый и удобный способ установки - используя Composer:, (*5)
$ composer require perf2k2/direct
Реализованные методы
Даже если метод реализован, есть вероятность отсутствия поддержки последних его возможностней, (*6)
Сервисы |
Методы |
Все |
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 |
✔ |
Пример использования
Получение данных из справочника, (*7)
$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');
Получение данных статистики (отчета), (*8)
$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, (*9)
Copyright (C) 2017 Romannikov Nikita, (*10)
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., (*11)
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., (*12)
You should have received a copy of the GNU General Public License
along with this program. If not, see https://www.gnu.org/licenses/., (*13)