Hi,
when querying for campaign states sometimes invalid values are returned,
e.g. 6nabled instead of Enabled.
Is this a bug or a feature?
This happens for other types like e.g. keyword match type too.
The pattern seems to be, that the first character is replaced by a number.
--
--
Hi Josh,
we are downloading the XML-Reports with the Java
com.google.api.ads.adwords.lib.utils.v201409.ReportDownloader. I tried to
reproduce it today, but did not get this case. I will send you a XML file,
if this error happens again.
Markus
2015-02-11 20:04 GMT+01:00 Josh Radcliff (AdWords
Is it for sure that global uniqueness of ids (described in
https://developers.google.com/adwords/api/docs/guides/working-with-objects)
means
AdWords global? I read on Stackoverflow
Hi,
I try to use a predicate for SearchRankLostImpressionShare in my keyword
performance report. But for every predicate operator I try, I always get an
invalid predicate operator error.
How can I select keywords with SearchRankLostImpressionShare != null in
keyword performance reports?
--
Hi Josh,
thanks for your response, it pointed me to the right direction. We used
cached instance of XMLInputFactory concurrently which is not thread-safe
too. After fixing this, the problem did not occur anymore.
Thanks,
Markus
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also
I am doing an AD_PERFORMANCE_REPORT and try to add a predicate for "AdType"
(e.g. EQUALS "Text Ad"). But I always get a SelectorError
INVALID_PREDICATE_ENUM_VALUE. What are the valid enum values for "AdType"?
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and
Hello Joyce,
we had one experiment created with the AdWords UI. We deleted that now and
the job runs without an error. So we need to filter the campaign
performance report to not contain experiments. Anyway it would be nice, if
this error message gets documented.
Thanks,
Markus
--
--
Hello,
we are using the AdWords v201601 API via Java and recently got
a CampaignError.CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN. I am not able to find
this error in the AdWords Java libs nor on Google. Where does it come from
and what does it mean? What have I to change on the campaign to make this
Hi,
I successfully created an AccountLabel. But adding it to a ManagedCustomer
during creation (ADD) via ManagedCustomerService.mutate has no effect. The
ManagedCustomer is always created without the label assigned. Is using
mutateLabel after creating the ManagedCustomer the only possibility
I am currently migration from the MutateJobService to the BatchJobService
and cannot find job prerequisites in BatchJobService.
How can I declare job dependencies with the new BatchJobService?
Are jobs for the same account get sequentially executed with the new
BatchJobService instead?
--
--
Hello Vishal,
sure, I could merge my two jobs into one to ensure precedence.
But what I want to know is: How to ensure that a job has successfully been
executed before a second depending job gets executed (the purpose of the
prerequisites in the old MutateJobService)? Because jobs are limited
At least in the german documentation this still has not been documented yet.
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
Hi,
today everything works as expected. I don't know what went wrong yesterday.
Thanks,
Markus
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
Hi,
I am experiencing some strange behaviour of the campaign performance report
(include zero impressions == true).
When requesting all campaigns, base campaigns and trials are returned both
having "CampaignStatus" == "ENABLED".
When I add a predicate "CampaignStatus" EQUALS "ENABLED" the
Since around a week, we are experiencing "strange" behaviour of the keyword
performance report:
Some of the keywords have a "Base Ad group ID" of 0, unlike the "Base
Campaign ID" which is still set. These keywords are in finished tests.
Is this expected behaviour?
--
--
Hi Sreelakshmi,
> The BaseAdGroupId will have the AdGroupId of the base AdGroup if it is
trial and if it is a base AdGroup,
> it will have the same value for the AdGroupId and the BaseAdGroupId.
> In your report, there are three AdGroups which are having BaseAdGroupId
as 0 and all of them are
Hi,
prior to v201705 we used the column "AdGroupAdTrademarkDisapproved" of the
ad performance report to record our trademark violations.
Since v201705 I find no replacement for that.
Is "PolicySummary" maybe suitable for that?
If so: How can the complex type "AdGroupAdPolicySummary" be
Hi,
we are adding labels to our negatives (NegativeAdGroupCriterion) when
booking them since quite a while. Recently we added functionality to add
labels to already booked negatives.
Then we got some
AdGroupCriterionError.CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION errors and ask
ourselves
Hi Dannison,
I am not able to see that the "here" links says that labels are not
supported for negatives.
I do not see any difference to the documentation of
BiddableAdGroupCriterion, which supports labels.
Campaigns, ad groups, keywords, ads all support assigning labels to them
when creating
Hi Danisson,
sorry for bugging you again.
I noticed that labels on negatives ARE supported when creating a new
negative via the API, by setting the "labels" field of
"NegativeAdGroupCriterion".
So we ended up with a lot labels that we cannot manage (Because we label
all elements managed by
Hello,
the release note for the 201710 AdWords API says:
> Simplified and improved ad rotation settings are now available at the ad
group level via the adGroupRotationMode field. *Campaign-level rotation
settings in the adServingOptimizationStatus field are now read-only*.
Due to this we
Hi Dannison,
thanks for clarifying this. I was just a bit confused since the API
documentation
(https://developers.google.com/adwords/api/docs/reference/v201806/CampaignService.Campaign#adservingoptimizationstatus)
does not mention the fact, that the adServingOptimizationStatus is
read-only.
Hi Dannison,
I am a bit confused, because one of our customers got this answer from
their Google AdWords support:
> "Ad rotation setting is made available for Adgroups as well along with
campaigns from the v201710 version of AdWords API. They could use the
adServingOptimizationStatus field of
The current AdWords API references are not linked in the german "reference
index
page" https://developers.google.com/adwords/api/docs/reference/?hl=de.
The most current version mentioned there is 201702.
Please fix that, e.g. by linking to the english page.
Regards,
Markus
--
--
Hi Dannison,
what I am interested in most is, whether there is any way to add labels to
negatives via the API or not. The UI is not important for me.
Regards,
Markus
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
Hi Dannison,
I already read that guide (just the german version, because I found no
switch for the language) and there is no point about *updating* expanded
text ads, just the creation via the AdGroupAdService is mentioned.
My concern is that there are no details about *updating* expanded text
Hi Dannison,
thanks for clarify the required fields and update details.
But there is still no statement regarding whether the performance data are
kept under all circumstances.
Are the performance data still kept, if I update all fields or just if I
update only headlinePart1, headlinePart2,
Hello,
I tried to update the final URL of an existing expanded text ad by creating
a SET operation with just the ad id and the new final URL and passing it to
AdService.mutate.
But AdWords complains about a missing headlinePart1, headlinePart2 and
description.
With all other services I just
Hi Peter,
before we just created ads via the AdGroupAdServiceInterface.mutate(),
which supports partial failures. So the successful operations are executed
and the failed ones are reported.
Now we additionally update ads via AdServiceInterface.mutate(). I am not
sure how to reliably update
Hi,
I am updating many (10+) expanded text ads via
the AdServiceInterface.mutate() method.
Most requests are successful, but some always run in a socket timeout error.
I already tried to reduce the number of operations per request from 2000 to
500, but this did not solve the problem.
Are
Hello,
AdServiceInterface.mutate throws an ApiException for PolicyFindingErrors
instead of returning them as partial errors, though AdReturnValue supports
partial errors.
Are the operations without errors executed anyway or does an exception
always mean that all operations of the request have
We are using a test account for each of our customers for providing them an
additional "playground" system.
For that purposes we use a cell phone number to create these test accounts.
Recently I always get an error "telephone number used too often" when using
the cell phone number when creating
Hi Danica,
First thanks for the detailed response.
But I am still a bit confused: How am I supposed to use new features, if
they are not added to the production (AdWords) API?
Regards,
Markus
adsapiforumadvisor schrieb am Donnerstag, 16. Juli 2020 um 21:00:33 UTC+2:
> Hi Markus,
>
> Thank you
Since the Google Ads API is around for some time now, I got a few questions
about the migration:
Where do I find reliable information what and when to migrate to the Google
Ads API?
Which parts are considered "production ready"?
When will the AdWords API be deprecated?
Why is the AdWords API
Hi Xiaoming,
I am not using the BatchJobService for this purpose and it happened in
production with a regular account. I am using the
CampaignExtensionSettingServiceInterface.mutate() directly.
adsapiforumadvisor schrieb am Donnerstag, 29. Oktober 2020 um 21:41:12
UTC+1:
> Hi Markus,
>
>
Hello,
I got a size limit error, when creating many sitelinks with exactly 250
CampaignExtensionSettingOperations (officially documented limit):
SizeLimitError{apiErrorType=SizeLimitError,
errorString=SizeLimitError.REQUEST_SIZE_LIMIT_EXCEEDED, fieldPath=,
reason=REQUEST_SIZE_LIMIT_EXCEEDED,
Hi Aryeh,
BTW Why has MutateGoogleAdsResponse no request ID attribute like
SearchGoogleAdsStreamResponse?
Regards,
Markus
adsapi schrieb am Mittwoch, 20. Oktober 2021 um 19:55:52 UTC+2:
> Hi Markus,
>
> I work with Peter and will assist you. Thank you for giving us the steps
> to reproduce,
Hi Ernie,
Yes and no. I can grab the request id from the log. But to avoid log spam,
the log is usually turned off. So it would be nice to have a possibility to
get the request id programmatically from each response and exception. That
way I can automatically persist it and/or just log it.
I am trying to book sitelink assets / customer assets connected by
temporary ids via the GoogleAdsService.
Error case: I have 19 active sitelink assets / customer assets and several
already removed ones. When booking the 20th sitelink asset / customer asset
I get a limit exceeded error on
We tested the above scenario with the Google Ads frontend too and it shows
the same strange behavior.
Markus Heiden schrieb am Montag, 18. Oktober 2021 um 23:50:43 UTC+2:
> I am trying to book sitelink assets / customer assets connected by
> temporary ids via the GoogleAdsService.
>
Hi Peter,
The bug is also reproducible in the Google Ads frontend:
1) Create 20 sitelinks.
2) Remove 1 sitelink.
3) Add 1 new sitelink -> Limit exceeded error.
4) Press again on the add button -> OK. Sitelink shows up.
Best regards,
Markus
adsapi schrieb am Mittwoch, 20. Oktober 2021 um 04:00:33
Hi Ernie,
maybe you misunderstood me. There is a request id in the log. That was the
source of the request id I posted privately. I was just not able to find an
accessor for it in the Java lib response object.
Regards,
Markus
adsapi schrieb am Freitag, 22. Oktober 2021 um 12:55:55 UTC+2:
>
Hi,
I experienced some differences in the authentication between AdWords and
Google Ads API access using the Java libs.
We have a setup with
1) The main MCC account that gets authenticated.
2) Below that a MCC which we use as "clientCustomerId" /
"login-customer-id".
3) Below that a "normal"
Hi,
with the AdWords API it was possible to just add some custom tracking
parameters e.g. to groups. I am missing the equivalent to the "doReplace =
false" option of the AdWords API CustomParameters in the Google Ads API.
I am aware that I can retrieve the existing custom parameters, add my
Hi Peter,
did you receive my private message with the logs? Is there any progress on
this issue?
Regards,
Markus
adsapi schrieb am Montag, 25. Oktober 2021 um 03:33:56 UTC+2:
> Hi Markus,
>
> Thank you for your follow up.
>
> Please note that our API team would *need* the complete request
>
When I try to create a keyword plan ad group via the GoogleAdsService v10
API (with the Java SDK 17.0.1) I get a non-saying error message. What am I
doing wrong?
mutate_operation_responses {
keyword_plan_ad_group_result {
}
}
partial_failure_error {
code: 3
message: "The error code is
Hi Anthony,
I hope that it is possible to resolve this issue without the request and
response logs.
The query and the type of request are shown above.
The response is none as mentioned above.
With that information, I hope it should be possible to at least guess why
the Google Ads API v10 does
Hi,
we experience an EOS after almost exactly 1 hour for
SearchGoogleAdsStreamRequests (Java library) like
SELECT
ad_group.id,
ad_group_ad.ad.id,
ad_group_ad.status,
ad_group_ad.ad.responsive_search_ad.headlines,
ad_group_ad.ad.responsive_search_ad.descriptions,
The error type is LIMITED_LABELS_PER_TYPE_PER_CUSTOMER. Details will follow
via private mail.
adsapi schrieb am Mittwoch, 4. Mai 2022 um 15:11:24 UTC+2:
> Hi Markus,
>
> Thanks for reaching out. If you can *privately* provide the complete
> request and response logs, we can check exactly which
Hi,
we currently get an ResourceCountLimitExceededError.RESOURCE_LIMIT
(existing count = 764, limit = 200) when creating labels for a specific
customer.
This limit is not documented IMO. The closest match I found
was
Did you receive my private mail? The copy I received looks like I only sent
it to myself.
Markus Heiden schrieb am Freitag, 6. Mai 2022 um 19:17:01 UTC+2:
> The error type is LIMITED_LABELS_PER_TYPE_PER_CUSTOMER. Details will
> follow via private mail.
>
> adsapi schrieb am Mitt
I sent it via "reply to author". So the default subject "Re:
ResourceCountLimitExceededError for labels" should have been used. I will
send it again.
On Tuesday, May 10, 2022 at 4:25:47 AM UTC+2 adsapi wrote:
> Hi Markus,
>
> Thank you for getting back to us.
>
> Moving forward, could you
Hi Ernie,
one additional info: We opened the account in the Google Ads Editor. There
these RSAs are all displayed.
Regards,
Markus
adsapi schrieb am Donnerstag, 18. August 2022 um 10:35:30 UTC+2:
> Hi Markus,
>
> Thank you for the reply and providing information. Allow me to continue
> the
Hi,
we download RSAs programmatically with an `ad_group_ad` query.
I am unable to find some of the (enabled) RSAs returned by the query on the
Google Ads website.
In Google Ads, I selected the correct account to which these RSAs belong.
I selected "Ad status: All".
I filter for the Ad ID (with
Hello Aryeh,
the above problem arises for RSAs that are in the same ad group. Thus the
status of the campaign or ad group shouldn't be an issue.
The logs I will provide privately.
Regards,
Markus
adsapi schrieb am Mittwoch, 17. August 2022 um 21:24:40 UTC+2:
> Hi Markus,
>
> The Ads UI has
Hi,
we get an ASSET_ERROR / DUPLICATE_ASSET "Assets are duplicated across
operations." when creating an AdGroupAd / Ad / ResponsiveSearchAdInfo.
Please explain in a bit more detail what may cause the problem.
In this case, the headline at position 9 seems to be the problem. But
against what
Hello Darwin,
thanks for taking a second look.
I was pretty sure that we don't violate the 1 RPS limit because we use a
Guava rate limiter that should ensure that.
So maybe I'll try a little less than 1 RPS to avoid this kind of problem.
Thanks,
Markus
adsapi schrieb am Montag, 14. November
Hello,
I get errors that I interpret as calling a method
(KeywordPlanService#generateHistoricalMetrics) too concurrently. I wonder
where that limit is documented?
error_code {
quota_error: RESOURCE_EXHAUSTED
}
message: "Too many requests. Retry in 4 seconds."
details {
quota_error_details
Hello Yasar,
I already found that limit. But IMO I do not exceed the 1 QPS limit.
As the error message reads this is IMO not the 1 QPS limit that I hit but
the concurrency limit per service method.
I issue a query each second, even if the prior query has not finished yet.
If these requests
Hi,
I am using KeywordPlanIdeaService.generateKeywordIdeas() and sometimes
getting quota errors though I obey the 1 QPS rate limit. Furthermore the
quota error message says that I need to wait for 30 seconds. But there are
no corresponding QuotaErrorDetails (hasDetails() says false). So I am
Hi,
sorry for getting back to you again, but my main question is still
unanswered:
Why are there no QuotaErrorDetails in this case?
That would provide guidance about how long to wait. I cannot determine that
upfront in a distributed environment as you already pointed out.
In other words:
Hi,
thanks for pointing out that I hit the daily API operations limit. I didn't
expect that :-)
It would have been nice if there had been a reference to the daily limit in
the error.
Or does RESOURCE_EXHAUSTED always just relates to the daily limit? If so, I
misunderstood the description "too
Hi,
thanks for your explanation. I already read that, but I did not find what I
was searching for:
If there is no API call for retrieving that information (as you pointed
out), it would have been nice, if at least the day-in-month would be
documented from that the data is guaranteed to be
Hi,
I am using KeywordPlanIdeaService.generateKeywordIdeas(). If I set the date
range for the historical metrics (today: 3rd of May 2023) to the last month
(start and end: April 2023) I get an INVALID_VALUE:
Request
---
MethodName:
Hi,
the main (unanswered) question was:
Why do I get a rate limit error _without QuotaErrorDetails_?
IMO that makes automation hard, because it is required by the docs that I
have to wait the provided amount of time. I wouldn't like to resort to
parsing error messages to extract the retry
Hi,
I am aware of the fact that the data is not available yet.
But is there any documentation on when the data will be available exactly?
Or an API that provides that information?
Otherwise programmatic access would be a bit unreliable.
Best regards,
Markus
Google Ads API Forum Advisor schrieb
66 matches
Mail list logo