I get notice in my google analytics panel:
Too many URLs
The number of unique URLs for owner review All site data exceeds the daily limit. Excess data is displayed in the summary row (left) in the reports.
Google Analytics summarizes data when too many rows in a table in one day. When you send too many unique URLs, surplus value summary is displayed in a single line reports the value (left) for the URL. This severely slows down your ability to perform detailed analysis of the URL.
Too many URLs are usually the result of a combination of a number of unique URL parameters. To avoid surpassing the limitations, the typical solution could be the exclusion of irrelevant parameters from URLs. For example, open the section Administator> Settings ownership review and use the setting Excluding query parameters in the URL to exclude parameters such as sessionid and vision. If your site supports a site search, use the Search Settings sites to track the parameters related to the search while at the same time removes from URLs
How this will affect on my website ?
I not understand why i get this error and how to fix this ?
I check this what google suggest:
Administator> Settings ownership review and use the setting Excluding query parameters in the URL to exclude parameters such as sessionid and vision.
Can anyone explain me how to use this for fix problem ?
Thanks.
It does not affect your website, is affects the GA reports only.
The url for any pageview is stored in the "page" dimension. Google Analytics can display at maximum 50 000 distinct values for this dimension for the selected timeframe. In your case there are more than 50 000 values, so any excess pages will be grouped together in a row labeled "other".
Now it may be that you have more than 50 000 distinct urls in your website, but Google thinks that this is unlikely, so it suggests to check if you are "artifically" inflating the number of distinct values for the page dimensions.
A bad but simple example: Imagine you allow your users to choose their own background color for your site, and that the choice of color was transmitted in an query parameter. So you might have e.g.
index.php?bgcolor=#cc0000
index.php?bgcolor=#ee5500
index.php?bgcolor=#000000
....
Due to the query parameter these urls would show up as three different pages, i.e. three different rows in the Google Analytics reports, despite the fact that in all cases the same content is displayed (albeit with different background colors).
The proper strategy in this case would be to go to the admin section, view settings, and in the "ignore url parameters" box insert the bgcolor parameter (and all other parameters that do not change the content that is display). Now the parameter will be stripped from the url before the data is processed, and the pageview will be aggregated into a single row with index.php as single value for the page dimension (of course you have to insert your own query parameter names).
Related
I'm on migration from the old Google AdWords API to the new Google Ads API, using PHP-SDK by Google.
This is the use case, where I'm stuck:
I feed an amount of keywords (paginating them by keyword plans a 10k) to generateHistoricalMetrics($keywordPlanResource) and collect the results.
To do so I followed instructions at https://developers.google.com/google-ads/api/docs/keyword-planning/generate-historical-metrics and, especially, https://developers.google.com/google-ads/api/docs/keyword-planning/generate-historical-metrics#mapping_to_the_ui, with using of KeywordPlanAdGroupKeywords (with a single ad group) and avoiding to pass a specific date range for now, relying on the default value.
Further I had to apply some filters on my keywords because of KEYWORD_HAS_INVALID_CHARS and KEYWORD_TEXT_TOO_LONG, but all the errors which I'm aware of are gone now.
Now, I found out, that the KeywordPlanHistoricalMetrics object does not contain any keyword id (of the form customers//keywordPlanAdGroupKeywords/) So, I have to rely on the correct ordering. This is ok as it seems, that the original ordering of keywords is preserved within the results, as here https://developers.google.com/protocol-buffers/docs/encoding#optional
But still I have the problem, that
count($keywordPlanServiceClient->generateHistoricalMetrics($keywordPlanResource)->getMetrics()) is lower then count($passedKeywords), where each of $passedKeywords where passed to
new KeywordPlanAdGroupKeyword([
'text' => $passedKeyword,
'match_type' => KeywordMatchType::EXACT
'keyword_plan_ad_group' => $planAdGroupResource
]);
Q: So I have two questions here:
Why getMetrics() does not yield the same amount of results as the amount of passed keywords?
I'm struggling with debugging at this moment: Say, I want to know which keywords are let out. Either for providing more information at this place or just to skip them, and let my customer know, that these particular keywords were not queried. How to do this, when although I have a keyword id for every passed keyword I cannot match the returned metrics to them, because the KeywordPlanHistoricalMetrics object does not contain any keyword id.
Detail: While testing I found out, that the reducing of an amount of queried keywords reduces the amount of lost keyword data:
10k of queried keywords - 4,72% loss,
5k - 2,12%,
2,5k - 0,78%,
1,25k - 0,43%,
625 - 0,3%,
500 - 0,24%,
250 - 0,03%
200 - 0,03% of lost keywords.
But I can't imagine, that keywords should be queried one by one.
I am trying to scrape a website for financials of Indian companies as a side project & put it in Google Sheets using XPATH
Link: https://ticker.finology.in/company/AFFLE
I am able to extract data from elements that have a specific id like cash, net debt, etc. however I am stuck with extracting data for labels like Sales Growth.
tried
Copying the full xpath from console, //*[#id="mainContent_updAddRatios"]/div[13]/p/span - this works, however, i am reliable on the index of the div (13) and that may change for different companies, hence i am unable to automate it.
Please assist with a scalable solution
PS: I am a Product Manager with basic coding expertise as I was a developer few years ago.
At some point you need to "hardcode" something unless you have some other means of mapping the content of the page to your spreadsheet. In your example you appear to be targeting "Sales Growth" percentage. If you are not comfortable hardcoding the index of the div (13), you could identify it by the id of the "Sales Growth" label which is mainContent_lblSalesGrowthorCasa.
For example, change your
//*[#id="mainContent_updAddRatios"]/div[13]/p/span
to:
//*[#id = "mainContent_updAddRatios"]/div[.//span/#id = "mainContent_lblSalesGrowthorCasa"]/p/span
which is selecting the div based on the div containing a span with id="mainContent_lblSalesGrowthorCasa". Ultimately, whether you "hardcode" the exact index of the div or "hardcode" the ids of the nodes, you are still embedding assumptions regarding the structure of page.
Thanks #david, that helped.
Two questions
What if the structure of the page would change? Example: If the website decided to remove the p tag then would my sheet fail? How do we avoid failure in such cases?
Also, since every id is unique, the probability of that getting changed is lesser than the index being changed. Correct me, if I am wrong?
What do we do when the elements don't have an id like Profit Growth, RoE, RoCE etc
I am trying to build a Paginated report with many number of parameters [8] and with huge number values [100-1000] for each parameter. Because of the complexity in the UI, I intend to develop two reports.
Report [.pbix] where the user can select the parameters and values
The paginated report [.rdl] that's the actual result with pages of data.
The Report 1 will be calling the report 2, based on a generated URL. THis works for a limited number of parameters but since the list is huge, the reports are not generated because of the limitation on the URL length on the browser[chrome&IE]. I am looking for a solution that can work with an indefinite number of parameters. Trying to make this work with FORM and POST method so the parameters can be sent within the header itself.
Have looked into the https://community.powerbi.com/t5/Service/Paginated-Report-Using-URL-Parameters-and-Select-ALL/td-p/8... but the solution doesnt always work as the URL length is huge.
Is there a solution that can work with any number of parameters. preferably something that uses FORM/POST method. Open to any other suggestions - please let me know.
Regards,
Sasi.
Unfortunately I am sorry to inform you that according to Microsoft there are some strong limitations with transferring selected parameters when directing the user into Report Builder.
you can define no more than 10 filters conditions.
URL bytes length is very limited
For example, even if you use only one slicer, if the user selects 24 different values in that slicer it will break the URL toward Report Builder.
What is the exact Business Need? Either the business accept some strong limitations or you need to think of another implementation.
An example of possible limitation to propose the business is: Power BI passes only Year and Month to Report Builder, next, the user in Report Builder need to re-select the additional parameters.
I use the JSON data from a Google spreadsheet, for 2 mobile applications (iOS and Android). The same information can be outputted using HTML or XML, in this case I am using HTML so the information shown (from the spreadsheet) can be understood by everyone. The only logical way to do this is without Authentication (O’Auth) is through public URL Injects. Information about what I’m talking can be found here. In order to understand what I’m asking, you have to actually click the links and see for yourself. I do not know what to “call” some of the things I’m asking as Google’s documation is poor, no fault of my own.
In my app I have a search feature that queries the spreadsheet (USING A URL REQUEST) along the lines of this,
https://docs.google.com/spreadsheets/d/1yyHaR2wihF8gLf40k1jrPfzTZ9uKWJKRmFSB519X8Bc/gviz/tq?tqx=out:html&tq=select+A,B,C,D,E+where+(B+contains"Cat")&gid=0
I select my columns (A, B, C, D, and, E) and ask (Google) that only the rows where column B contains the word cat be return. Again I’m stressing the point that this is done via a URL address (inject being the proper term). I CANNOT use almost any function/formulas that would normally work within a spreadsheet like, ArrayFormula or ImportRange. In fact I only access to 10 language clauses (Read link from before). I have a rather well knowledge of spreadsheets and databases, and as the URL method of getting information from them is similar they are in NO way the same thing.
Now, I would like to point out this part within the URL
tq?tqx=out:html&tq=select+A,B,C,D,E+where+(B+contains"Cat")&gid=0
Type of output, HTML in this case
tqx=out:html
The start of query
&tq=
Select columns A-E
select+A,B,C,D,E
For returning specific information about Cat
where+(B+contains"Cat")
This is probably the most important part of my question. This is used for specifying what table (Tab) is being queried.
&gid=0
If the gid is changed from gid=0 to gid=181437435 the data returned is from the spreadsheets second table. Instead of having to make 2 requests to search both tables is there a way to do both in one request? (like combining the 2) <— THIS IS WHAT I’M ASKING.
There is a AND clause that I have tried all over the url
select+A,B,C,D,E+where+(B+contains%20"Cat")&gid=181437435+AND+select+A,B,C,D,E+where+(B+contains%20"Cat")&gid=0
I have even flipped the gid around and put in other places but it seems to only go by the last one (gid) in the url, and no matter what is done only 1 table is returned. Grouping is allowed by the way. If that doesn’t clear my question up then let me know where you’re lost. Also I would have posted more URLs for easy access but I am kind of on this 2 URL maximum program.
If I understand your requirement, indeed it is, with syntax like this for example:
=ArrayFormula(QUERY({Sheet1!A1:C4;Sheet2!B1:D4},"select * order by Col1 desc"))
The ; stacks one array above the other (, for side by side).
My confusions is with "URL Query Language" as what here is called Google Query Language (there is even the tag though IMO almost all those Qs belong on Web Applications - including this one, by my understanding!) is not confined to use with URLs.
In the example above the sheet references might be replaced with data import functions.
Is there any penalty on Google rankings for using two pages with the same title and/or meta-description? If so, what is the penalty?
Both pages are on the same domain. One page URL is example.com/abcd and the other page URL is example.com/uvwxyz. The H1 header for both pages is the same, and both have the same meta-description.
I don't think Google would punish this.
Think of YouTube (which is owned by Google): The content of the title element follows this schema: [user-contributed video title] - YouTube. The meta-description consists of the user-contributed video description.
Now, there are probably thousands of videos with the very same title ("My cute cat") and some of them could even have the same description ("See my cute cat").
However, if a website consists of many (or even only) pages with same title and meta-description, it gambles away the possibilty for a better ranking. But when all these pages really have different content, it won't be punished.
Title, Meta Description are among the signals which search engines uses to identify topic of the page and rank them in search results. Weight of Title is high in search rankings & both title/description are displayed in search results along with URL.
As you have mentioned content of both pages are different, than by
having duplicate title/description you are loosing some opportunity
of targeting different keywords for search rankings.
Having same title/description makes it difficult for both user as well as search
engines to identify & differentiate between them.
Even though there is no negative influence, but you are loosing on important signal (title) which can help in improving search ranking.
Some ref reading on title: http://www.searchenabler.com/blog/title-tag-optimization-tips-for-seo/
& duplicate content: http://www.searchenabler.com/blog/learn-seo-duplicate-content/
There is not a punishment per se' it just isn't best practice to use. Why will you have duplicate meta information? Is the information the same on each page? Does it need to be?