I have music that i can find using the text search api but I can't get it to be identified using the musicId-stream api . I have even tried to use the sample application to identify the song playing but just doesn't find it using the music-id functionality. Using the text search , i can find the song no problem.I have noticed also that in most of those cases, after 2 week or 3 weeks, I am able to identified the song. I have come across similar situation many times and I was wondering if it is an expected scenario and if that is the case, what is the expected time delay?
Thanks
Not all the songs available through a text search are available with music-id simply because we do not have the fingerprints for all the songs that are in our music database.
There is no general rules about how fast things are available in the music-id database. Most of the times we are able to ingest the tracks even before the song is officially released. It depends on how fast the labels are submitting those tracks to us. The range is around one month before and one month after the track is released to public. But there are more constraints influencing track ingestion, for example, charts, trends, popularity and more. Sometimes for some reasons we do not get the tracks directly and have to acquire them. And then there is the ingestion queue we have. We are ingesting tens of thousands of tracks per week.
Now if you feel that a track is missing that really should be in there, you can alsways make a query and contact us through our support page : https://www.gracenote.com/support/
Related
Good morning everybody,
I did a small research about it but I couldn't find anything really useful.
Let's suppose there is an Android game where each player can collect monsters. Collection occurs through a RNG (which is server-side), in this way:
the player "opens" a magic box.
a (supposed-to-be) random monster is added to his collection.
Every monster has its own rarity: there are Common ones, Uncommon ones or Rare ones. In principle, when a player opens a magic box he should have
~90% prob. of getting a common monster;
~9.5% prob. of getting an uncommon monster;
~0.5% prob. of getting a rare monster.
Let's say there are 600 common monsters, 130 uncommon monsters and 30 rare monsters.
In the described scenario, the probability of getting two identical consecutive monsters is very low. Since it happens very often (once, twice, thrice a day if someone opens dozens of magic boxes) I can draw two conclusions:
either the RNG is strongly rigged, which is indeed a possibility
or the game uses loot tables
Now, let's suppose that loot tables are indeed used. The game is technically free-to-play, but one of the many purchasable contents are the "Packs of magic boxes": each player can choose to buy a pack and open, let's say, 10, 20 or 40 boxes. Thus, a player cannot buy a specific monster but only the chance of getting it.
What if some (paying) player has a very lucky loot table while someone else (still paying) player has a very unlucky one? They both pay, they both should have the same opportunities in the game but this of course cannot occur.
Here it is my question: are loot tables still allowed when we deal with (yet random) purchasable content? Or..are there specific policies that rule how algorithms must work when the user spends real money?
I couldn't find anything about it, nor in the Developer Content Policy, nor in the Developer Distribution Agreement, nor in the Google Standard/Premier Terms.
================================
TLDR;: in many games we can buy ingame currency for real money, then we can use that currency to buy ingame "mystery boxes". For the Google Developer Policies, can those "mystery boxes" rely on loot tables?
================================
Thanks everyone,
Bob
I am writing an Android app for uni (semester project). The idea is to be able to compare music "taste" between nearby devices. Long story short it's somewhat similar to Last.fm, but the idea is to be able to do similar things but for nearby devices, and not people all around the world, just like being able to see what the person at the end of your bus is listening to (if they're using my app of course) - seeing the currently playing/last played song on your, preferably using the Android player's list of most played songs to get some sort of comparision, perhaps also somehow extracitng "Artists" from the default Android player. I have two general questions:
MAIN QUESTION Finding nearby devices & getting it's IDs. I don't need a huge range on that, Bluetooth would be enough for the needs of the project but the thing is most of the functionalities will be handled via database, all I need is finding nearby devices and getting the device's unique ID (as a String, preferably hashed from MAC and ANDROID_ID, since the latter doesn't guarantee it will be unique). What would be the optimal & fairly easy way to do it so that I can find the device and after clicking on it I'd get just the ID? I've figured almost everything else in the app out but I have honestly no idea how to approach this - even though it seems to do very little, but is also a key thing to make my app what it is.
SIDE QUESTION When it comes to the "Artists" tab in default player - is there a way to extract the list of all artists of the songs (and the amount of the songs by them) that I have on my phone? You can see the songs grouped by artists in the player, but I didn't find a way to do what I described. It's not a necessary feature I'd like to include in the app but it would definitely be great to just have like a general idea that someone has 7 songs by Metallica on their phone.
Thanks in advance for any help, espescially with the first issue, but I'll appreciate if someone has an idea how to achieve what I described in the side question as well!
We are building an app (iOS and Android). The core of the app will be a flash card interface where the user will see a question and then will need to give an appropriate answer. They have a timer and will be shown hints as time goes on.
We want to understand the following on a per question basis (there are potentially 100s of questions):
Which questions took longer to recall correctly (with and without hints)?
Which questions had the most errors (with and without hints)?
Which questions were skipped the most (with and without hints)?
What were the most common (wrong) answers for a question?
Of course, we are also going to be collecting number of installs, usage, churn, etc., but I figure that is pretty well covered by GA.
Also, we will be storing different information about the user themselves so they can track their progress. This is meant to help us understand how to tweak the flash card data later on so that it is better for the students.
It feels like we could potentially use goals within GA (end goal is to get the right answer), but I am not as familiar with them.
Would this be goals within Google Analytics? Or is Google Analytics not a good use for this type of thing? Is there something else we could use to collect/analyze this information or should we build it ourselves?
Google Analityc suppor custom variables. You can save custom data.
First I would just track every card event as unique pageView (card1234) with it's data.
You can also track events with data for every card.
Goal is more for tracking your app behaviour in general. Example:
Goal 1
for tracking wring answers - Make a goal with more that 100 wrong answer (for session or in general for day) - in this way you can track that your app has difficult question
Gola 2
Quick answer - Make goal with Event or pageView for card that has small duration (5 second for example). In this way you can check behaviour of whole app.
There are many other good analytics
Localitic
KiSSmetric payed one
Mixpanel - very good for tracking information about users and making segmentation reports
https://mixpanel.com/notifications/
County -Haven't try this one so can't say anything
Here you can find many others
Im currently using Flurry analytics it, more easy to integrate and simple to use.
http://www.flurry.com/flurry-analytics.html
http://www.google.com/analytics/ this is GA official web-page.
Edit: Documentation for developers: https://developers.google.com/analytics/
First sorry for my bad English : I'm French and I may make a few mistakes.
I created an app and I uploaded it last month on the Google Play store. You can find it here without problems : https://play.google.com/store/apps/details?id=com.malerbati.fourInAMine.
The problem is : my app is almost impossible to find with the search engine ! When I search "4 in a mine", my app name, in Google Play, it only appears at the 20th result !
Besides, the app didn't appear at the "Top news" when I uploaded it.
I remember that the last app I created counted 200 downloads 1 day after its release, obviously thanks to the "Top news" thing... whereas this app has only 65 downloads, 1 month after ! And when I look at the statistics, I see that 100% of the downloaders are French (my country), which means that ALL the persons who got my app found it with word of mouth ! That's quite inefficient...
Therefore, here are my questions : why the hell can't we see my app easily, like the others ? Did anyone else encounter the same problem ? I have some suppositions about the origin of the problem :
The last app I created was a big failure : 95% of the people uninstalled it, essentially because the game was too hard. Does Google Play search engine take this into account ?
I created my last app last year. There must be much more apps now. Is my app simply hidden by the (too) big number of other apps ?
My app is very smaller than the last one (only 300 ko, against 3 Mo). Is that taken in account too ?
Thank you in anticipation. I really want to know where the problem is.
Here are a few resources to help:
How Android Developers Can Thrive with Google Play
Maximize search potential in your app title: identify your most successful keywords and make sure to include them in your app title. In fact, this is so critical to success (potentially 80 to 100 places in your search ranking), that you should seriously consider removing your app name from your title and focus your description on the best keywords. Include the app name in the body of the app description – users will still be able to find it by name. Unlike iOS, the body description is searched under Google Play.
Use, but don’t overuse, keywords: try to use the best keywords at five times the body of your app description. This can affect search ranking from 10 to 20 places. Anything over five times has no additional benefit, so don’t overdo it.
Test your search parameters: the above recommendations are guidelines based on accumulated experience, but search results can vary based on many factors.
Steady efforts work best: Google Play’s ranking algorithm is tilted towards long term user acquisition – apps that acquire and retain satisfied users are rewarded with higher ranks. Advertising campaigns should be run over a longer term and sustained over two to three months, as opposed to the short bursts of activity often seen in the iOS market.
Use closed loop attribution and target long term users: since retained users have an important impact in ranking, use closed loop marketing to ensure you are identifying and utilizing ad sources that bring loyal users.
Don’t be afraid to experiment and test market your strategy with Android. You can apply these learnings to your iOS versions and reduce your costs and risks.
Google Play Optimization Secrets - 5 Helpful Tips
The second link contains more information that leans more towards marketing and sales strategy than practical steps.
Your application contains a number of very common words. Some of the most common, smallest little auxiliary words are probably discarded because they return a hit on everything.
If you put quotes around it, then Google Play will search for the whole sequence. When I search 4 in a mine then I basically don't see your app. When I search "4 in a mine", then your app is the only result.
I understand that this information doesn't really help you because, while it answers your question, you cannot control users' behavior. You would do better to make your title unique. That of course also makes it less descriptive and harder for users to remember. It's an unavoidable tradeoff.
Responding to your other questions:
I would be surprised if the success or failure of your other game had anything to do with the search relevance of this one. I could believe the uninstall rate affects the search relevance of the uninstalled title.
The huge number of new apps being published does mean that you want to get onto the virtuous cycle of installs quickly. So, the same day that you upload the app, get onto your social networks and tell all your friends and followers that you have a new game to try out. Make sure it works on most of the devices they are using. :-)
A listing page that describes your app well helps you get some collateral benefit from the "Users also viewed" lists for searches that lead to similar games. You gain a little more collateral benefit by publishing additional apps that appear under "More from developer". It may not be a big boost, but it is a feedback path -- probably the only one that you directly control.
I would be surprised if app size made any difference at all.
To sum up:
I think your problem is your title is composed entirely of either tiny words that get discarded, or common words that match lots of other games. You can easily locate your app by searching for the phrase all in one piece, but users won't do that. So work on combining unique terms that only you use, with descriptive terms that help the search engine determine your relevance in searches. And follow it up with some marketing.
I am looking to use one of the social networks in my Android program.
Most important for me is the ability to build a continuous leadership board in which players move up and down depending their wins/loses to others.
The idea is for players to challenge others head-to-head. The winner gains points and the loser loses points.
Equally important, I want this feature to include the possibility to "charge" the player game coins.
Scoreloop includes the possibility of challenges but they are there in order to win coins off other players. In other words, they are the means to the end.
In my case I need it to be the other way around. The "ends" is to be higher in the leadership board and the "means" are to play others with coins.
Scoreloop do have a continuos leadership board but it is not accessible from the program.
I tried looking at OpenFeint but their site is a real mess. It is impossible to understand from there exactly what is and isn't available.
I signed up and tried to add my program. I ended up adding it four times and cannot delete it!
Check out Swarm, which provides a similar feature set to the others you mentioned (Scoreloop, OpenFeint), but also specifically includes a virtual goods system (coins), that you could use to have users purchase challenge attempts (which sounds like what you're looking for). The docs are extremely well written, integration is a snap :)
Create a leaderboard using either OpenFeint or Scoreloop (we started off with Openfeint but quickly moved on to scoreloop - If you want the details, I'll be happy to explain our reasons).
Once its up, make sure its a leadarboard that allows overriding scores with worse scores.
Implement an ELO rating calculator. see: http://en.wikipedia.org/wiki/Elo_rating_system
Each player starts with a certain score (I use 1500, so that ratings will resemble the chess ratings range).
On a match end, you re-calculate each user's new Elo rating, and post it to the leaderboard.
You end up with a leaderboard that ranks each user according to their skill. i.e. the more they win, the higher their score is.
EDIT: per user request - her are some of the reasons that made us move to Scoreloop:
OF documentation looks like it was ported from iOS, and very badly so. For example, the docs gives an example of initializing OF in your Application class. This will cause their "Join / Don't like fun" full screen dialog appear out of the blue, when users are busy using other applications, as android will kill and re-create your application in the background as memory availability change.
ScoreLoop automatically creates a "userId" for the user, without them having to register / login. This allowed us to post user's highscores and display their highscores without having to bother the user for logging in.
Scoreloop have an "offline" mode, which makes it much more robust, efficient, accurate and easy to use.
In flaky network situations, OF login process took a very long time, and affected the game performance. (see #3 above).
OF does not allow you to fetch a score rank. If you want to get your user's rank, you have to fetch the complete leaderboard, cycle through it until you find your user's entry. This "solution" pretty much makes this option not-available.
Scoreloop provided us with grate support. I've opened several tickets, they all got answered promptly and professionally. These guys rock.
I wrote this code a while back, so there might have been other reasons which I forget.