Getting campaign stats (e.g. Clicks, CTR, CPC, etc.) via AdWords API

十年热恋 提交于 2020-12-06 06:02:26

问题


What I'm trying to currently do is fetch Campaign statistics such as Clicks, Impressions, CTR, Average CPC and etc for a particular campaign. Unfortunately, I can't find how to do it via the AdWords API.

What I've found up till now is that,

  1. Maybe, in an earlier version of the CampaignService, we were able to obtain stats by doing something like $campaign->campaignStats. Unluckily, I'm using V201506 and in it there is no campaignStats object/variable.
  2. I probably can get these stats using the 'CAMPAIGN_PERFORMANCE_REPORT' but it needs to be downloaded and I don't want to download the report. I just want an array or something similar returned so that I can process it. Also, I don't want to give any time frame, I just want all time stats to be returned for that campaign. Is it even possible?

If any one could help me out, I would really appreciate it. Kind of been stuck here for a few hours, skimmed through the whole AdWords API documentation but couldn't understand what would be the best and easy approach to this.


回答1:


Now, Adwords API allowing stats only By reporting service. And stats can be get using two methods.

1) By using reporting service as described here

2) You can use Adwords Query Language. See this




回答2:


i don't know if you still need this but the API V201806 I found a solution. In this version of API exist the function getAsString() which returns the data in String and not download file, I request data in format XML and in PHP transform the response into a XML Object.

This is code I used:

class DownloadCriteriaReportWithAwql {

public static function runExample(AdWordsSession $session, $reportFormat){

    // Create report query to get the data for last 7 days.
    $query = (new ReportQueryBuilder())
        ->select([
            'CampaignId',
            'AdGroupId',
            'Id',
            'Criteria',
            'CriteriaType',
            'Impressions',
            'Clicks',
            'Cost',
            'Conversions'
        ])
        ->from(ReportDefinitionReportType::CRITERIA_PERFORMANCE_REPORT)
        ->where('Status')->in(['ENABLED'])
        ->duringDateRange(ReportDefinitionDateRangeType::LAST_7_DAYS)
        ->build();
    // Download report as a string.
    $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->downloadReportWithAwql(
        sprintf('%s', $query),
        $reportFormat,
        $reportSettingsOverride
    );
    //print "Report was downloaded and printed below:\n";
    $datos = $reportDownloadResult->getAsString();
    return ($datos);
}
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();
    $string = self::runExample($session, DownloadFormat::XML);
    $xml = new \SimpleXMLElement($string);
    return $xml;}}


来源:https://stackoverflow.com/questions/33008386/getting-campaign-stats-e-g-clicks-ctr-cpc-etc-via-adwords-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!