My code :
String assetGroupResourceName = "customers/2966251517/assetGroups/6483919124";long assetGroupdId= Long.parseLong(assetGroupResourceName.substring(assetGroupResourceName.lastIndexOf("/") + 1));
mutateOperations.clear();
System.out.println("assetGroupResourceName" + assetGroupResourceName);
//AssetGroupListingGroupFilter.Builder listingGroupFilter = AssetGroupListingGroupFilter.newBuilder().setAssetGroup(assetGroupResourceName).setType(ListingGroupFilterTypeEnum.ListingGroupFilterType.SUBDIVISION).setListingSource(ListingGroupFilterListingSourceEnum.ListingGroupFilterListingSource.SHOPPING);
AssetGroupListingGroupFilter listingGroupFilter = AssetGroupListingGroupFilter.newBuilder()
.setAssetGroup(ResourceNames.assetGroup(Long.parseLong(saInfo.getAccountId()), assetGroupdId))
//.setResourceName(ResourceNames.assetGroupListingGroupFilter(Long.parseLong(saInfo.getAccountId()), assetGroupdId, 11339184668L))
// Since this is the root node, do not set the ParentListingGroupFilter. For all other
// nodes, this would refer to the parent listing group filter resource name.
// .setParentListingGroupFilter("PARENT_FILTER_NAME")
//
// Unlike AddPerformanceMaxRetailCampaign, the type for the root node here must be
// SUBDIVISION because it will have child partitions under it.
.setType(ListingGroupFilterTypeEnum.ListingGroupFilterType.SUBDIVISION)
// Specifies that this uses the shopping listing source because it is a Performance
// Max campaign for retail.
.setListingSource(ListingGroupFilterListingSourceEnum.ListingGroupFilterListingSource.SHOPPING)
//.setParentListingGroupFilter(ResourceNames.assetGroupListingGroupFilter(Long.parseLong(saInfo.getAccountId()), assetGroupdId, 11339184668L))
//.setCaseValue(ListingGroupFilterDimension.newBuilder().setProductCustomAttribute(ListingGroupFilterDimension.ProductCustomAttribute.newBuilder().setValue("10-10").setIndex(ListingGroupFilterCustomAttributeIndexEnum.ListingGroupFilterCustomAttributeIndex.INDEX0).build()).build())
// Note the case_value is not set because it should be undefined for the root node.
.build();
Error : com.google.ads.googleads.v15.errors.GoogleAdsException: errors {
error_code {
asset_group_listing_group_filter_error: SUBDIVISION_MUST_HAVE_EVERYTHING_ELSE_CHILD
}
message: "Listing Group SUBDIVISION node must have everything else child."
location {
field_path_elements {
field_name: "mutate_operations"
index: 0
}
field_path_elements {
field_name: "asset_group_listing_group_filter_operation"
}
field_path_elements {
field_name: "create"
}
field_path_elements {
field_name: "type"
}
}
}
request_id: "ijlCc3TXKxRNp6AuhS5NFQ"
Thanks
Tanish