azure notification hub tag limits - azure-mobile-services

reading the pricing details
http://azure.microsoft.com/en-us/pricing/details/notification-hubs/
there seems to be a limit of number of tags used in a push.
Broadcast (tag size) Limited to 10K Limited to 10K Unlimited
# of tags (broadcast groups) Limited to 3K Limited to 3K 3 Unlimited
Q1. so does that mean max tags per push is 10K? assuming that there is only 1 tag per device.
Q2. is the number of tags stored unlimited?
essential i need to map a tag to device id. And then send a bunch of tags in a send.
sounds straight forward, but i cant determine of there is a limit.
any help appreciated.
thanks
-lp

Broadcast (tag size) - Limited to 10K means that number of devices with same tag is limited by 10K. Example:
You have application which sends advertising according food preferences,
At some point you decide to send a message to all pizza-lovers and you are going to use tag 'pizza' to do it,
If your hub has more than 10K registrations with tag 'pizza', then send call will be failed by the Notification Hub
number of tags (broadcast groups) Limited to 3K means that you could not have more than 3K different foods for the example above ('pizza', 'pasta', 'sushi'...)
!!!Important notice!!! Tags with five or fewer devices do not accrue to the tag limit. It means that you potentially can build an application where each device has unique tag (user id or email or something similar) and that tag may be used to send a message to particular device. It is what is sometimes called 'Inbox scenario'. And Notification Hub is not going to enforce 3K limit for that case.
Update: Notification Hub is not going to enforce any limitations described above. Official documentation was updated as well. So as of now only restriction is 60 tags per single registration/installation.
However, number of devices registered should not exceed 500 for Free tier namespace, 200K for Basic, and 10M for Standard. Contact customer support to accommodate more than 10M devices.

An update here that we have eliminated the tag limits. Please see https://azure.microsoft.com/en-us/pricing/details/notification-hubs/ for updated information.

A fresh answer for Q1, which I got after sending an email to Azure's PM for Notification Hubs:
Tag expressions can contain all Boolean operators, such as AND (&&),
OR (||), and NOT (!). They can also contain parentheses. Tag
expressions are limited to 20 tags if they contain only ORs; otherwise
they are limited to 6 tags.
See "Tag Expressions" on this page.
Since I was asking about sending an array of tags, the Azure agent added:
When you feed us an array, we pretty much just go and build an expression with your tags using ORs, aka you will be able to put 20 tags in that array at maximum.

In the Free and Basic tier, you can't broadcast to more than 10k devices. From the pricing page (http://azure.microsoft.com/en-us/pricing/details/notification-hubs/):
Broadcast refers to the number of devices that you can send a Push
Notification to with a given notification request. Tags are keywords
that devices are subscribed to. A Broadcast Push Notification can be
sent to all devices that are subscribed to a particular tag.
Notification Hubs in Free and Basic tier, when broadcasting to an
audience, will push to at most 10,000 devices. If more devices are
present in the targeted audience, 10,000 devices will be chosen at
random and the remaining ones will not receive any notification.
The 3k tag limit means that you can create up to 3k unique tags that are used to send notifications. Each device can register for multiple tags (e.g., categories of breaking news would each be a tag).

An update here that we have eliminated the tag limits. Please see https://azure.microsoft.com/en-us/pricing/details/notification-hubs/ for updated information.
This still isn't clear in the pricing, on the Azure pricing 'calculator' it states: "First 10 million pushes are included with unlimited active devices and 10K broadcast (tag size) for Basic tier"
For the basic tier it still seems there is tag limits, but not for the Standard tier which states: "First 10 million pushes are included with unlimited active devices and unlimited broadcast (tag size)". Broadcast and tag limit information isn't shown on the general pricing info here: https://azure.microsoft.com/en-us/pricing/details/notification-hubs/

Related

marketo throttle outgoing emails

