В документации есть такой пример:
public static function runExample(AdWordsSession $session, $filePath)
{
// Create selector.
$selector = new Selector();
$selector->setFields(
[
'CampaignId',
'AdGroupId',
'Id',
'Criteria',
'CriteriaType',
'Impressions',
'Clicks',
'Cost'
]
);
// Use a predicate to filter out paused criteria (this is optional).
$selector->setPredicates(
[
new Predicate('Status', PredicateOperator::NOT_IN, ['PAUSED'])
]
);
// Create report definition.
$reportDefinition = new ReportDefinition();
$reportDefinition->setSelector($selector);
$reportDefinition->setReportName(
'Criteria performance report #' . uniqid()
);
$reportDefinition->setDateRangeType(
ReportDefinitionDateRangeType::LAST_7_DAYS
);
$reportDefinition->setReportType(
ReportDefinitionReportType::CRITERIA_PERFORMANCE_REPORT
);
$reportDefinition->setDownloadFormat(DownloadFormat::CSV);
// Download report.
$reportDownloader = new ReportDownloader($session);
// Optional: If you need to adjust report settings just for this one
// request, you can create and supply the settings override here. Otherwise,
// default values from the configuration file (adsapi_php.ini) are used.
$reportSettingsOverride = (new ReportSettingsBuilder())->includeZeroImpressions(false)->build();
$reportDownloadResult = $reportDownloader->downloadReport(
$reportDefinition,
$reportSettingsOverride
);
$reportDownloadResult->saveToFile($filePath);
printf(
"Report with name '%s' was downloaded to '%s'.\n",
$reportDefinition->getReportName(),
$filePath
);
}
public static function main()
{
// Generate a refreshable OAuth2 credential for authentication.
$oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build();
// See: AdWordsSessionBuilder for setting a client customer ID that is
// different from that specified in your adsapi_php.ini file.
// Construct an API session configured from a properties file and the
// OAuth2 credentials above.
$session = (new AdWordsSessionBuilder())->fromFile()->withOAuth2Credential($oAuth2Credential)->build();
$filePath = sprintf(
'%s.csv',
tempnam(sys_get_temp_dir(), 'criteria-report-')
);
self::runExample($session, $filePath);
}
но вот в строчке $reportDownloader = new ReportDownloader($session);
явно ошибка. В конструкторе я вижу совсем другие агрументы:
public function __construct(
ReportService $reportService,
$reportJobId,
$pollTimeSeconds = null,
Client $httpClient = null,
GuzzleHttpClientFactory $httpClientFactory = null
)
И если первым аргументом я пробовал передавать новый экземпляр ReportService то откуда брать $reportJobId непонятно
пробую делать так:
public function getReports()
{
$reportQuery = new ReportQuery();
$reportQuery->setColumns(['CampaignId', 'Clicks', 'Cost']);
$reportJob = new ReportJob();
$reportJob->setReportQuery($reportQuery);
$reportService = new ReportService();
$session = (new DfpSessionBuilder())
->withOAuth2Credential($this->oAuth2Credential)
->withNetworkCode('a')
->withApplicationName('bylineme')
->withOAuth2Credential($this->oAuth2Credential)
->build();
$reportService->setAdsSession($session);
$reportService->setHeaderHandler(new DfpHeaderHandler());
$reportService->setStreamContext();
$result = $reportService->runReportJob($reportJob);
$reportDownloader = new ReportDownloader($reportService, $reportJob->getId());
$reportDownloadResult = $reportDownloader->downloadReport('xml');
return $reportDownloadResult->getContents();
}
Непонятно что указывать здесь $reportService->setStreamContext();
без неё выдаёт ошибку
Warning: stream_context_get_options() expects parameter 1 to be resource, string given
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть сайт, есть прямые ссылки на фотки в блоке контента, нужно этой функцией заменить их на вид САМИХ картинок
Доброго времени уважаемые коллеги! Помогите пожалуйста с pspellЯ выполнил следующее в консоли: