So, after I successfully remove the node and begin to recreate it as a
subdivision with children, I am getting an error at index 1 where it says
the 'listing_group already exists'. This is my "other's node" operation.
//new subdivided node
const updateSelectedNodeType = new resources.AdGroupCriterion({
resource_name: tempSubdivisionResource,
ad_group: adGroupResource,
listing_group: {
parent_ad_group_criterion: parentNode,
type: enums.ListingGroupType.SUBDIVISION,
case_value: caseValue,
},
negative: false,
status: enums.AdGroupCriterionStatus.ENABLED,
});
//everything else node
const everythingElseNode = new resources.AdGroupCriterion({
resource_name: everythingElseResource,
ad_group: adGroupResource,
cpc_bid_micros: toMicros(0.4),
listing_group: {
parent_ad_group_criterion: parentNode,
type: enums.ListingGroupType.UNIT,
case_value: everythingElseCaseValue,
},
negative: false,
status: enums.AdGroupCriterionStatus.ENABLED,
});
//partition object with set cpc.
const newPartition = new resources.AdGroupCriterion({
ad_group: `customers/${customer}/adGroups/${adGroupId}`,
resource_name: criterionResourceOperation,
cpc_bid_micros: toMicros(0.4),
negative: false,
status: enums.AdGroupCriterionStatus.ENABLED,
listing_group: {
parent_ad_group_criterion: parentAdGroupCriterion,
type: enums.ListingGroupType.UNIT,
case_value: caseValue,
},
});
0//tempid -1
const updatePartitionToSubdivision: MutateOperation<resources.
IAdGroupCriterion> =
{
entity: "ad_group_criterion",
operation: "create",
resource: {
...updateSelectedNodeType,
},
};
1//tempid -2 - ERROR - LISTING_GROUP ALREADY EXISTS
const createEverythingElseNodeOperation: MutateOperation<resources.
IAdGroupCriterion> =
{
entity: "ad_group_criterion",
operation: "create",
resource: {
...everythingElseNode,
},
};
2//tempid -3
const addPartitionNodes: MutateOperation<resources.IAdGroupCriterion> =
{
entity: "ad_group_criterion",
operation: "create",
resource: newPartition,
};
How do I find a node that doesn't currently exist in my active tree, remove
it and make sure I am not removing the wrong node?
I tried to query:
query = `
SELECT
ad_group_criterion.criterion_id,
ad_group_criterion.listing_group.case_value.${caseValue},
ad_group_criterion.listing_group.parent_ad_group_criterion,
ad_group_criterion.listing_group.path,
ad_group_criterion.listing_group.type
FROM product_group_view
WHERE ad_group_criterion.listing_group.type = 'UNIT'
AND ad_group_criterion.listing_group.case_value.${caseValue} IS NULL
AND ad_group_criterion.listing_group.parent_ad_group_criterion = '${
selectedNode?.listing_group?.parent_ad_group_criterion}'
`;
with this line: AND
ad_group_criterion.listing_group.parent_ad_group_criterion = '${selectedNode
?.listing_group?.parent_ad_group_criterion}'
I get the one partition from my active tree that is already the "others
node" for an already subdivided partition (done during creation).
when I remove the line targeting parent criterion, I am left with about 900
partitions. So I am really interested in learning how this works. In terms
of the data relationship and structure, how does one identify the "others"
node of a specific partition when 1. the other's node does not currently
exist in the current product_group_view where ad_group.id = ${adgroupId}?
my tree is like this for said ag_group > product_group_view:
I already have a brand node subdivided by product item id.
I now want to do the same the other unit node(**).
S = Subdivision
U = UNIT
** = convert UNIT to SUBDIVISION operation
all products(S)
|
**brand(U)
-------------------------brand (S)
|
|
|
item_id(U)
|
|
ev else (all)
ev else (brand1) (U)
Can you please confirm that i have to find the "other's node" and delete it
despite it not existing in my current tree?
2. I saw in your response that I should querying the ad_group_criterion
resource? not the product_group_view? Is there a specific advantage using
the ad_group_criterion in this case?
Kind Regards,
Michael H.
On Tuesday, February 20, 2024 at 3:26:43 AM UTC+7 Google Ads API Forum
Advisor wrote:
> Hi,
>
> Thank you for reaching out to the Google Ads API support team.
>
> By reviewing your concern, I understand that you want to modify the
> structure of the existing product_group_view for a specific ad group. I
> agree that you need to change the node’s ListingGroupType
> <https://developers.google.com/google-ads/api/reference/rpc/v15/ListingGroupTypeEnum.ListingGroupType>
>
> from UNIT to SUBDIVISION in order to continue with the subdivision you want
> to achieve.
>
> Please find the response to your queries respectively.
>
>
> *How can I correctly identify the "others" node when converting a UNIT to
> a Subdivision?*
>
> Please refer to the ad_group_criterion
> <https://developers.google.com/google-ads/api/fields/v15/ad_group_criterion>
> resource to get the information on the nodes.
>
>
> *I am getting an error that the 'everything else node' already exists.
> This also flags that my subdivided node needs an "others case". Meanwhile
> the node does get removed (haha), so I have to re-add it again .*
>
> I understand that you are converting your unit node to subdivision. From
> the provided code snippet, I could see that the subdivision has only
> everythingElse node. Please note that the subdivision must always be
> completely partitioned, which must contain a node representing 'Other'.
> Could you please try adding the 'Other' node to the subdivision.
>
>
> *Am I also expected to find the "everything else node" in the
> product_group_view and delete it and how can I identify I am deleting the
> correct "others" node? *
>
> Please refer to the ad_group_criterion
> <https://developers.google.com/google-ads/api/fields/v15/ad_group_criterion>
> resource to get the information on the nodes.
>
> You may also refer to this code
> <https://developers.google.com/google-ads/api/samples/add-shopping-product-listing-group-tree>,
> if
> you want to replace the existing listing group tree on an ad group.
>
> Hope this helps.
>
> This message is in relation to case "ref:!00D1U01174p.!5004Q02rzEgV:ref"
>
> Thanks,
>
> [image: Google Logo] Google Ads API Team
>
>
>
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 [email protected]
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/adwords-api/aae05994-115c-41a0-a58e-7e4a0168bb8dn%40googlegroups.com.