- "suggestKeywordThemes" is different from the UI - 1 Update
- Radwords - 1 Update
- Can Someone help convert my R script to Python for getting GAQL queried data - 1 Update
- About audience segments - 2 Updates
- MetroCriteriaId - Geo Performance Report Issue - 2 Updates
- Adding Keywords to AdGroup via AdWords API is failing with OperationAccessDenied.ACTION_NOT_PERMITTED - 1 Update
- Update a campaign's daily budget - 1 Update
- IMAGE_AD Immutable or Mutable? - 1 Update
- Hide and Unhide Customer in MCC - 3 Updates
- Ability to "Cancel" client account - 4 Updates
- AuthenticationError.NOT_ADS_USER - 1 Update
- shopping_performance_view getSegments() - 1 Update
- [Google API v9] Create Custom audience using MutateOperation - 2 Updates
- How to get the Entire Campaign object when creating the campaign - 1 Update
- manager_link_error: INVALID_CHANGE - 1 Update
- Migration question about AssetSet based page feed - 1 Update
- UserList, Removing all UserData from a UserList - 1 Update
Chen Xiaowei <viviana...@gmail.com>: Jan 12 07:03PM -0800
Hi Team,
Thanks for continuing follow up my question,now we find the suggest
keywordtheme would be inaccurate. As my store is selling hoverboards and
socks,but the suggest keywordthemes are all furniture related.
My final_url is https://lupmall.com/
Thanks
在2022年1月10日星期一 UTC+8 17:40:45<adsapi> 写道:
J T <hartvil...@gmail.com>: Jan 12 07:03PM -0800
Google api team should provide us with an alternative or way to query data
from specific campaigns,ads without coding then. We have too many lines of
codes in AWQL which now you are making redundant. This is unfair and should
be able to access through a daily report without R or python
On Monday, January 10, 2022 at 12:53:14 AM UTC-5 adsapi wrote:
J T <hartvil...@gmail.com>: Jan 12 06:41PM -0800
Im trying to use rgoogleads but it keeps asking me for authentication. I
instead want to use python googleads library. Can someone please help me
convert the below script to python?
# LINES BELOW ARE FOR TROUBLESHOOTING AUTHENTICATION
#install.packages("RCurl")
#require(devtools)
#install_github('jburkhardt/RAdwords')
# Credentials set up at https://console.developers.google.com under
x...@gmail.com
# developer.token <-'xx'
# client.id <-"xx-xx.apps.googleusercontent.com"
# client.secret <-"xx"
library(rgoogleads)
gads_auth(email = 'h...@gmail.com')
gads_auth_configure(path = 'D:/ga_auth/app.json')
google_auth <- doAuth()
refreshToken(google_auth)
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem",
package = "RCurl")))
data2 <- gads_get_report(
resource = 'campaign',
fields = c('campaign.name',
'segments.date',
'metrics.clicks'),
date_from = "2021-01-08",
date_to = "2021-01-10",
customer_id = '801-xx-xxxx'
)
#--- DimAdWordsAd
------------------------------------------------------------------------------------------
SelectFields = c(
'AdGroupId','Date','CreativeFinalUrls','CreativeUrlCustomParameters','Description','Description1'
,'Description2','DisplayUrl','Headline','HeadlinePart1','HeadlinePart2','Path1','Path2','Id','Labels'
,'AdType','Status','DevicePreference','ImageAdUrl','ImageCreativeImageHeight','ImageCreativeImageWidth'
,'ImageCreativeName')
ReportName = "AD_PERFORMANCE_REPORT"
DimAdWordsAd <-
getAdwordsData(ReportName,SelectFields,adwordsStartDate,adwordsEndDate)
# Clean up the Final URL to match format in FINAL_URL_REPORT
DimAdWordsAd$FinalURL <-
substr(DimAdWordsAd$FinalURL,3,nchar(DimAdWordsAd$FinalURL)-2)
# Rename Columns
colnames(DimAdWordsAd)[1] <- "AdwordsAdGroupId"
colnames(DimAdWordsAd)[2] <- "Date"
colnames(DimAdWordsAd)[3] <- "FinalUrl"
colnames(DimAdWordsAd)[4] <- "CustomParameter"
colnames(DimAdWordsAd)[5] <- "Description"
colnames(DimAdWordsAd)[6] <- "DescriptionLine1"
colnames(DimAdWordsAd)[7] <- "DescriptionLine2"
colnames(DimAdWordsAd)[8] <- "DisplayUrl"
colnames(DimAdWordsAd)[9] <- "Headline"
colnames(DimAdWordsAd)[10] <- "Headline1"
colnames(DimAdWordsAd)[11] <- "Headline2"
colnames(DimAdWordsAd)[12] <- "Path1"
colnames(DimAdWordsAd)[13] <- "Path2"
colnames(DimAdWordsAd)[14] <- "AdwordsAdId"
colnames(DimAdWordsAd)[15] <- "Labels"
colnames(DimAdWordsAd)[16] <- "AdType"
colnames(DimAdWordsAd)[17] <- "AdState"
colnames(DimAdWordsAd)[18] <- "DevicePreference"
colnames(DimAdWordsAd)[19] <- "ImageAdUrl"
colnames(DimAdWordsAd)[20] <- "ImageAdHeight"
colnames(DimAdWordsAd)[21] <- "ImageAdWidth"
colnames(DimAdWordsAd)[22] <- "ImageAdName"
# Clean up the ImageAdUrl
DimAdWordsAd$ImageAdUrl <-
paste("https://tpc.googlesyndication.com/pageadimg/imgad?id=",DimAdWordsAd$ImageAdUrl)
# Get maxiumum date for each Ad. Use attributes from that date.
DimAdWordsAdUniqueKeys <- ddply(DimAdWordsAd, ~ AdwordsAdGroupId +
AdwordsAdId, summarize, max = max(Date))
colnames(DimAdWordsAdUniqueKeys)[3] <- "Date"
DimAdWordsAd <- merge(DimAdWordsAdUniqueKeys,DimAdWordsAd,
by=c("Date","AdwordsAdGroupId","AdwordsAdId"))
# Clean up missing data
DimAdWordsAd$FinalUrl[DimAdWordsAd$FinalUrl == ""] <- "Unknown"
DimAdWordsAd$CustomParameter[DimAdWordsAd$CustomParameter == " --"] <- NA
DimAdWordsAd$Description[DimAdWordsAd$Description == " --"] <- NA
DimAdWordsAd$DescriptionLine1[DimAdWordsAd$DescriptionLine1 == " --"] <- NA
DimAdWordsAd$DescriptionLine2[DimAdWordsAd$DescriptionLine2 == " --"] <- NA
DimAdWordsAd$DisplayUrl[DimAdWordsAd$DisplayUrl == " --"] <- NA
DimAdWordsAd$Headline[DimAdWordsAd$Headline == " --"] <- NA
DimAdWordsAd$Headline1[DimAdWordsAd$Headline1 == " --"] <- NA
DimAdWordsAd$Headline2[DimAdWordsAd$Headline2 == " --"] <- NA
DimAdWordsAd$Path1[DimAdWordsAd$Path1 == " --"] <- NA
DimAdWordsAd$Path2[DimAdWordsAd$Path2 == " --"] <- NA
DimAdWordsAd$Labels[DimAdWordsAd$Labels == " --"] <- NA
DimAdWordsAd$AdType[DimAdWordsAd$AdType == " --"] <- NA
DimAdWordsAd$AdState[DimAdWordsAd$AdState == " --"] <- NA
DimAdWordsAd$DevicePreference[DimAdWordsAd$DevicePreference == " --"] <- NA
DimAdWordsAd$ImageAdUrl[DimAdWordsAd$ImageAdUrl == " --"] <- NA
DimAdWordsAd$ImageAdUrl[DimAdWordsAd$ImageAdUrl ==
"https://tpc.googlesyndication.com/pageadimg/imgad?id= --"] <- NA
DimAdWordsAd$ImageAdHeight[DimAdWordsAd$ImageAdHeight == " --"] <- NA
DimAdWordsAd$ImageAdWidth[DimAdWordsAd$ImageAdWidth == " --"] <- NA
DimAdWordsAd$ImageAdName[DimAdWordsAd$ImageAdName == " --"] <- NA
# Replce platform codes with names
DimAdWordsAd$DevicePreference[DimAdWordsAd$DevicePreference == "30000"] <-
"Desktop"
DimAdWordsAd$DevicePreference[DimAdWordsAd$DevicePreference == "30001"] <-
"High End Mobile"
DimAdWordsAd$DevicePreference[DimAdWordsAd$DevicePreference == "30002"] <-
"Tablet"
# Drop date column
drops <- c("Date")
DimAdWordsAd <- DimAdWordsAd[ , !(names(DimAdWordsAd) %in% drops)]
# Get unique records
DimAdWordsAd <- unique(DimAdWordsAd)
# Write to file (over existing file)
DimAdWordsAdFile <- "DimAdWordsAd.csv"
file.exists(DimAdWordsAdFile) && file.remove(DimAdWordsAdFile)
write.csv(DimAdWordsAd, DimAdWordsAdFile, na = "", row.names = FALSE)
#--- DimAdWordsAdGroup
-------------------------------------------------------------------------------------
SelectFields = c(
'CampaignId','AdGroupId','AdGroupName','Date','AdGroupStatus')
ReportName = "ADGROUP_PERFORMANCE_REPORT"
DimAdWordsAdGroup <-
getAdwordsData(ReportName,SelectFields,adwordsStartDate,adwordsEndDate)
# Rename Columns
colnames(DimAdWordsAdGroup)[1] <- "AdwordsCampaignId"
colnames(DimAdWordsAdGroup)[2] <- "AdwordsAdGroupId"
colnames(DimAdWordsAdGroup)[3] <- "AdGroup"
colnames(DimAdWordsAdGroup)[4] <- "Date"
colnames(DimAdWordsAdGroup)[5] <- "AdGroupState"
# Get maxiumum date for each Ad. Use attributes from that date.
DimAdWordsAdGroupUniqueKeys <- ddply(DimAdWordsAdGroup, ~ AdwordsAdGroupId
+ AdwordsCampaignId, summarize, max = max(Date))
colnames(DimAdWordsAdGroupUniqueKeys)[3] <- "Date"
DimAdWordsAdGroup <- merge(DimAdWordsAdGroupUniqueKeys,DimAdWordsAdGroup,
by=c("Date","AdwordsAdGroupId","AdwordsCampaignId"))
# Drop Date column
drops <- c("Date")
DimAdWordsAdGroup <- DimAdWordsAdGroup[ , !(names(DimAdWordsAdGroup) %in%
drops)]
# Get unique AdGroupID and AdGroupName. Should already be unique. But just
in case.
DimAdWordsAdGroup <- unique(DimAdWordsAdGroup)
# Write to file (over existing file)
DimAdWordsAdGroupFile <- "DimAdWordsAdGroup.csv"
file.exists(DimAdWordsAdGroupFile) && file.remove(DimAdWordsAdGroupFile)
write.csv(DimAdWordsAdGroup,DimAdWordsAdGroupFile, na = "", row.names =
FALSE)
refreshToken(google_auth)
Google Ads API Forum Advisor <ads...@forumsupport.google>: Jan 12 06:08PM
Hi Michael,
Thanks for reaching out. Can you please provide a bit more detail about your request? If you are referring to a feature in the UI, can you please provide us with a screenshot for reference?
Thanks,
Matt
Google Ads API Team
Matt
Google Ads API Team
ref:_00D1U1174p._5004Q2UjBWX:ref
Michael Liu <michl...@gmail.com>: Jan 12 05:13PM -0800
Can I get the segment list through the API like the attached image?
adsapi 在 2022年1月13日 星期四上午2:08:34 [UTC+8] 的信中寫道:
Jayant Meshram <jayant....@kpipartners.com>: Jan 12 06:04AM -0800
Hello,
I am using google ads api and downloading GEO performance report.
I am downloading data from geographic_view as suggested in google ads
documents.
In column metroCriteriaId I am getting kind of these values -
geoTargetConstants/200522 which is fine.But I need metro location name
corresponding to this IDs.
How can I get names.. please suggest.
Thanks
Jayant Meshram
Google Ads API Forum Advisor <ads...@forumsupport.google>: Jan 13 01:07AM
Hi Jayant,
Thank you for raising your concern.
You will need to make another report using the geo_target_constant and including the geo_target_constant.name to get the information that you are looking for.
Let me know if you have further questions.
Regards,
Ernie John Blanca Tacata
Google Ads API Team
ref:_00D1U1174p._5004Q2UjF1w:ref
Dean Povey <dean....@ppcsamurai.com>: Jan 12 04:35PM -0800
Since December 13, 2021 we have started getting this error for a client. We
are attempting to add BiddableAdCriterion for Keywords via the AdWords
API. The exception returned is below. Any ideas on what could have caused
this problem? The manager account seems to have access and we are able to
make changes via the Google Ads web app.
ApiException: [OperationAccessDenied.ACTION_NOT_PERMITTED @ class
com.google.ads.api.serviceimpls.job.batch.MutateAction]
(OperationAccessDenied{apiErrorType=OperationAccessDenied,
errorString=OperationAccessDenied.ACTION_NOT_PERMITTED, fieldPath=,
reason=ACTION_NOT_PERMITTED, trigger=})
com.google.api.ads.adwords.axis.v201809.cm.ApiException: at
jdk.internal.reflect.GeneratedConstructorAccessor757.newInstance(Unknown
Source) at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.lang.Class.newInstance(Class.java:584) at
org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:104)
at
org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:90)
at
com.google.api.ads.adwords.axis.v201809.cm.ApiException.getDeserializer(ApiException.java:165)
at jdk.internal.reflect.GeneratedMethodAccessor1818.invoke(Unknown Source)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154)
at
org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84)
at
org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464)
at
org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547)
at
org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157)
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
Source) at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source) at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at
org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at
org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at
org.apache.axis.Message.getSOAPEnvelope(Message.java:435) at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) at
org.apache.axis.client.Call.invokeEngine(Call.java:2784) at
org.apache.axis.client.Call.invoke(Call.java:2767) at
org.apache.axis.client.Call.invoke(Call.java:2443) at
org.apache.axis.client.Call.invoke(Call.java:2366) at
org.apache.axis.client.Call.invoke(Call.java:1812) at
com.google.api.ads.adwords.axis.v201809.cm.BatchJobServiceSoapBindingStub.mutate(BatchJobServiceSoapBindingStub.java:739)
at jdk.internal.reflect.GeneratedMethodAccessor7070.invoke(Unknown Source)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
com.google.api.ads.common.lib.soap.SoapClientHandler.invoke(SoapClientHandler.java:100)
at
com.google.api.ads.common.lib.soap.axis.AxisHandler.invokeSoapCall(AxisHandler.java:234)
at
com.google.api.ads.common.lib.soap.SoapServiceClient.callSoapClient(SoapServiceClient.java:63)
at
com.google.api.ads.common.lib.soap.SoapServiceClient.invoke(SoapServiceClient.java:93)
Google Ads API Forum Advisor <ads...@forumsupport.google>: Jan 12 10:45PM
Hello Michael,
Thanks for reaching out to the Google Ads API support. The Ads API documentation does not have an example that provides budget reset logic. Please refer to the existing-campaign documentation on how to update your daily campaign budget with this CampaignOperation.update operation.
Please let us know if you have any follow-up questions.
Best regards,
Jakeia Sabrina
Google Ads API Team
ref:_00D1U1174p._5004Q2UjCep:ref
"Pete Lavetsky (AdWords API Guru)" <pete.l...@gmail.com>: Jan 12 01:52PM -0800
Hi all,
This question boils down to: "Are final urls of Image Ads mutable?"
According to this documentation it says that Image Ads are mutable
: https://developers.google.com/google-ads/api/docs/ads/ad-types#description_of_each_ad_type
However here it says that ImageAdInfo is immutable
: https://developers.google.com/google-ads/api/reference/rpc/v9/Ad
We're not attempting to mutate the data of the Image Ad, just the Final URL
of the Ad.
Here is the full request and response with some customer sensitive data
removed.
The request id is : bcB1aFU7Q_KMLaQZWRXmFQ
Request
-------
MethodName: google.ads.googleads.v9.services.AdService/MutateAds
Endpoint: googleads.googleapis.com:443
Headers: {developer-token=REDACTED, login-customer-id=ABC,
x-goog-api-client=gl-java/11.0.13 gccl/16.0.2 gapic/16.0.2 gax/2.5.0
grpc/1.40.1}
Body: customer_id: "XYZ"
operations {
update {
type: IMAGE_AD
resource_name: "customers/ABC/ads/573016978749"
id: 573016978749
final_urls: "https://www.eample.com/"
}
update_mask {
paths: "resource_name"
paths: "id"
paths: "final_urls"
paths: "type"
}
}
Response
--------
Headers:
Metadata(content-type=application/grpc,request-id=bcB1aFU7Q_KMLaQZWRXmFQ,date=Wed,
12 Jan 2022 21:40:09 GMT,alt-svc=h3=":443"; ma=2592000,h3-29=":443";
ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443";
ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43")
Body: null
Failure message: errors {
error_code {
ad_error: CANNOT_MODIFY_AD
}
message: "Cannot modify an ad."
trigger {
string_value: ""
}
location {
field_path_elements {
field_name: "operations"
index: 0
}
field_path_elements {
field_name: "update"
}
field_path_elements {
field_name: "resource_name"
}
}
}
request_id: "bcB1aFU7Q_KMLaQZWRXmFQ"
Thanks
Pete
Fred Lovine <fr...@99calls.com>: Jan 12 05:56AM -0800
Hi,
We are receiving an error when trying to hide / unhide a customer account
in our MCC. It's not clear if the problem is with our code, or with the API.
*Here is the error:*
Google\ApiCore\ApiException : {
"message": "Request contains an invalid argument.",
"code": 3,
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": 0,
"data":
"type.googleapis.com\/google.ads.googleads.v8.errors.GoogleAdsFailure"
},
{
"@type": 0,
"data": [
{
"errorCode": {
"managerLinkError": "INVALID_CHANGE"
},
"message": "The change for mutate link is invalid.",
"location": {
"fieldPathElements": [
{
"fieldName": "operation"
}
]
}
}
]
},
{
"@type": 0,
"data": "X8YUUXFTJaeUFnYsAY_6sw"
}
]
}
*Here is the php code (using Google Ads php client library):*
public function hideUnhideAccount(bool $hide )
{
$origCustomerClientLink = $this->getCustomerClientLink();
$customerClientLink = new CustomerClientLink();
$customerClientLink->setResourceName($origCustomerClientLink->getResourceName());
$customerClientLink->setHidden($hide);
$customerClientLinkOperation = new CustomerClientLinkOperation();
$customerClientLinkOperation->setUpdate($customerClientLink);
$customerClientLinkOperation->setUpdateMask(FieldMasks::allSetFieldsOf
($customerClientLink));
$customerClientLinkServiceClient =
$this->client->getCustomerClientLinkServiceClient();
$customerClientLinkServiceClient->mutateCustomerClientLink(
$this->managerCustomerId,
$customerClientLinkOperation
);
}
Fred Lovine <fr...@99calls.com>: Jan 12 09:50AM -0800
It appears this operation works for Admin level users, but fails for
Standard level. It would be helpful if the error message conveyed this.
On Wednesday, January 12, 2022 at 8:56:35 AM UTC-5 Fred Lovine wrote:
Google Ads API Forum Advisor <ads...@forumsupport.google>: Jan 12 08:59PM
Hi Fred,
Thanks for reaching out. I will relay your suggestion for more descriptive error messaging here. The Ads API follows the same user access privileges laid out here.
Regards,
Matt
Google Ads API Team
Matt
Google Ads API Team
ref:_00D1U1174p._5004Q2UjF5E:ref
"Matías Dell'Oso" <matid...@gmail.com>: Jan 12 05:50AM -0800
Hello, I would like to know if the limit of 85000 account limit apply for
canceled and closed account too. We have integration tests that create
customers and I want to know if we are going to reach that limit
eventually.
Thanks in advance,
Matías.
El lunes, 20 de diciembre de 2021 a las 11:42:31 UTC-3, adsapi escribió:
Google Ads API Forum Advisor <ads...@forumsupport.google>: Jan 12 06:17PM
Hi Matías,
As mentioned here, this limit applies to inactive accounts as well. If you have any more general questions about account limits, please reach out to product support.
Regards,
Matt
Google Ads API Team
Matt
Google Ads API Team
ref:_00D1U1174p._5004Q2TNgor:ref
"Matías Dell'Oso" <matid...@gmail.com>: Jan 12 10:19AM -0800
Hi Matt, thank you for the response. What about closed account? I have this
"Account status: This account is closed and cannot be reactivated."
El miércoles, 12 de enero de 2022 a las 15:17:21 UTC-3, adsapi escribió:
"Matías Dell'Oso" <matid...@gmail.com>: Jan 12 12:53PM -0800
Sorry I didn't see the link. Ok, thanks. This is solved
El miércoles, 12 de enero de 2022 a las 15:19:41 UTC-3, Matías Dell'Oso
escribió:
FPAI Dev <fpai.de...@gmail.com>: Jan 12 11:59AM -0800
Hi,
We are using a third party tool to connect to Google Ads and create the
audience on Google Ads Manager account. But we are getting the
authentication error. The user who created all tokens required to connect
api has admin access to the Business manager account and the Ads account as
well.
We also tried to use curl to check the authentication.
We have followed all steps mentioned
in https://developers.google.com/google-ads/api/docs/oauth/playground.
Here is the curl snippet that we used:
curl \
-d code= %auth_code_from_playground% \
-d client_id=%client_id% \
-d client_secret=%client_secret% \
-d redirect_uri=https://developers.google.com/oauthplayground \
-d grant_type=authorization_code
https://accounts.google.com/o/oauth2/token
We get an error:
{
"error": "invalid_grant",
"error_description": "Bad Request"
}
The app we created on google cloud console is of type web client and not
the native app. Please let us know if you need any more info.
Thanks
John <john...@shoptimised.com>: Jan 12 10:31AM -0800
Hi,
I'm trying to get the shopping_performance_view report to return the same
data that I used to get with the SHOPPING_PERFORMANCE_REPORT in the old API
but I'm not able to have getSegments() return anything for extracting the
product_item_id
I'm passing the following query
SELECT campaign.id, metrics.clicks, metrics.cost_micros,
segments.product_item_id, metrics.conversions, metrics.impressions,
metrics.search_impression_share, metrics.conversions_value FROM
shopping_performance_view WHERE segments.date BETWEEN '20211212' AND
'20220111'
In this example $segments return null whereas $metrics returns all the
methods I need to extract data from it.
foreach ($stream->iterateAllElements() as $googleAdsRow) {
$metrics = $googleAdsRow->getMetrics();
$segments = $googleAdsRow->getSegments();
}
I assume I'm missing something obvious. Can someone please point me in the
right direction so that I can get the product_item_id along with all the
associated metrics?
Thanks,
Aistis <aistis.ce...@gmail.com>: Jan 12 05:17AM -0800
Hi,
Is it possible to create/update Custom Audience using *MutateOperation*
(https://developers.google.com/google-ads/api/reference/rpc/v9/MutateOperation).
At the moment i see in example code
(https://developers.google.com/google-ads/api/docs/remarketing/audience-types/custom-audiences)
it uses *CustomAudienceServiceClient *(this is not very good approach for
me, since currently my whole system is built on MutateOperation).
And if it's not possible maybe you guys have a plan to implement this? if
yes than when?
Google Ads API Forum Advisor <ads...@forumsupport.google>: Jan 12 05:54PM
Hi Aistis,
Thanks for reaching out. As the CustomAudienceOperation is not listed in the MutateOperation operation field you linked, it is not currently supported in the Ads API. However, please allow me to make a feature request on your behalf. Relevant updates will be posted on the release notes.
Regards,
Matt
Google Ads API Team
Matt
Google Ads API Team
ref:_00D1U1174p._5004Q2UjESv:ref
Google Ads API Forum Advisor <ads...@forumsupport.google>: Jan 12 05:35PM
Hi Wayne,
You can make a MutateCampaignsRequest and set the response_content_type field to MUTABLE_RESOURCE. This determines whether the mutable resource or just the resource name should be returned post mutation. Please see this example of its usage.
Alternatively, if you have the resource name just need the campaign ID, you can simply strip that last parameter from the resource name, customers/{customer_id}/campaigns/{campaign_id}.
Regards,
Matt
Google Ads API Team
Matt
Google Ads API Team
ref:_00D1U1174p._5004Q2UinQf:ref
"Kateřina Henzlová" <katerina...@roihunter.com>: Jan 12 08:26AM -0800
Hi there!
We have implemented linking to the manager account according to this guide
<https://developers.google.com/google-ads/api/docs/account-management/linking-manager-accounts#services> and
it works just fine for most of our clients. However, sometimes, when trying
to accept the pending link, this error is returned:
*Failure message: errors { error_code { manager_link_error:
INVALID_CHANGE } message: "The change for mutate link is invalid."
location { field_path_elements { field_name: "operations"
index: 0 } }}*
It only happens to certain clients and the error is persistent. Do you have
any insights on what the cause of this error could be? I will be happy to
share an example privately if needed.
Thanks,
Katerina Henzlova
任Robin <rxb.w...@gmail.com>: Jan 12 08:15AM -0800
Hi Google Team,
I'm currently trying to do asset based page feeds migration. I've followed
this document :
https://developers.google.com/google-ads/api/docs/dynamic-search-ads/dsa-page-feeds
and created assets, assetSet, and joined them through assetSetAsset.
I have two questions to ask :
1. Is duplicate AssetSetName possible for AssetSet ?
2. Is duplicate value possible between old FeedName and AssetSetName, also
FeedId and AssetSetId ?
3. In Hybrid serving , would Feed and AssetSet with same attributes
affect normal function?
Thanks
Matan Shavit <matan....@appsflyer.com>: Jan 12 07:31AM -0800
Hello, Im using the UserData .setCreate and .setRemove to create add/remove
operations to my UserList, I want to be able to delete all UserData from
the UserList.
Using Adwords API I used MutateMembersOperand, operand .setRemoveAll
(true).
What is the correct way to do it in GoogleAds API?
Im using the UserDataService to add/remove UserData.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to adwords-api...@googlegroups.com.