I'm sorry if someone has posted similar problem already, I just can't 
figure it out.
I'm trying to get daily costs of my campaigns. 
I use this documentation 
https://developers.google.com/adwords/api/docs/guides/reporting

I am also using php and Yii2. I've got:

client Customer Id

client id     
 access token    
 client_secret 

refresh_token   

When I get Campaigns names and ids, those client Customer Id,client 
id,client_secret are enough and I get campaigns without any problem but 
when I try to get a report, there is the error 

    string(581) "HTTP/1.1 400 Bad Request
    Content-Type: text/xml
    Date: Mon, 22 May 2017 10:31:52 GMT
    Expires: Mon, 22 May 2017 10:31:52 GMT
    Cache-Control: private, max-age=0
    X-Content-Type-Options: nosniff
    X-Frame-Options: SAMEORIGIN
    X-XSS-Protection: 1; mode=block
    Server: GSE
    Accept-Ranges: none
    Vary: Accept-Encoding
    Transfer-Encoding: chunked
    
    <?xml version="1.0" encoding="UTF-8" 
standalone="yes"?><reportDownloadError><ApiError><type>ReportDownloadError.INVALID_PARAMETER</type><trigger>Missing
 
client 
information</trigger><fieldPath></fieldPath></ApiError></reportDownloadError>"

Maybe I make post request with curl wrong, since I'm able to get campaigns 
without mistakes.
Here is my code

    $ch = curl_init();
    
            curl_setopt($ch, 
CURLOPT_URL,"http://adwords.google.com/api/adwords/reportdownload/v201702";);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch,CURLOPT_HEADER,1);
    
    $XML= <<<XML
    <?xml version="1.0" encoding="UTF-8"?>
    <reportDefinition 
xmlns="https://adwords.google.com/api/adwords/cm/v201702";>
        <selector>
            <fields>CampaignId</fields>
            <fields>AdGroupId</fields>
            <fields>Impressions</fields>
            <fields>Clicks</fields>
            <fields>Cost</fields>
            <predicates>
                <field>AdGroupStatus</field>
                <operator>IN</operator>
                <values>ENABLED</values>
                <values>PAUSED</values>
            </predicates>
        </selector>
        <reportName>Custom Adgroup Performance Report</reportName>
        <reportType>ADGROUP_PERFORMANCE_REPORT</reportType>
        <dateRangeType>TODAY</dateRangeType>
        <downloadFormat>CSV</downloadFormat>
    </reportDefinition>
    XML;
    
    $headers = array("Content-Type:multipart/form-data",
     "Authorization"=> "Bearer my_access_token",
      "developerToken" => "my_developer_token",
     "clientCustomerId"=> 111-111-1111, // test account
    
    ); 
    
    $postfields = array("__rdxml" =>$XML );
            curl_setopt($ch, CURLOPT_HTTPHEADER , $headers);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    
    
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
            $server_output = curl_exec ($ch);
     echo "<pre>";
    var_dump($server_output);
    echo "</pre>";
            curl_close ($ch);

I also tried 

$campaignService = $ADwordsUser->GetService('CampaignService', ADWORDS_VERSION);

// Create selector.
$selector = new Selector();
// Fields to retrieve
$selector->fields = array('Id', 'Name', 'Cost');
// Date rage for stats
$selector->dateRange->min = "20110613";
$selector->dateRange->max = "20110614";

// Get all campaigns.
$page = $campaignService->get($selector);

if(isset($page->entries)){
    foreach ($page->entries as $campaign) {
        if(isset($campaign->campaignStats)) {
            // This is how you get the cost
            $cost = $campaign->campaignStats->cost->microAmount/1000000;
            print "Cost for Campaign {$campaign->name} = $cost\n";
        }
    }
}



but it returns
Creating default object from empty valuewhen it goes here

$selector->dateRange->min = "20110613";

, I guess because $selector is null...

But if I remove 


$selector->dateRange->min = "20110613";
$selector->dateRange->max = "20110614";

I get 

[SelectorError.INVALID_FIELD_NAME @ serviceSelector; trigger:'Cost']


And I'm also not sure if 

$campaign->campaignStats

exists...

Thank you to anyone who can help.

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/38329418-4c2f-4d05-a6cd-1b9459e6bccb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
  • adwords ... jane
    • Re:... 'Sreelakshmi Sasidharan (AdWords API Team)' via AdWords API Forum

Reply via email to