2017-06-11 3 views
0

J'ai essayé d'ajouter une plage de dates personnalisée au sélecteur de mon rapport AdWords et je ne peux pas obtenir les dates à prendre. Je récupère l'appel de fonction non défini 'DateRange'.

Quelqu'un a-t-il pu comprendre cela?

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"; 

Je reçois un message d'erreur: Erreur fatale: Google \ AdsAPI \ Exemples \ AdWords \ v201705 \ rapports \ DateRange 'Classe introuvable dans/home/mtrant/public_html/clients/backend/api/adwords/production/paidsearch/reports/selector/all_MOM_ACCOUNT_PERFORMANCE_REPORT.php à la ligne 69

Toute aide serait grandement appréciée.

Répondre

2

tout d'abord inclure dans le haut de votre code:

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

Ensuite, ajoutez à votre date Plage de sélection comme ci-dessous:

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

Cela devrait résoudre votre problème. Je l'ai résolu pour moi. Mettez-moi à jour si vous obtenez des erreurs même après avoir fait ces changements.

+0

cela a fonctionné parfaitement. Je vous remercie. –

+0

Pouvez-vous ajouter un «orderby» dans le sélecteur (c'est-à-dire commander par mois)? J'ai toujours utilisé AWQL et j'ai du mal à m'adapter au sélecteur. –

+0

Veuillez marquer cette réponse comme utile @MatthewTrant. Heureux de vous aider –