Hi

I have a PMAX retail campign and i am not able to make listing groups in it 
:
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."
  trigger {
    int64_value: -1
  }
  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"
    }
  }
}
errors {
  error_code {
    new_resource_creation_error: DUPLICATE_TEMP_IDS
  }
  message: "Creating more than one resource with the same temp ID is not 
allowed."
  trigger {
    int64_value: -1
  }
  location {
    field_path_elements {
      field_name: "mutate_operations"
      index: 1
    }
    field_path_elements {
      field_name: "asset_group_listing_group_filter_operation"
    }
    field_path_elements {
      field_name: "create"
    }
    field_path_elements {
      field_name: "resource_name"
    }
  }
}
request_id: "7SEJ-cM_WkxXs4MMg6_Q3A"


Code:

String assetGroupResourceName = 
"customers/2966251517/assetGroups/6483934165";
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()
.setResourceName(
ResourceNames.assetGroupListingGroupFilter(
Long.parseLong(saInfo.getAccountId()), assetGroupdId, -1))
.setAssetGroup(ResourceNames.assetGroup(Long.parseLong(saInfo.getAccountId()), 
assetGroupdId))
// 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)
// Note the case_value is not set because it should be undefined for the 
root node.
.build();
//AssetGroupListingGroupFilterOperation.Builder listingGroupFilter1 = 
AssetGroupListingGroupFilterOperation.newBuilder().setCreate(listingGroupFilter);
AssetGroupListingGroupFilterOperation operation =
AssetGroupListingGroupFilterOperation.newBuilder().setCreate(
listingGroupFilter).build();
System.out.println(operation);
MutateOperation.Builder mutateOperation1 = MutateOperation.newBuilder
().setAssetGroupListingGroupFilterOperation(operation);
mutateOperations.add(mutateOperation1.build());
listingGroupFilter =
AssetGroupListingGroupFilter.newBuilder()
.setResourceName(
ResourceNames.assetGroupListingGroupFilter(Long.parseLong(saInfo.getAccountId()),
 
assetGroupdId, 132))
.setAssetGroup(ResourceNames.assetGroup(Long.parseLong(saInfo.getAccountId()), 
assetGroupdId))
.setParentListingGroupFilter(
ResourceNames.assetGroupListingGroupFilter(Long.parseLong(saInfo.getAccountId()),
 
assetGroupdId, -1))
// Uses the UNIT_INCLUDED type to indicate that the 
AssetGroupListingGroupFilter
// won't have children.
.setType(ListingGroupFilterTypeEnum.ListingGroupFilterType.UNIT_INCLUDED)
// Specifies that this uses the shopping listing source because it is a 
Performance
// Max campaign for retail.
.setListingSource(ListingGroupFilterListingSourceEnum.
ListingGroupFilterListingSource.SHOPPING)
.setCaseValue(ListingGroupFilterDimension.newBuilder
().setProductCustomAttribute(ListingGroupFilterDimension.
ProductCustomAttribute.newBuilder().setValue("Everything else").setIndex(
ListingGroupFilterCustomAttributeIndexEnum.
ListingGroupFilterCustomAttributeIndex.INDEX0).build()).build())
.build();
AssetGroupListingGroupFilterOperation filterOperation =
AssetGroupListingGroupFilterOperation.newBuilder().setCreate(
listingGroupFilter).build();
mutateOperation1 = MutateOperation.newBuilder
().setAssetGroupListingGroupFilterOperation(operation);
mutateOperations.add(mutateOperation1.build());
System.out.println(getCampaignSharedSetService().mutate((mutateOperations), 
saInfo.getAccountId()));


Thanks
Tanish

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Google Ads API and AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/160d4ead-04b2-4ccb-a448-9bb8a9d5533fn%40googlegroups.com.
  • Ge... Tanish Gupta
    • ... 'Google Ads API Forum Advisor' via Google Ads API and AdWords API Forum

Reply via email to