public class GetTopLevelAdUnits {
public static void runExample(DfpServices dfpServices, DfpSession session)
throws Exception {
// Get the InventoryService.
InventoryServiceInterface inventoryService =
dfpServices.get(session, InventoryServiceInterface.class);
// Get the NetworkService.
NetworkServiceInterface networkService =
dfpServices.get(session, NetworkServiceInterface.class);
// Set the parent ad unit's ID for all children ad units to be fetched from.
String parentAdUnitId = networkService.getCurrentNetwork().getEffectiveRootAdUnitId();
// Create a statement to select ad units under the parent ad unit.
StatementBuilder statementBuilder = new StatementBuilder()
.where("parentId = :parentId")
.limit(StatementBuilder.SUGGESTED_PAGE_LIMIT)
.withBindVariableValue("parentId", parentAdUnitId);
// Default for total result set size.
int totalResultSetSize = 0;
do {
// Get ad units by statement.
AdUnitPage page = inventoryService.getAdUnitsByStatement(statementBuilder.toStatement());
if (page.getResults() != null) {
totalResultSetSize = page.getTotalResultSetSize();
int i = page.getStartIndex();
for (AdUnit adUnit : page.getResults()) {