Hi,

Ok finally works!

FYI I use the reports on the web, not from the command line.

The reason it does not show on the screen is that I had to parse the string 
with *simplexml_load_string* before. Looking at the source code of the page 
I noticed that everything was there but it was not displayed on the screen.

Thanks for all !

Final working code:

$report = ReportUtils::DownloadReport($reportDefinition, NULL, $user, 
$options);

$xml = simplexml_load_string($report);
print "<pre>";
print_r($xml);
print "</pre>";





Le lundi 30 novembre 2015 09:11:34 UTC-5, Josh Radcliff (AdWords API Team) 
a écrit :
>
> Hi Etienne,
>
> Are you setting any of the *options*, such as:
>   $options['skipReportHeader'] = true;
>   $options['skipColumnHeader'] = true;
>   $options['skipReportSummary'] = true;
>
> If you set all of those options to *true *and the report does not contain 
> any rows, then you'll get an empty string back.
>
> In case it helps, attached is a modified version of 
> DownloadCriteriaReport.php 
> <https://github.com/googleads/googleads-php-lib/blob/master/examples/AdWords/v201509/Reporting/DownloadCriteriaReport.php>
>  that's 
> printing the report results for me if I run *php 
> DownloadCriteriaReport.php*.
>
> Also, please make sure you are running the example *from the command line*, 
> and not loading it up as a webpage in your browser. All code examples are 
> meant to be run from the command line, since they print to stdout/stderr.
>
> Cheers,
> Josh, AdWords API Team
>
> On Thursday, November 26, 2015 at 8:33:58 AM UTC-5, 
> etienne....@admobio.com <javascript:> wrote:
>>
>> Hi Josh !
>>
>> Ok here is the result of my test:
>>
>> If I put the path to NULL and print the result directly on the screen 
>> there are no results so the string is empty.
>>
>> *Like this:*
>> $filePath = NULL;
>> print ReportUtils::DownloadReport($reportDefinition, $filePath, $user, 
>> $options);
>>
>>
>> If I specify a directory path and print the result on the screen I get a 
>> strange result "252" as a string.
>>
>> *Like this:*
>> $filePath = "reports/test.xml";
>> print ReportUtils::DownloadReport($reportDefinition, $filePath, $user, 
>> $options);
>>
>>
>> If I send the result in the XML file I get this:
>>
>> *Like this:*
>> $filePath = "reports/test.xml";
>> ReportUtils::DownloadReport($reportDefinition, $filePath, $user, $options
>> );
>>
>> *Result in the XML file:*
>> <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
>> <report>
>>  <report-name name='Criteria performance report #5657055530886'/>
>>  <date-range date='Nov 19, 2015-Nov 25, 2015'/>
>>  <table>
>>  <columns>
>>  <column name='campaignID' display='Campaign ID'/>
>>  </columns>
>>  <row campaignID='xxxxx'/>
>>  <row campaignID='xxxxx'/>
>>  <row campaignID='xxxxx'/>
>>  <row campaignID='xxxxx'/>
>>  <row campaignID='xxxxx'/>
>>  </table>
>> </report>
>>
>>
>> There are results, but it's impossible to get them out on the screen.
>>
>> It's really all I have for now!
>>
>> Any ideas ?
>>
>> Thank you !
>>
>>
>>
>>
>>
>>
>>
>> On Wednesday, November 25, 2015 at 9:47:52 AM UTC-5, Josh Radcliff 
>> (AdWords API Team) wrote:
>>
>> Hi Etienne,
>>
>> When you say the result is empty, do you mean it's literally the empty 
>> string ("")/null, or that it simply does not contain any rows of data, like 
>> this?
>>
>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>> <report>
>>   <report-name name="Criteria performance report #5655c94a2d066"/>
>>   <date-range date="Nov 18, 2015-Nov 24, 2015"/>
>>   <table>
>>     <columns>
>>       <column name="campaignID" display="Campaign ID"/>
>>       <column name="impressions" display="Impressions"/>
>>     </columns>
>>   </table>
>> </report>
>>
>> If the latter, then this is most likely due to your campaigns not having 
>> any impressions. You can include campaigns with zero impressions as follows:
>>
>> $reportDefinition->includeZeroImpressions = true;
>>
>> If that doesn't resolve it for you, could you let me know if you've tried 
>> the example *without* setting *filePath* to null, and if so, if the 
>> resulting file contained *any* data (even if it's just the empty 
>> response above)?
>>
>> Thanks,
>> Josh, AdWords API Team
>>
>> On Tuesday, November 24, 2015 at 6:14:04 PM UTC-5, 
>> etienne....@admobio.com wrote:
>>
>> Hi Josh,
>>
>> I tried many things but there is something I don't understand.
>>
>> I added NULL to $filePath but the result is still empty.
>>
>> With the following code, do you see something that might help me ?
>>
>> I also googled a lot of request but there's no result for such specific 
>> search.
>>
>> Thank you for your help !
>>
>>
>> function getAccountPerformanceReport(AdWordsUser $user) {
>>         
>>  // Load the service.
>>  $user->LoadService('ReportDefinitionService', ADWORDS_VERSION);
>>
>>  // Create selector.
>>  $selector = new Selector();
>>  $selector->fields = array(
>>  'CampaignId',
>>  'Impressions');
>>        
>>  // Create report definition.
>>  $reportDefinition = new ReportDefinition();
>>  $reportDefinition->selector = $selector;
>>  $reportDefinition->reportName = 'Criteria performance report #' . uniqid
>> ();
>>  $reportDefinition->dateRangeType = 'LAST_7_DAYS';
>>  //$reportDefinition->reportType = 'ACCOUNT_PERFORMANCE_REPORT';
>>  $reportDefinition->reportType = 'CAMPAIGN_PERFORMANCE_REPORT';
>>  $reportDefinition->downloadFormat = 'XML';
>>
>>  // Set additional options.
>>  $options = array('version' => ADWORDS_VERSION);
>>         
>>  $filePath = NULL;
>>  
>>  print ReportUtils::DownloadReport($reportDefinition, $filePath, $user, 
>> $options);
>>  //printf("Report with name '%s' was downloaded to '%s'.\n", 
>> $reportDefinition->reportName, $filePath);
>> }
>>
>>
>> On Tuesday, November 24, 2015 at 4:24:52 PM UTC-5, Josh Radcliff (AdWords 
>> API Team) wrote:
>>
>> Hi Etienne,
>>
>> You can retrieve the report as a string if you simply do not specify a 
>> *$filePath* when you cal*l ReportUtils::DownloadReport*. In that case, 
>> the return value from *ReportUtils::DownloadReport* will be the contents 
>> as a string.
>>
>>
>> https://github.com/googleads/googleads-php-lib/blob/master/examples/AdWords/v201509/Reporting/DownloadCriteriaReport.php#L75
>>
>> Cheers,
>> Josh, AdWords API Team
>>
>> On Tuesday, November 24, 2015 at 4:18:04 PM UTC-5, 
>> etienne....@admobio.com wrote:
>>
>> Hi Josh,
>>
>> I am able to download reports. I wish instead of downloading the reports, 
>> retrieve and display the values on the screen. Is it possible ?
>>
>> Thank you !
>>
>> On Friday, November 20, 2015 at 5:38:24 PM UTC-5, Josh Radcliff (AdWords 
>> API Team) wrote:
>>
>> Hi Etienne,
>>
>> Reporting works a bit differently, as it simply streams CSV, TSV, or XML 
>> results directly (instead of using SOAP). The Reporting Basics guide 
>> <https://developers.google.com/adwords/api/docs/guides/reporting> gives 
>> a good overview of how to run reports, and the examples in the PHP 
>> library Reporting folder 
>> <https://github.com/googleads/googleads-php-lib/tree/master/examples/AdWords/v201509/Reporting>
>>  show 
>> how to use the various PHP utilities for reporting.
>>
>> Cheers,
>> Josh, AdWords API Team
>>
>> On Friday, November 20, 2015 at 4:45:49 PM UTC-5, etienne....@admobio.com 
>> wrote:
>>
>> Hi Josh and thank you for your answer.
>>
>> I completely forgot to add the field in the selector, so it always sent 
>> me an empty field. It was my mistake ... I think I'm exhausted from my work 
>> week.
>>
>> *Here's my working code:*
>> function test(AdWordsUser $user) {
>>  
>>  $service = $user->GetService('ConversionTrackerService', ADWORDS_VERSION
>> );
>>  $selector = new Selector();
>>  $selector->fields = array(
>>   'MostRecentConversionDate', 
>>   'LastReceivedRequestTime'
>>  );
>>  
>>  $data = $service->get($selector);
>>  
>>  if (isset($data->entries)) {
>>   print_r("<pre>");
>>   print_r ($data->entries);
>>   print_r("</pre>");
>>  }else{
>>   print "Empty";
>>  }
>>
>> }
>>
>> I tried to do the same approach with the reports but the method "Get" 
>> like "$data = $service->get($selector);" always returns the following 
>> error: *PHP Warning: The method "get" is not supported. *
>>
>> So I guess for reports, this is not the right way to proceed.
>>
>> Is it correct to assume that this isn't the same approach as 
>> "ConversionTrackerService" or other services ?
>>
>> Thank you,
>>
>> Etienne
>>
>> On Friday, November 20, 2015 at 3:40:08 PM UTC-5, Josh Radcliff (AdWords 
>> API Team) wrote:
>>
>> Hi Etienne,
>>
>> Have you gone through the Working with Objects guide 
>> <https://developers.google.com/adwords/api/docs/guides/working-with-objects#get-method>?
>>  
>> That explains how to specify which attributes of an object you want to 
>> retrieve from a service. The Selector fields list 
>> <https://developers.google.com/adwords/api/docs/appendix/selectorfields#v201509-ConversionTrackerService>
>>  is 
>> also a useful reference.
>>
>> Regarding the latest conversion date, please make sure that your 
>> selector's field list includes *MostRecentConversionDate*, as the API 
>> generally only returns values for fields that you have explicitly requested.
>>
>> Cheers,
>> Josh, AdWords API Team
>>
>> On Friday, November 20, 2015 at 3:01:47 PM UTC-5, etienne....@admobio.com 
>> wrote:
>>
>> Hi Nadine !
>>
>> Thanks for the info. I had previously tested with "NULL" but I had not 
>> paid attention then it worked thank you!
>>
>> Now that it's done, I can't find information to retrieve the values 
>> returned by the service. Do you have any info on this on how to do this?
>>
>> Also, I found the "ConversionTrackerService" that returns many 
>> information. I found the "mostRecentConversionDate" field. With this field, 
>> I would be able to recover the most recent conversion date and compare it 
>> with today's date and then whether a conversion took place in the last 30 
>> days.
>>
>> The problem is that the field always seems empty! I will do another test 
>> but the field still seems empty even if conversion has been made.
>>
>> What do you think of these two subjects?
>>
>> Thank you,
>> Etienne
>>
>> On Friday, November 20, 2015 at 1:55:07 PM UTC-5, Nadine Sundquist 
>> (AdWords API Team) wrote:
>>
>> Hi Etienne,
>>
>> Your English is definitely easy to understand. No worries there. I looked 
>> at the PHP code that you have, and I looked at the Report Utils PHP 
>> <https://github.com/googleads/googleads-php-lib/blob/d93465f2dbd0416f2b353fe6e597845e424224ec/src/Google/Api/Ads/AdWords/Util/ReportUtils.php>
>>  
>> code in the library. It looks like if you set the file path to *null*, 
>> then it should skip over fopen(). Have you given that a try?
>>
>> Cheers,
>> Nadine, AdWords API Team 
>>
>> On Friday, November 20, 2015 at 12:23:56 PM UTC-5, 
>> etienne....@admobio.com wrote:
>>
>> Hi !
>>
>> Ok I tried several things and in different ways but if I don't specify 
>> filePath, logs always returns me:
>>
>> PHP Warning: fopen (): Filename can not be empty in 
>> src/Google/Api/Ads/AdWords/User/ReportUtils.php
>>
>> For now I'm stuck here. If you have a solution let me know and I will 
>> meanwhile do research.
>>
>> Thank you for your help !
>>
>> PS: Sorry for my English, I speak French from Quebec.
>>
>> Etienne
>>
>> *Here is my code that works and that allows me to download the report.*
>> function test(AdWordsUser $user) {
>>         
>>   // Load the service, so that the required classes are available.
>>   $user->LoadService('ReportDefinitionService', ADWORDS_VERSION);
>>
>>   // Create selector.
>>   $selector = new Selector();
>>   $selector->fields = array('CampaignId');
>>        
>>   //if ($timePeriod == "CUSTOM_DATE") {
>>   //$selector->dateRange = new DateRange($dateFrom, $dateTo);
>>   //}
>>
>>   // Create report definition.
>>   $reportDefinition = new ReportDefinition();
>>   $reportDefinition->selector = $selector;
>>   $reportDefinition->reportName = 'Performance report #' . uniqid();
>>   $reportDefinition->dateRangeType = 'LAST_7_DAYS';
>>   //$reportDefinition->reportType = 'ACCOUNT_PERFORMANCE_REPORT';
>>   $reportDefinition->reportType = 'CAMPAIGN_PERFORMANCE_REPORT';
>>   $reportDefinition->downloadFormat = 'XML';
>>
>>   // Set additional options.
>>   $options = array('version' => ADWORDS_VERSION);
>>
>>   $filePath = "reports/test.xml"
>>
>> ...
>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/1a11c731-c22f-4478-a8d6-0f1c7c5e3f87%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to