活动洞察力返回null Facebook营销API

问题描述:

我抓住与用户关联的所有广告系列并试图获取广告系列的见解。我获得了广告系列,但是当我尝试获取洞察时,它总是返回null。我试图改变日子和不同的领域。活动洞察力返回null Facebook营销API

$api = Api::instance(); 

$id = trim($_POST['actid']); 

$account = new AdAccount($id); 

$fields = array(
    CampaignFields::NAME, 
    CampaignFields::ID, 
); 

$campaigns = $account->getCampaigns($fields); 



$cleanArray = []; 
foreach ($campaigns as $campaign) { 

    $campFields = array(
    AdsInsightsFields::CPC, 
); 

$params = array(
    'time_range' => array(
    'since' => (new DateTime("-1 day"))->format('Y-m-d'), 
    'until' => (new DateTime('NOW'))->format('Y-m-d'), 
    ), 
); 

$campInsights = $campSelect->getInsights($campFields, $params); 
$innerArray = []; 
array_push($innerArray,$campaign->{CampaignFields::NAME}); 
array_push($innerArray,$campaign->{CampaignFields::ID}); 
array_push($innerArray,$campInsights->{AdsInsightsFields::CPC}); 
array_push($cleanArray,$innerArray); 
} 

header('Content-Type: application/json'); 
echo json_encode($cleanArray); 

所以这是一个范围问题,我仍然需要以数组形式遍历对象。发布此信息以帮助他人。

foreach($campInsights as $insights){ 
    $cpc = $insights->{AdsInsightsFields::CPC}.PHP_EOL; 
    $clicks = $insights->{AdsInsightsFields::WEBSITE_CLICKS}.PHP_EOL; 
} 

在我绕过对象后,我能够获取值。

getInsights调用返回一个迭代器,如请求的数据分析可以返回的结果集。

如果您确定它只会返回一个结果,您可以访问$campInsights[0]

您还可以在这行代码中的错误,如$campSelect没有定义:

$campInsights = $campSelect->getInsights($campFields, $params); 

它应该是:

$campInsights = $campSelect->getInsights($campFields, $params); 
+0

感谢您的支持。这实际上是一个范围问题。我张贴我的答案,以帮助其他人作为他们的文档不是很好。 –