Setting up some emails in Marketo (only to a client list where people opted-in).
I have about 2700 contacts after filtering them, but I don't want to send out 2700 emails at once. I want to send out about 100 per day.
The reason is that the sales team will quickly get overwhelmed if we send out 2700 emails, even if we only get a low percentage of responses.
Ideally, Marketo would have an option to "quit after X emails".
I know there's a random sample option, which I can set to 4%, but I'm using a smart list (actually a smart list where the contacts aren't in another smart list), and the random sample only works in a regular list to build it.
It's not really an option to create 20 lists and run one each day, even using random sample of 5%. Even if it was an option, this email is intended to run for at least several months as it slowly picks up new contacts.
Has anyone found a workaround for this need? We can't be the only ones who have this problem.
just use 'random sample' combined with 'run once' in the Schedule tab. Then set a recurring schedule so the Smart Campaign runs daily. Every day it will send the email to 4% of your Smart List, but excluding the people who already received the email. You can only set it to a percentage, not to an absolute number, so the absolute number of emails that goes out every day will vary on the smart list size. Periodically, you probably want to adjust the percentage so you can optimize the total number of emails that go out daily.

is there a service or software for metering data downloads

We have a range of web applications here that allow users to download selected data from a number of databases and online services. Mainly Environmental information. We can track users visiting web pages using tools like Piwik or Google Analytics. We also want to track the amount of resource or data that they use, possibly also applying limits to record downloads.
If this was a single DB system we could track rows delivered within the db. However here we have a SOA with a range of sources and sinks. What I envisage is a service that can be messaged by other systems to register or track the amount of a resource used.
e.g User Andrew was sent 125MB of water quality data.
The central data metering service tracks usage messages from a variety of sources, produces reports and where appropriate applies caps or billing limits.
This service might be expanded to include processing as well as data download.
I would consider this to be a not unusual requirement but I can't find much in the way of existing software for it - perhaps because I am not using the correct terminology.
SO my questions:
What would you call this service - what keywords will lead me to existing systems?
What solutions already exist in this area - in particular FOSS or cloud based systems?
Could something like Google Analytics be persuaded to operate in this fashion?
It would be possible to do with the measurement protocol from Google Universal Analytics in conjunction with the user id feature in Analytics and one or more custom dimensions.
The measurement protocol is a language agnostic vaguely REST-like (inasfar as you send a bunch of parameters to an endpoint) protocol to send tracking data to the Google servers.
User id is a feature to recognize authenticated users across devices and multiple visits.
If the various parts of your setup send http calls build to the measurement protocol and include the user id to recognize the user and a value for a custom dimension for the file size (or rather a custom metric if you want to have sums and averages) and maybe a custom dimension for the file name you can send this to you Analytics account and build a custom report for downloads.
Note that the user id is an internal id that is used to link together visits by the same user from multiple devices - it is not something that shows up in the reports that would allow you to report on individual users in the Analytics interface (if you want that you need to include another id as custom dimension, and you have to check with the Google TOS what kind of id is allowed). Plus you'd need a dedicated data view in GA for sessions with a user id which will not show unauthenicated users.

What is the upload limit on soundcloud

I sometimes get the error: { error_message: 'Sorry, you\'ve exceeded your upload limit.' } when I post sound files to soundcloud, using their http api.
I couldn't find any explanation for this 'upload limit' in their documentations.
Does anyone know if it's a daily limit? or a size limit? or a combination of both?
Thanks
Sparko is mostly right. The only difference is that you can tell how much remaining time you have by requesting the current user details (GET /me) and you'll there will be a key called upload_seconds_remaining.
Free users get 2 hours. Pro gets 4 hours. Pro Unlimited is unlimited. Regardless of the plan, individual tracks also can not be longer than ~6.5hrs (I forget the exact number)
Individual files cannot exceed 500mb Uploading Audio Files
However, I'd imagine this relates to your overall limit for uploading audio to SoundCloud based on the plan attached to the account you're posting to i.e exceeding the 2 hours provided by the free plan.
The API doesn't appear to provide a property for the remaining time provided to the user, although you could infer this from [user]plan & looping through all of their tracks and summing each [track]duration (although probably not advised).

Reading iPhones call, SMS and data usage

my team is currently in the feasibility phase of a 'usage meter app' iPhone app. We would like to read the phone's total count of
Sent SMS
Made calls
Data sent and received
We are not after the call history like other posts or like this blog post reading the actual call logs (http://iosstuff.wordpress.com/2011/08/19/accessing-iphone-call-history/). All we need is the stats and how they change over the course of time.
As of iOS 4.0, it's no longer possible to do that call history trick described in the blog entry you posted there. Apple took away that "artefact of the implementation".
If you are a registered developer and have access to Apple's "private" dev forums (at https://devforums.apple.com), do a search on "call history" over the past year or two and you'll see Apple engineering attesting to that fact in the first few threads you'll find.
You'll probably want to file an enhancement request at http://bugreporter.apple.com, but I wouldn't expect a positive outcome immediately as this probably raises security and privacy issues.
As for network statistics, you can get per-interface stats via "getifaddrs" (man page linked for you). You get the list of addresses on that system, and then for each AF_LINK address, cast the ifa_data field to a (const struct if_data *) and access the interface statistics from there.
(there are also two caveats -- these stats are all reset to zero at startup time, and there's no easy way to easily tell which interface is cellular versus WiFi).

Rottentomatoes' API limits

i've been looking on the RT site but cannot find any details, i'm just patching it together from what i've read on forums:
It appears the rottentomatoes' API is limited to 10k calls per day (1 call each 8.64secs), per IP address. Eg with the one API key on two separate computers (different IPs), they will not affect each other's limits.
Is this true? Anyone know? It is for an iphone app to get the background.
Thanks
Have taken this question to the RT forum, close-voters can get busy closing this thread if you wish:
http://developer.rottentomatoes.com/forum/read/123466