2017-06-11 1 views
0

Ich habe versucht, dem Selektor meines AdWords-Berichts einen benutzerdefinierten Datumsbereich hinzuzufügen und kann keine Daten abrufen. Ich bekomme den undefinierten Funktionsaufruf 'DateRange' zurück.

Hat jemand das herausfinden können?

class ParallelReportDownload { 

// Timeout between retries in seconds. 
const BACKOFF_FACTOR = 5; 

// Maximum number of retries for 500 errors. 
const MAX_RETRIES = 5; 

// The number of entries per page of the results. 
const PAGE_LIMIT = 500; 

public static function runExample(AdWordsServices $adWordsServices, 
    AdWordsSessionBuilder $sessionBuilder, $reportDir) { 
// Construct an API session for the client customer ID specified in the 
// configuration file. 
$session = $sessionBuilder->build(); 

// Create selector. 
$selector = new Selector(); 
$selector->setFields(['Month', 'Impressions', 'Clicks', 'Ctr', 'AverageCpc', 'AveragePosition', 'Cost', 'Conversions', 'CostPerConversion', 'ConversionRate', 'SearchImpressionShare']); 

//THIS CODE WAS FOUND ON GOOGLE API FORUM 
$selector->dateRange = new DateRange(); 
$selector->dateRange->min = date('Ymd', strtotime('2017/06/01')); 
$selector->dateRange->max = date('Ymd', strtotime('2017/06/09')); 

// Use a predicate to filter out paused criteria (this is optional). 
//$selector->setPredicates([ 
    //new Predicate('Impressions', PredicateOperator::GREATER_THAN, [1000]), 
    //new Predicate('CampaignName', PredicateOperator::CONTAINS, ['Branded']) 
    //]); 

// Create report definition. 
$reportDefinition = new ReportDefinition(); 
$reportDefinition->setSelector($selector); 
$reportDefinition->setReportName('LAST_MONTH ACCOUNT_PERFORMANCE_REPORT'); 
$reportDefinition->setDateRangeType(
    ReportDefinitionDateRangeType::CUSTOM_DATE); 
$reportDefinition->setReportType(
    ReportDefinitionReportType::ACCOUNT_PERFORMANCE_REPORT); 
$reportDefinition->setDownloadFormat(DownloadFormat::CSV); 

$customerIds = self::getAllManagedCustomerIds($adWordsServices, $session); 
printf("Downloading reports for %d managed customers.\n", 
    count($customerIds)); 

$successfulReports = []; 
$failedReports = []; 

foreach ($customerIds as $customerId) { 

    $filePath = "../../../../../../clients/client_reports/accounts/" . $customerId . "_LAST_MONTH___account.csv"; 

Ich erhalte Fehlermeldung: Fatal error: Class 'Google \ AdsAPI \ Examples \ AdWords \ v201705 \ Reporting \ Daterange' nicht in/gefunden home/mtrant/public_html/Kunden/backend/api/adwords/Produktion/Paidsearch/Berichte/selector/all_MOM_ACCOUNT_PERFORMANCE_REPORT.php on line 69

Jede Hilfe würde sehr geschätzt werden.

Antwort

2

Zunächst einmal ist diese in der Spitze Ihres Code:

use Google\AdsApi\AdWords\v201705\cm\DateRange; 

Dann wie unter Datumsbereich zu Ihrem Selektor hinzuzufügen:

$selector->setDateRange(new DateRange($FromDate, $ToDate)); 

Ihr Problem lösen soll. Gelöst es für mich. Aktualisieren Sie mich, wenn Sie Fehler erhalten, nachdem Sie diese Änderungen vorgenommen haben.

+0

das funktionierte perfekt. Vielen Dank. –

+0

Können Sie eine 'orderby' im Selektor (d. H. Reihenfolge nach Monat) hinzufügen? Ich habe immer AWQL benutzt und es fällt mir schwer, mich an den Selektor anzupassen. –

+0

Bitte markieren Sie diese Antwort als nützlich @MatthewTrant. Froh, Ihnen zu helfen –

Verwandte Themen