ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ API ΠΠΈΡΠ΅ΠΊΡΠ°.
Π€ΠΎΡΠΌΠ°Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ: SOAP
NOTE: ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ Ρ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ PHP.
ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² - composer.
$ composer require biplane/yandex-direct
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ Reports Π½ΡΠΆΠ΅Π½ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ,
ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ PSR-18.
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ
Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
php-http/discovery
Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΡΡΠ΅Π΄ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠ°ΠΊ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ 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 Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΆΡΡΠ½Π°Π», Π½ΠΎ ΡΡΠΎΠ²Π΅Π½Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΎΡΠ²Π΅ΡΠΎΠΌ, ΡΡΠΏΠ΅Ρ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°.
Response | Log level |
---|---|
OK | DEBUG |
Error | ERROR |
Π‘Π΅ΡΠ²ΠΈΡ | ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ |
---|---|
V4\YandexAPIService |
API Live 4 doc |
V5\AdExtensions |
Doc |
V5\AdGroups |
Doc |
V5\AdImages |
Doc |
V5\Ads |
Doc |
V5\AgencyClients |
Doc |
V5\AudienceTargets |
Doc |
V5\BidModifiers |
Doc |
V5\Bids |
Doc |
V5\Campaigns |
Doc |
V5\Changes |
Doc |
V5\Clients |
Doc |
V5\Dictionaries |
Doc |
V5\DynamicTextAdTargets |
Doc |
V5\Feeds |
Doc |
V5\KeywordBids |
Doc |
V5\Keywords |
Doc |
V5\KeywordsResearch |
Doc |
V5\Leads |
Doc |
V5\NegativeKeywordSharedSets |
Doc |
V5\RetargetingLists |
Doc |
V5\Sitelinks |
Doc |
V5\SmartAdTargets |
Doc |
V5\Strategies |
Doc |
V5\TurboPages |
Doc |
V5\VCards |
Doc |
V5\Reports |
Doc |
This package is licensed using the MIT License.