$request = new FacebookRequest( $session, 'GET', '/{ad-account-id}/reachestimate', array( 'targeting_spec' => '{"behaviors": [{"id":6015559470583}],"geo_locations": {"countries":["US"],"location_types": ["home"]},"age_min": 20,"age_max": 40 }' ) ); $response = $request->execute(); $graphObject = $response->getGraphObject(); /* handle the result */I tried using fetchConnection and send parameters using a map but no success.
You can use the Targeting object.
List<IDName> behaviors = new ArrayList<IDName>();
IDName behavior = new IDName();
behavior.setId("6015559470583");
behaviors.add(behavior);
TargetingGeoLocation geoLocation = new TargetingGeoLocation();
geoLocation.setCountries(Collections.singletonList("US"));
geoLocation.setLocationTypes(Collections.singletonList("home"));
Targeting targetingSpec = new Targeting();
targetingSpec.setAgeMin(20L);
targetingSpec.setAgeMax(40L);
targetingSpec.setGeoLocations(geoLocation);
targetingSpec.setBehaviors(behaviors);
In fetchConnection you simple add Parameter.with("targeting_spec", targetingSpec).
Everything else should work as you tried.
Hope this helps.
Norbert
JsonObject fetchObjectsResults=facebookClient.fetchConnection("{ad-account-id}/reachestimate", JsonObject.class, Parameter.with("targeting_spec", targetingSpec));Try fetchObject with String as response object and provide the returning String. Perhaps we get some more information. ATM it looks like the returned JSON does not contain a data field.
Best Regards
{
"data": {
"users": 21000000,
"estimate_ready": true
}
}
Attaching a screenshot also.