The nuances of the Google Apps Marketplace

    About a month has passed since it turned out to be the same place your application EmForge on the Google Apps Marketplace , you can draw some conclusions, share experiences and talk about some of the nuances




    What are Google Apps and the Google Apps Marketplace


    I hope that most of the Khabrovsk residents already know what Google Apps is - if not, then this is the ability to use a set of Google services like Gmail, Calendar, Docs and more for their organization under their own domain. Judging by a recent survey on Habré (though I didn’t find a link), many are already using this opportunity.
    In early March, Google launched the Google Apps Marketplace ( announcement on the hub ) - the ability to add third-party developers their applications that are available to Google Apps users, and domain administrators using Google Apps - respectively add these applications to themselves.
    In addition to the announcement on the hub about the marketplace, it seemed there was nothing, because I want to share some experience from placing our solution for hosting projectsEmForge .

    Nuance №1 - Payment


    From the point of view of the developer, two points must be taken into account:
    1. The first attempt to host your application will cost you $ 100. This is a one-time fee for entering the Marketplace.
    2. This part of the documentation does not immediately attract attention , but it is very important. If I understand the translation correctly, then:
    * If you take money from Google Apps customers, you should “share” (you don’t need to share payments from non-GoogleApps customers). Sharing is 20%
    * To be able to share - payment with Google Apps customers must be carried out through the CheckOut API. It is not ready yet, but how it will be ready - you, as a developer, must complete the integration within 3 months. That is - if you have already connected some kind of API for withdrawing money - you will have to make clients parallel to GoogleApps.
    In fact, there are very significant points about which you did not write about the announcements and you will not immediately notice. In my case, EmForge still has all services free and there is no billing, so you can also screw CheckOut - but if you integrate some existing application with already created and tested billing with Google Apps - there may be problems

    What does it look like for a programmer


    Suppose you have some service and want to expand your audience with Google Apps. The minimum necessary and sufficient requirement is a Single-Sign-On organization supporting login via OpenID. There are several technical nuances associated with openID for domains using Google Apps - but more on that. You can also integrate with many Google APIs - such as ContactAPI, CalendarAPI, etc., providing tighter integration. For this reason, there is a separate large section on Google Code .
    After implementing it, you register on the Google Apps Marketplace, compose a page describing yourself as a vendor (for example, like ours ), place your application (they will ask you $ 100 for the first placement).
    This is followed by the Approve period - Google employees will test how your application integrates Google Apps - Again, the minimum requirement is for SSO to work.
    In my case, due to problems with SSO implementation, it took several iterations and 3 calendar weeks. I must say that the connection is not one-way, when you receive a message that your application has not passed the test, you can write questions by asking for details - and even get an answer. True iteration of the question-answer usually takes 2-3 days - so that everything can drag out (like mine).
    As a result, after the application receives approve, the page with your application appears on the Google Apps Marketplace (again, for example, like ours ).

    Application Page Monitoring


    One point that may not be understood - when editing the application page, you will have the opportunity (optional) - to enter the Google Analytics ID - this makes it possible to monitor the number of visits to this page on the marketplace - this information can be useful.

    What it looks like to the end user


    The administrator of a domain selects your application for installation - after several installation forms - for example, asking whether to give access to the requested API (by the way - you can add your form with your specific settings) - the application is among other Google Apps applications.
    End users get access to the application through the " Universal Navigation Bar " - this is the menu on the top in Gmail, which lists mail, calendar, documents and more - and so on, your application will appear among other things.
    When you click on your application, the user will be directed to a special URL to your service, the domain name will be entered in the URL among the parameters. Your application should redirect to the OpenID provider, the provider will automatically allow the login (in this case, the user is not asked anything - the domain admin has already allowed everything) - and the redirect is back to your service. You should receive and process openId information and automatically log in the user. Since the end user is not asked anything in this case and the redirects are almost imperceptible - in fact the user sees that after clicking on the link he is already logged into your service, you know who he is, where he is from and what his name is (email, username get from openId provider). This is Single-Sign-On.
    Well, what to do next with this user is up to you :)

    Caveat # 2 - OpenID Specifics for Google Apps Domains


    In general, OpenID - the topic is already quite old, it has been discussed many times on the hub, many services support login via openID. if yours too - it will be easier for you.
    But - there are several nuances associated with the processing of openID domains for Google Apps.
    The fact is that despite the fact that in this case the openId account will look like mydomain.com/openId?id=xxxx , the provider is Google (the provider’s URL will look like www.google.com/accounts/o8/site-xrds ? hd = mydomain.com )
    Quite important information about openID login consumer (in this case your application) can be obtained from host-meta, but it must be taken not from the default path (http://mydomain.com/.host-meta , and also from Google:www.google.com/accounts/o8/.well-known/host-meta?hd=mydomain.com )
    Plus, the domain used for testing by google employees (marketplace-test.com) is hosted on Google Sites, a marketplace request -test.com/host-meta redirects to sites.google.com - and there you get some HTML (instead of the 404 error expected in my case - to understand that host-meta is not here and you need to look for it in google) - that may also lead to incorrect processing.
    If you use Java, I highly recommend using the step2 library , and especially pay attention to their consumer example, where all the necessary “tricks” are present.
    If you use the Spring Framework, then you can use my spring-security-step2 library .
    There must be solutions for other languages ​​too - but here I am no longer in the know.

    Integration with other services


    In the description of the application, you can also indicate which google apps services it will use. When installing the application, the domain admin will give you access, after which you can use these services without additional OAuth authentication - which seems more convenient to me.
    Read more here

    A few tips for developers


    Based on the foregoing, I dare to give some advice to developers implementing integration with Google Apps:
    1. Be sure to add GoogleHostedHostMetaFetcher (see step2 consumer example);
    2. For testing, use the browser in "private" mode
    3. When testing, try to simulate a situation where a request for host-meta from your domain (http://mydomain.com/host-meta) produces something other than error 404 ( for example, some html)
    4. Turn on the logs to the maximum (at least for the time being, approve) - I got into a situation where "everything worked for me, but they don’t have it." The only way to understand something is why, in the case of the marketplace-test.com domain, these are the logs.
    5. If you were denied approve - but you don’t understand why, or have additional questions - do not hesitate to ask (just by answering a letter that you will receive from Google with a description of the problem) - Google employees honestly work out your $ 100 paid for the "entrance" to marketplace, but keep in mind the question-answer iteration may take 2-3 days.

    What is the result?


    There are few applications on the Google Apps Marketplace (yet). So - right after getting to the marketplace, my application appeared on the second (it’s the last) page in the Project Management category.
    Page views on the marketplace were about 20 a day, 1-2 site clicks.
    After the first positive review, the application moved to the first page - page views of about 100 per day, clicks of about 5.
    It is clear that the conversion in my case can be improved. It is clear that rising to the top of the first page you can get more views and more transitions. It is clear that in another category, in principle, there may be more potential users, but I think the order will not change.
    That is, it seems to me, to write the application completely. Google Apps-oriented - it’s still not worth it; adding integration with Google Apps to an existing application - yes, you can, but don’t expect a huge stream of new users.

    I hope that my experience will be useful. There will be questions - write "in a personal".

    Also popular now: