Best Practices
Because of our committment to Ning's Network Creators, we have a thorough list of qualifications for a social network to be included into the Ning Application Directory. Here are a list of best practices that we recommend:
What You MUST Do
- Your application must add value to networks.
- Your application must be suitable for every social network on Ning.
Currently, any social network on Ning has the ability to add an application from the Ning Application Directory. The Ning OpenSocial team is currently looking into building functionality for Network Creators to only allow certain applications to their networks. Until then, submitted OpenSocial applications should suitable for every network on Ning; the application should not be offensive or contain adult content.
- Make sure the <ModulePrefs> attributes of your Application are properly filled out and images are the proper sizes.
The attributes in the <ModulePrefs> tag of your Application stores important meta-data about your OpenSocial Application. Some of these attributes are required, such as the title, description, thumbnail, and screenshot attributes, but if you wish you can include other pieces of meta-data such as the author and author_email fields, and the respective values will be displayed in your Application's "About View" page. The following attributes MUST BE INCLUDED for admission into the Ning Application Directory:
- Title: This will be the name of your application in the Directory, Profile Page, About Page and Canvas Page. Try to keep it under 40 characters.
- Thumbnail: This should be 120x60. It is a logo that you want to associate with your application, and will be displayed in the Application Directory. The thumbnail must accurately represent the application.
- Description: The description is displayed in the Directory, and also on the About Page above the screenshot. The description should accurately describe the application, make sense, and be free for spelling and grammatical errors.
- Screenshot: This can be a maximum of 502 px wide (and 1000 px high). It will be displayed on the About page below the description. The screenshot must be a clear image and should accurately represent the application.
- The profile and canvas view of your application must look and work as expected.
- Members that aren't logged in may be able to view your OpenSocial Application. Give them a good experience.
Don't forget that both the Profile View and Canvas View of an OpenSocial Application can be viewed in a signed-out state for profile pages in public social networks. The user ID for these users are given the id of _anonymous. If your OpenSocial Application depends on member-specific information, make sure the application can fail gracefully in this condition.
What You SHOULD Do
- Make sure your application is free of spelling and grammatical errors.
- Test your OpenSocial Application in a variety of browsers.
For a good variety of appropriate browsers and platforms, we recommend Yahoo's A-Grade browser chart. This means testing for IE6, IE7, the latest versions of FireFox and Safari.
- Be cognizant of the different social networks that run on Ning.
Ning is different from other social network containers that run OpenSocial; while most social network containers only allow members to access and edit information from their profile pages, Ning allows its members to create social networks that other members can join. With over half a million networks, there is great diversity: Some social networks pay a premium service to remove promotional links to Ning. Other social networks are adult in nature, with the ability to create adult profile images. Other social networks are geared towards education and are sensitive to content geared towards mature audiences.
- Optimize your OpenSocial Application so it runs as speedy as possible.
Many optimization tips used in general web development will also apply to developing your OpenSocial Applications. You may want to take a look at the OpenSocial Latency Combat Field Manual for tips on optimizing HTTP Requests, Caching and other optimization tricks.
- Ensure that your OpenSocial Application is caching properly.
By default, all OpenSocial Applications will have caching enabled to ensure that all social networks on Ning are running at its speediest. That said, if you are actively developing an OpenSocial Application and would like to temporarily turn caching off, you can bypass the caching mechanism by adding "bpc=1" to the URL of the profile or canvas page that you're viewing.
- Give people using your OpenSocial Application a fun and meaningful social experience.
With the ability for Developers to use information such as a member's profile information and friends lists, the possibilities of creating an awesome OpenSocial Application are endless. The Social Design Best Practices document on Google has some great resources.
- If appropriate, have your OpenSocial Application blend in as much as possible to a member's Profile Page.
You can use gadgets.skins.getProperty to get the CSS values of the default foreground, background and link colors - use this to your advantage for the best user experience. To see an example of this in action, take a look at the Weather Sharer application, or view the page on Google Code: http://code.google.com/apis/opensocial/docs/0.7/reference/gadgets.skins.Property.html.
What NOT to do
- If your OpenSocial Application shares user generated content between all social networks, profile thumbnail images can NOT be displayed.
- Don't require your users to download an browser/platform-specific external application.
We want to be sure that all people, regardless of the browser they use, have a great experience when using an OpenSocial application. For this reason, any OpenSocial applications that have severe limitations on particular platforms or require users to download external files to install on operating systems will not be admitted into the Ning OpenSocial Application Directory.
- Don't violate our Terms of Service.
The Terms of Service we currently use for social networks on Ning carry over to our OpenSocial Applications, and violators will be handled appropriately.
- Don't do anything that will overly annoy the people using your OpenSocial Application.
If you have an OpenSocial Application that runs slow scripts, requires an external download, immediately navigates away from the page or blocks the execution of the Profile Page, you'll upset the people using your Application which will make your OpenSocial application less popular.
Policies
- The method opensocial.getEnvironment().getDomain(); is a proven way to get the domain name of a social network. The format of the string returned is in the form of NETWORKNAME.ning.com, where NETWORKNAME is the name of your social network on Ning. Note that this is also the case for domain-mapped networks.
- The requestSendMessage API has a quota of 35 invocations per member, per day. This means that a member can use the send message functionality 35 times per day across all apps. If a user enters multiple people in the 'to' field, that counts as a single invocation.
- The requestCreateActivity API has a quota of 5 invocations per member, per application, per day. This means that a member can call the functionality five times a day for each application. New Activity Feed data can only be written to a member's Profile Page, not the main page of a social network. With the exception of the <a> tag, all HTML is stripped from the text before the API is invoked.
- As a Ning OpenSocial Application developer, you can access a Viewer's profile photo, profile name, profile link and friends list. All information on the platform is not exposed for privacy reasons.
- On the Ning platform, a network member can have friends across many social networks on the platform. Because of this unique nature, VIEWER_FRIENDS and OWNER_FRIENDS apply to the set of friends on the specific social network where the OpenSocial Application is hosted; they are not a collection of your friends over all social networks on Ning.
- If a member of Ning has a default profile name and photo and a different profile name and photo on a specific social network, the information on that network takes precedence when calling profile-based methods such as getDisplayName().
- Ning allows a maximum of 10k of serialized data stored, including keys, values and serialization overhead.
- No HTML is allowed when writing to the Activity Stream.
- While OAuth is supported for Ning containers, you can not use OAuth to view a member's content at the present time.
Feature Roadmap - What's coming next?
We're planning to add additional features and functionality to make your experience of developing and spreading your applications even better by mid-September:
- About View improvements: We'll include a one-click 'Add to My Page' option, as well as member reviews and statistics about the application.
- Sharing: Members will have even more ways to recommend a favorite OpenSocial Application with people on and off the Ning network.
- Statistics Tracking: We plan on offering application-specific statistics for your OpenSocial Application in a future release. In the mean time, we recommend using other analytic tools to track and measure success of your application. Because we offer a subset of legacy Google Gadget APIs, one solution is to use the _IG_Analytics methods to integrate Google Analytics -- you can find more information on Google Gadget's Development Tools page.
Support Resources and References
Ning API Specific Resources
Policy Based Links