I'm attempting to collect channel reports for a specific set of YouTube channels. I’m able to do this successfully for most (if not all) of the channels I’m interested in except one. All requests in the request flow to collect channel reports are successful with the only indication of an undesired result being that the reports for this problem channel only contain headers for the metrics and dimensions.
At present, I’m only interested in three channel reports, namely channel_basic_a2, channel_province_a2, and channel_demographics_a1. Here are the sample report urls for each report type that I was expecting to return a report that contains data.
channel_basic_a2 report url:
https://youtubereporting.googleapis.com/v1/media/CHANNEL/Vuk4_JY-UdgIDI5Fib445g/jobs/bd2e6b26-904f-4ad0-9aff-3df14993262e/reports/2323462937?alt=media
channel_province_a2 report url: https://youtubereporting.googleapis.com/v1/media/CHANNEL/Vuk4_JY-UdgIDI5Fib445g/jobs/08f7eec7-f2f7-4060-9b26-9ba9965d5b91/reports/2323288791
channel_demographics_a1 report url: https://youtubereporting.googleapis.com/v1/media/CHANNEL/Vuk4_JY-UdgIDI5Fib445g/jobs/0affb5ff-e795-431c-8d66-4be05fab3b28/reports/2323564263
After taking a deeper look, I discovered that this is a case of mistaken identity. I was pulling data from a different channel (one that is actually empty) than I intended to.
Related
So I'm using Home Assistant to launch an automation that retrieves the newest videoId that a channel has uploaded, so I can use my google home to play it(on a Roku TV), works fine, I am working on creating an automation that also does a GET request but for now, I am using the home assistant rest sensor that updates by performing a GET after a set number of seconds, for some reason though there are only 3 sensors polled every minute or so it seems they use around 100-500 quota(hitting my quota of 10,000 after only a few hours or less), I'm not sure if this is a home assistant problem or if I am not using the api correctly(I only need the videoId), ill link my url below:
https://www.googleapis.com/youtube/v3/search?key=API_KEY&part=id&order=date&maxResults=1
Expected 1-3 quota usage per GET, getting 100+ quota usage per GET.
Querying the Search Endpoint is more expensive than querying the PlaylistItems endpoint for the given user's uploads playlist. Depending on usage patterns, the default quotas may put rather tight limits on the number of calls an user is allowed to make on various endpoints of the API.
Adapting my answer to a different question, I suggest you to do the following instead: call PlaylistItems endpoint, passing to it as playlistId parameter the given channel's uploads playlist ID.
A given channel's uploads playlist ID is obtained upon querying the channel's own endpoint. The needed ID is to be found at .items.contentDetails.relatedPlaylists.uploads. Usually, an channel ID and its corresponding uploads playlist ID are related by s/^UC([0-9a-zA-Z_-]{22})$/UU\1/.
Note that you should query the Channels endpoint only once, then use the returned uploads playlist ID as many times as you need.
Also note that you may experiment using the fields parameter applied to your queries, as to get from the API partial resources only. However, I'm predicting that (I may well be wrong, since did not tested it) the cost of 3 points for querying PlaylistItems for its contentDetails object cannot be improved.
Here is a prototype URL:
https://www.googleapis.com/youtube/v3/playlistItems?key=APP_KEY&part=contentDetails&fields=items/contentDetails/videoId&maxResults=1&playlistId=PLAYLIST_ID
I'm trying to import reviews for certain apps on the iTunes App Store via the public reviews RSS feed. Most of the time the feed returns a list of 50 reviews per page, and gives me links for up to 10 pages. But in the case of some apps, some or all of those pages have 0 reviews, and I can't tell why.
At the time of this writing, the feed for Instagram (link below) returns no reviews, despite reporting that there's 10 pages of reviews available.
https://itunes.apple.com/us/rss/customerreviews/page=1/id=389801252/sortBy=mostrecent/xml
Even more confusing, I noticed last night that page 2 had 50 reviews but none of the other pages had any. This morning, page 2 is empty again.
If I remove the sortBy=mostrecent portion of the URL above, I actually do get 50 results back, but none of the other pages have any results.
Finally, it appears as if the JSON version of this page (link below) actually returns results better than the XML version. Unfortunately, the JSON version leaves off the date of the review in the data so I can't use it.
https://itunes.apple.com/us/rss/customerreviews/page=1/id=389801252/sortBy=mostrecent/json
Can anyone explain this? Is Apple's XML feed API just extremely unreliable? Am I forming a bad URL?
While this answer isn't very satisfying, it's the best I could work out after many trials. It appears as if the XML feed is really fallible and shouldn't be used for real-world usage. Furthermore, when using the public JSON feed, certain fields such as review date are missing. Neither feed reports developer response.
It's also clear that Apple doesn't use these feeds for iTunes (desktop) or App Store (iOS). I ultimately reverse-engineered the way iTunes requests review data and figured out that making a request the same way, making sure to match their User Agent and version, would return the data I needed. These requests seem to be rate-limited to a certain extent and the data comes as a mix of HTML and JSON that requires a lot of parsing. Furthermore, because they're private calls, Apple could easily shut the door at any moment.
I am a beginner to Omniture/adobe web analytics. I want to know the some information like
How can we track data coming into Omniture?
How do we know if the tags are firing as expected?
I installed Omnibug extension and can track what are the parameters and their values being sent to Omniture, but not sure how can we track data in Omniture that was being sent.
Also, I tried to find unique visitors, visits, pageviews based on pageName. Is it possible to filter unique visitors based on pageName? If yes, can anyone guide me by providing list of instructions
Thanks
What you need to do to truly verify that the expected data is landing in Adobe Analytics is look at the Click Stream feeds and map the results against the data you expect to be there. https://marketing.adobe.com/resources/help/en_US/sc/clickstream/
It is not trivial, but is the deepest way of verifying the final result of page code, data collection, processing rules, vista and finally pre/post results.
Looking at the YouTube API v3 Search documentation, it states that the order parameter is used to control ordering of API response resource results. However, when attempting to order by date, I'm not receiving the results in reverse chronological order as specified. In fact, they are not in any order whatsoever.
API Request with order date using API Explorer UI:
Is there some other way I should be requesting for results to be ordered by the time they were published on YouTube? Is there a bug in the handling of the order API parameter?
There's no bug; the 'order' parameter will sort results based on when the resources were created, This value may be slightly different than when a video is published, as a resource is created when an upload begins but a video is published when the upload finishes and is processed.
In this case, it looks like the 10 or so most recent videos were all uploaded at the exact same time (YouTube.com has a batch uploader), so you're getting the order they were created in, even though the published dates reflect minor differences (maybe a couple took a bit longer to upload or something). IF you scan the full list of results, though, you'll see they play out just fine in terms of their reverse chronological order. And generally you probably won't have so many videos that were batch uploaded like this.
When querying the YouTube Analytics API for demographics for a channel for a 1 day range (metric:viewerPercentage, dimensions:ageGroup,gender) in some cases no rows are returned. The api IS returning views for that day however.
2 reasons for this come to mind:
1. The data is not available yet because it is still being processed.
2. There is no known demographics for that (i.e. the gender and age of the user are not known)?
Am I safe to assume it's not (1) in this case because a query for views did return results? If I can't assume on then is it true that there's no difference in the response/results between "not processed" and "processed but all users are of unknown demographics?"
In other words if, when (2) were the case, the API would return a row with all zero's 0 for each demographic, that would enable us to interpret things correctly (but I'm pretty sure that's not how API queries with a dimension work).
Thanks for any guidance!
I can't provide any hard-and-fast guidance about the YouTube Analytics data processing pipeline, i.e. whether the demographic data will always be available at exactly the same time that the view count data is available in a report.
To get a more authoritative answer about this sort of specific question, I'd recommend going to the YouTube Analytics web interface (http://youtube.com/analytics) and try running an identical report from there. The web interface normally gives you some warning if you're requesting a report that relies on data that isn't yet available.