Google adwords reports

200
29 марта 2018, 09:59

В документации есть такой пример:

 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

READ ALSO
Unix Timestamp + 5 минут

Unix Timestamp + 5 минут

Здравствуйте!

222
Вопрос по функции function replace_text

Вопрос по функции function replace_text

Есть сайт, есть прямые ссылки на фотки в блоке контента, нужно этой функцией заменить их на вид САМИХ картинок

214
Pspell не работает

Pspell не работает

Доброго времени уважаемые коллеги! Помогите пожалуйста с pspellЯ выполнил следующее в консоли:

181