public Map<String, List<FeedItemTarget>> getFeedItemTargets(Account account) throws Exception
{
FeedItemTargetServiceInterface service = BaseManager.getFeedItemTargetService(account.getId());
String[] fields = {
"FeedId",
"FeedItemId",
"TargetType",
"Status",
"AdGroupId",
"CampaignId",
"CriteriaType",
"PlatformName",
"StartHour",
"StartMinute",
"EndHour",
"EndMinute",
"DayOfWeek",
"AdGroupName",
"CampaignName",
"TargetingStatus"};
StringBuilder awql = new StringBuilder();
awql.append("SELECT " + Utils.makeList(fields, ","));
awql.append(" WHERE FeedId=" + sitelinkFeed.getFeedId());
int chunkSize = 500;
Map<String, List<FeedItemTarget>> targetMap = new HashMap<>();
int count = 0;
for(;;){
FeedItemTargetPage page = service.query( awql + " LIMIT " + count + "," + chunkSize);
FeedItemTarget[] targets = page.getEntries();
if( targets == null ) break;
for( FeedItemTarget target: targets ) {
String feedItemId = target.getFeedItemId().toString();
List<FeedItemTarget> lst = targetMap.get(feedItemId);
if (lst == null) {
lst = new ArrayList<>();
targetMap.put(feedItemId, lst);
}
lst.add(target);
++count;
}
}
return targetMap;
}
Are there any examples of how to migrate from the old FeedItemService to the FeedItemTargetService to fetch existing targeting? I know the code includes examples of how to create or update feed item targets using the new service, but it's not clear to me how to migrate existing targeting info.
Thanks!