2017-04-04 62 views
0

我抓住與用戶關聯的所有廣告系列並試圖獲取廣告系列的見解。我獲得了廣告系列,但是當我嘗試獲取洞察時,它總是返回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); 

回答

0

所以這是一個範圍問題,我仍然需要以數組形式遍歷對象。發佈此信息以幫助他人。

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

在我繞過對象後,我能夠獲取值。

0

getInsights調用返回一個迭代器,如請求的數據分析可以返回的結果集。

如果您確定它只會返回一個結果,您可以訪問$campInsights[0]

您還可以在這行代碼中的錯誤,如$campSelect沒有定義:

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

它應該是:

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

感謝您的支持。這實際上是一個範圍問題。我張貼我的答案,以幫助其他人作爲他們的文檔不是很好。 –