App extensions URL settings

27 views
Skip to first unread message

Roman Bondarenko

unread,
Aug 26, 2020, 8:58:57 AM8/26/20
to AdWords API and Google Ads API Forum
Hello! 
Found a bug, I guess. 

Logs provided below.

Request made: Service: "CampaignExtensionSettingService" Method: "mutate" URL: "https://adwords.google.com/api/adwords/cm/v201809/CampaignExtensionSettingService"
Outgoing request: {'SOAPAction': '""', 'Content-Type': 'text/xml; charset=utf-8', 'authorization': 'REDACTED'}
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header>
<ns0:RequestHeader xmlns:ns0="https://adwords.google.com/api/adwords/cm/v201809">
<ns0:clientCustomerId>712-689-1293</ns0:clientCustomerId>
<ns0:developerToken>REDACTED</ns0:developerToken>
<ns0:userAgent>712-689-1293 (AwApi-Python, googleads/17.0.0, Python/3.7.7, zeep)</ns0:userAgent>
<ns0:validateOnly>false</ns0:validateOnly>
<ns0:partialFailure>true</ns0:partialFailure>
</ns0:RequestHeader>
</soap-env:Header>
<soap-env:Body>
<ns0:mutate xmlns:ns0="https://adwords.google.com/api/adwords/cm/v201809">
<ns0:operations>
<ns0:operator>ADD</ns0:operator>
<ns0:operand>
<ns0:campaignId>10944344575</ns0:campaignId>
<ns0:extensionType>APP</ns0:extensionType>
<ns0:extensionSetting>
<ns0:extensions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns0:AppFeedItem">
<ns0:startTime>00000101 000000</ns0:startTime>
<ns0:endTime>00000101 000000</ns0:endTime>
<ns0:devicePreference/>
<ns0:scheduling/>
<ns0:appStore>GOOGLE_PLAY</ns0:appStore>
<ns0:appId>com.android.chrome</ns0:appId>
<ns0:appLinkText>Download Now!!!</ns0:appLinkText>
<ns0:appFinalUrls>
<ns0:urls>https://play.google.com/store/apps/details?id=com.android.chrome</ns0:urls>
</ns0:appFinalUrls>
<ns0:appFinalMobileUrls/>
<ns0:appTrackingUrlTemplate></ns0:appTrackingUrlTemplate>
<ns0:appFinalUrlSuffix></ns0:appFinalUrlSuffix>
<ns0:appUrlCustomParameters>
<ns0:doReplace>true</ns0:doReplace>
</ns0:appUrlCustomParameters>
</ns0:extensions>
</ns0:extensionSetting>
</ns0:operand>
</ns0:operations>
</ns0:mutate>
</soap-env:Body>
</soap-env:Envelope>

Incoming response:
b'<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">\n <soap:Header>\n <ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/v201809">\n <requestId>0005adc74e2f839602ab45a76702deaf</requestId>\n <serviceName>CampaignExtensionSettingService</serviceName>\n <methodName>mutate</methodName>\n <operations>2</operations>\n <responseTime>477</responseTime>\n </ResponseHeader>\n </soap:Header>\n <soap:Body>\n <mutateResponse xmlns="https://adwords.google.com/api/adwords/cm/v201809">\n <rval>\n <ListReturnValue.Type>CampaignExtensionSettingReturnValue</ListReturnValue.Type>\n <value>\n <campaignId>10944344575</campaignId>\n <extensionType>APP</extensionType>\n <extensionSetting>\n <extensions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AppFeedItem">\n <feedId>196983671</feedId>\n <feedItemId>134203920171</feedItemId>\n <status>ENABLED</status>\n <feedType>APP</feedType>\n <ExtensionFeedItem.Type>AppFeedItem</ExtensionFeedItem.Type>\n <appStore>GOOGLE_PLAY</appStore>\n <appId>com.android.chrome</appId>\n <appLinkText>Download Now!!!</appLinkText>\n <appFinalUrls>\n <urls>https://play.google.com/store/apps/details?id=com.android.chrome</urls>\n </appFinalUrls>\n <appTrackingUrlTemplate>{lpurl}</appTrackingUrlTemplate>\n </extensions>\n <platformRestrictions>NONE</platformRestrictions>\n </extensionSetting>\n </value>\n </rval>\n </mutateResponse>\n </soap:Body>\n</soap:Envelope>\n'

Please, checkout a appTrackingUrlTemplate field. 
Empty value is sent but in response from API got {lpurl} value. But this still should be empty... 

Hope it helps!

Google Ads API Forum Advisor Prod

unread,
Aug 27, 2020, 7:12:31 PM8/27/20
to roman.bo...@starnavi.io, adwor...@googlegroups.com
Hello Roman,

That is a very interesting observation. Thankfully, that's not a bug. It's just the system trying to be helpful. In https://support.google.com/google-ads/answer/6305348, you'll see an explanation saying that {lpurl} is required if you are going to add a tracking template because there has to be a placeholder for a final URL. It's the system's friendly way of putting a placeholder in place for you so if you want to use a tracking template, then you'll need to keep the {lpurl} there. 

Best,
Nadine Wang, Google Ads API Team

ref:_00D1U1174p._5004Q23uoUs:ref

Roman Bondarenko

unread,
Aug 28, 2020, 5:15:58 AM8/28/20
to AdWords API and Google Ads API Forum
Hello.

Oh ... Thanks for your explanation!

Have a nice day!
Reply all
Reply to author
Forward
0 new messages