我正在使用Facebook 营销API v2.8 ( JAVA 首选)
我正在尝试使用以下规则使用Facebook像素创建custom website audiences
:
字符串规则 = "{\"url\":{\"eq\":\"http://www.example.com/abc.php\"}}"
public static CustomAudience createWebsitePixelCustomAudience(AdAccount adAccount, String pixelId,
String audienceName, EnumSubtype subtype, String rule) throws
APIException {
CustomAudience customAudience = adAccount.createCustomAudience()
.setPixelId(pixelId)
.setName(audienceName)
.setSubtype(CustomAudience.EnumSubtype.VALUE_WEBSITE)
.setRetentionDays(15L)
.setRule(rule)
.setPrefill(true)
.execute();
return customAudience;
}
我想要达到什么目标?
我想定位在上使用API 创建的受众群体( Java 首选)。
我尝试通过传递上面创建的custom audiences
的ID ,使用以下代码执行此操作。
public static Targeting targetAudience(List<String> countrylist, String customAudienceID) {
TargetingGeoLocation geoLocation = new TargetingGeoLocation()
.setFieldCountries(countrylist);
Targeting targeting = new Targeting()
.setFieldGeoLocations(geoLocation)
.setFieldCustomAudiences(customAudienceID);
return targeting;
}
我使用了我在开始时创建的customAudienceID
并将其传递给上面的函数。
但我收到此错误:Expected BEGIN_ARRAY but was NUMBER at line 1 column 14 path
这是将 custom website audience
链接到AdSet
的正确方法吗?
谢谢?
答案 0 :(得分:1)
最后我找到了一种方法:
public static Targeting targetCustomAudience(List<String> countrylist, String customAudienceID) {
TargetingGeoLocation geoLocation = new TargetingGeoLocation()
.setFieldCountries(countrylist);
/**
* add geo-location to targeting
* add custom audienceId to targeting
*/
Targeting targeting = new Targeting()
.setFieldGeoLocations(geoLocation)
.setFieldCustomAudiences("[{id:" + customAudienceID + "}]");
return targeting;
}
简而言之,添加此行"[{id:" + customAudienceID + "}]"
即可将自定义受众添加到定位。