2013-07-08 34 views
0

我使用Google AdWords PHP API从我们的帐户访问统计信息。不过,我通过api得到了一些非常奇怪的统计数据。我正在尝试访问个人广告或广告组的统计信息。但是,返回的统计数据与他们在客户中心的结果有些相似。我正在使用的代码:Google Adwords不正确的统计信息

$user->SetClientCustomerId($clientId); 
$adService = $user->GetService("AdGroupAdService", ADWORDS_VERSION); 
$selector = new Selector(); 
$selector->fields = array("Id", "Name", "Clicks", "Impressions", "Cost"); 
$selector->predicates[] = new Predicate("AdGroupId", "IN", array($adGroupId)); 
$selector->dateRange = $dateRange; 
$selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE); 
do { 
     // Make the get request. 
     $page = $adService->get($selector); 

     if (isset($page->entries)) { 
       foreach ($page->entries as $ad) { 
        $newLineObject->adName = $ad->name; 
        $newLineObject->clicks = $ad->ad->AdStats->clicks; 
        $newLineObject->impressions = $ad->adStats->impressions; 
        $newLineObject->cost = $ad->ad->AdStats->cost->microAmount/ AdWordsConstants::MICROS_PER_DOLLAR; 
       } 
     } 
     else { 
      print "No matching ads were found.\n"; 
     } 
     $selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE; 

} while ($page->totalNumEntries > $selector->paging->startIndex); 

当我打印结果时,我得到的数字远远大于客户端中心显示的数字。例如,对于一个partiuclar Ad,API报告了2,000,000次展示,而客户中心显示56,000。

我在做什么错?

回答

0

已经尝试过使用上面详细介绍的方法,我完全改变了我的代码。我现在使用AdHoc报告(在这里描述https://developers.google.com/adwords/api/docs/guides/reporting)。 AdWords开发人员向我推荐了这种方法。虽然这并不能从字面上解决我的问题(即上述代码为什么会返回不正确的统计数据),但它确实提供了一种简单而干净的方式来正确获取数据。

0

你的代码对我来说似乎是正确的。但是,您的问题可能是您的代码中的日期范围与您在客户中心中看到的日期范围不同。确保您在交叉检查时保持相同的日期范围。

+0

可悲的是日期是正确的。 – danvdende