2017-04-04 6 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への呼び出しは、結果セットを返すことができる洞察を収集するための要求として、イテレータを返します。

結果が1つしか返されない場合は、$campInsights[0]にアクセスしてください。

$campSelectが定義されていないとして、あなたはまた、この行のコードでエラーが発生している:

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

それは次のようになります。

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

ありがとうございます。それは実際に範囲の問題でした。私の答えは誰も助けるために書かれています。 –

関連する問題