Hello,

We are working on migrating our sitelinks to use upgraded URLs. We are 
using feed services to create sitelinks with link text going in attribute 
#1 and the URL in attribute #2. New sitelinks are created with upgraded 
URLs that are stored with attribute #2 (attribute #2 is of type URL_LIST). 
For old sitelinks that have destination URLs attribute #2 is of type URL. 
Ideally we would like to maintain consistency across the system and have 
attribute #2 always correspond to an upgraded URL for *both* new and 
migrated sitelinks. To migrate old sitelinks I tried to change attribute #2 
from URL to URL_LIST but I got an error. Is there any way to edit a 
FeedAttribute? The only other way we could maintain consistency in our 
system would be to create an additional attribute. Attribute #2 would have 
to always be of type URL for the old destination URLs and then there would 
be a new attribute #3 of type URL_LIST. This could work but I'm worried the 
URL type might one day sunset since destination URLs are no longer being 
supported. What is the best way to approach this? Also, I was not able to 
find a guide for migrating sitelinks with feed services. Any documentation 
on this would be greatly appreciated.

Thanks,

Stacie



*The feed I'm trying to edit:*

2015-05-22 20:33:24,698 [P2T1] INFO  c.g.a.a.a.l.c.A.soapXmlLogger - SOAP 
Response:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
    <soap:Header>
        <ResponseHeader 
xmlns="https://adwords.google.com/api/adwords/cm/v201502";>
            <requestId>000516b770aedad90ab64ea1d40034a7</requestId>
            <serviceName>FeedService</serviceName>
            <methodName>get</methodName>
            <operations>0</operations>
            <responseTime>214</responseTime>
        </ResponseHeader>
    </soap:Header>
    <soap:Body>
        <getResponse 
xmlns="https://adwords.google.com/api/adwords/cm/v201502";>
            <rval>
                <totalNumEntries>1</totalNumEntries>
                <Page.Type>FeedPage</Page.Type>
                <entries>
                    <id>26292527</id>
                    <name>SiteLinkExtension</name>
                    <attributes>
                        <id>1</id>
                        <name>linkText</name>
                        <type>STRING</type>
                        <isPartOfKey>false</isPartOfKey>
                    </attributes>
                    <attributes>
                        <id>2</id>
                        <name>siteLinkUrl</name>
                        <type>URL</type>
                        <isPartOfKey>false</isPartOfKey>
                    </attributes>
                    <status>ENABLED</status>
                    <origin>USER</origin>
                </entries>
            </rval>
        </getResponse>
    </soap:Body>
</soap:Envelope>



*SOAP request/response for trying to update attribute #2:*



<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
    <soapenv:Header>
        <ns1:RequestHeader 
xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201502"; 
soapenv:mustUnderstand="0">
            <ns1:clientCustomerId>redacted</ns1:clientCustomerId>
            <ns1:developerToken>redacted</ns1:developerToken>
            <ns1:userAgent>redacted</ns1:userAgent>
            <ns1:validateOnly>false</ns1:validateOnly>
            <ns1:partialFailure>false</ns1:partialFailure>
        </ns1:RequestHeader>
    </soapenv:Header>
    <soapenv:Body>
        <mutate xmlns="https://adwords.google.com/api/adwords/cm/v201502";>
            <operations>
                <operator>SET</operator>
                <operand>
                    <id>26292527</id>
                    <name>SiteLinkExtension</name>
                    <attributes>
                        <id>1</id>
                        <name>linkText</name>
                        <type>STRING</type>
                        <isPartOfKey>false</isPartOfKey>
                    </attributes>
                    <attributes>
                        <id>2</id>
                        <name>siteLinkUrl</name>
                        <type>URL_LIST</type>
                        <isPartOfKey>false</isPartOfKey>
                    </attributes>
                    <status>ENABLED</status>
                    <origin>USER</origin>
                </operand>
            </operations>
        </mutate>
    </soapenv:Body>
</soapenv:Envelope>

2015-05-22 20:34:58,293 [P2T1] WARN  c.g.a.a.a.l.c.A.soapXmlLogger - SOAP 
Response:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
    <soap:Header>
        <ResponseHeader 
xmlns="https://adwords.google.com/api/adwords/cm/v201502";>
            <requestId>000516b776477cc00abfb9c2160046b0</requestId>
            <serviceName>FeedService</serviceName>
            <methodName>mutate</methodName>
            <operations>0</operations>
            <responseTime>89</responseTime>
        </ResponseHeader>
    </soap:Header>
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>[FeedError.ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES 
@ operations[0].operand.attributes]</faultstring>
            <detail>
                <ApiExceptionFault 
xmlns="https://adwords.google.com/api/adwords/cm/v201502";>
                    
<message>[FeedError.ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES @ 
operations[0].operand.attributes]</message>
                    
<ApplicationException.Type>ApiException</ApplicationException.Type>
                    <errors 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="FeedError">
                        
<fieldPath>operations[0].operand.attributes</fieldPath>
                        <trigger/>
                        
<errorString>FeedError.ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES</errorString>
                        <ApiError.Type>FeedError</ApiError.Type>
                        
<reason>ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES</reason>
                    </errors>
                </ApiExceptionFault>
            </detail>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>




-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords 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 
"AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at http://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/78a0e37b-8dc6-4679-af43-699592f9e99e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to