Skip Menu |

This queue is for tickets about the Microsoft-AdCenter CPAN distribution.

Report information
The Basics
Id: 58455
Status: resolved
Priority: 0/
Queue: Microsoft-AdCenter

People
Owner: XERXES [...] cpan.org
Requestors: scott.sexton [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Empty Bid elements are not returned from _serialize_argument
Bid elements need to be returned even if they are null. Keyword bids are set back to the default ad group bid by passing a null bid element in the SOAP request. Currently, this line in _serialize_argument in Service.pm will cause the Bid element to be stripped out: $object = $object->value(\eval($type . '->value(@attributes)')); Instead, $object should not be redefined if scalar(@attributes) is zero and the $name of the object matches Bid. As a temporary work around, I've updated my local Service.pm to do that and can now set custom and default keyword bids on adCenter properly.
Hi Scott Thank you for reporting the issue. I am not very sure but according to MSDN, to remove bid values, you will have to set the corresponsing bid amount to zero instead of passing null to the API. Below is copied directly from MSDN (http://msdn.microsoft.com/en-us/library/bb671664.aspx): -------------------------------------------------- To update only the bid amounts for a keyword, set the Keyword.ExactMatchBid, Keyword.BroadMatchBid, Keyword.PhraseMatchBid, and/or Keyword.ContentMatchBid elements to the new bid amounts. If there are bids that should not be updated, set to null their corresponding elements. To remove an existing bid match type, set to zero (not null) the corresponding bid amount element, and then call the UpdateKeywords service operation. For example, to remove the phrase match type, set Keyword.PhraseMatchBid to zero, and then call the UpdateKeywords service operation. -------------------------------------------------- I will have to verify if the above document is correct though. -Xerxes
From: scott.sexton [...] gmail.com
Hi Xerxes, Yes, setting a bid to 0 removes that bid match type, using the one that is set instead. So if you set Exact and Phrase to 0 but have Broad to 5, keywords with Exact and Phrase match types will use a bid of 5. All three types cannot be 0 though. This part works fine, however if you want the keyword to not have any custom bid at all and use the Ad Group default bid, you need to make them all null as it says here: http://msdn.microsoft.com/en-US/library/bb671833.aspx#Bid_Amounts "When updating an existing keyword, you specify to use the default ad group bid by passing null for the Amount element of the Bid object." Replacing the custom keyword bid with the default Ad Group bid by passing a null value is when this bug comes into effect. The change I made on my local copy has this part working successfully now. On Sun Jun 20 09:36:52 2010, XERXES wrote: Show quoted text
> Hi Scott > > Thank you for reporting the issue. > > I am not very sure but according to MSDN, to remove bid values, you will > have to set the corresponsing bid amount to zero instead of passing null > to the API. > > Below is copied directly from MSDN > (http://msdn.microsoft.com/en-us/library/bb671664.aspx): > -------------------------------------------------- > To update only the bid amounts for a keyword, set the > Keyword.ExactMatchBid, Keyword.BroadMatchBid, Keyword.PhraseMatchBid, > and/or Keyword.ContentMatchBid elements to the new bid amounts. If there > are bids that should not be updated, set to null their corresponding > elements. > > To remove an existing bid match type, set to zero (not null) the > corresponding bid amount element, and then call the UpdateKeywords > service operation. For example, to remove the phrase match type, set > Keyword.PhraseMatchBid to zero, and then call the UpdateKeywords service > operation. > -------------------------------------------------- > > I will have to verify if the above document is correct though. > > -Xerxes
Resolved in 6.02. Please let me know if this is still not working. Thank you.