我抓住与用户相关的所有广告系列,并尝试获取广告系列的见解。我让广告系列很好但是当我尝试获得洞察时它总是返回null。我试过改变日子和不同的领域。
$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 :(得分:0)
对getInsights
的调用返回迭代器,因为收集洞察的请求可以返回一组结果。
如果您确定它只会返回一个结果,您只需访问$campInsights[0]
即可。
此行中的代码也有错误,因为未定义$campSelect
:
$campInsights = $campSelect->getInsights($campFields, $params);
应该是:
$campInsights = $campSelect->getInsights($campFields, $params);
答案 1 :(得分:0)
所以这是一个范围问题,因为我仍然需要将对象作为数组进行迭代。发布此内容以帮助他人。
foreach($campInsights as $insights){
$cpc = $insights->{AdsInsightsFields::CPC}.PHP_EOL;
$clicks = $insights->{AdsInsightsFields::WEBSITE_CLICKS}.PHP_EOL;
}
在我浏览对象后,我能够获取值。