Earning money on Google Wave applications

I was talking to Kenneth Joni Jørgensen from Greenclickmedia.dk about how Pay per click options in Google Wave. Kenneth is an expert in creating media campaigns for customers. I talked to Kenneth on how to make money on creating ads in pages.

When I’m going to develop applications to Google Wave, they will probably be supported with a Freemium model. Freemium products have two features a basis and a premium. The basis products purpose is to get people hooked on the service. It will be limited in some features and maybe supported by ads. The paying model will be ad free and have some other extra functions that will appeal to the users like more space or better security. This is the same model Google is using for Apps for my domain, where you can get the service free. With the free version you get ads on your mail. You can also select the paid version, which costs $50 a year. For this amount you get some extra functionalities regarding single singon and no ads.

We where first looking at the wave screen. With the current layout it does not look like there is space for ads like on their search or gmail pages. Google will probably find a place to put the ads, in a way so it will blend into the design.

If you develop an application, which you would like to have some money for you can insert advertisings. A way would be on insert AdSense into the pages. It could be possible to insert AdSense into gadgets like showed in the blog Gadget and Robots interaction. AdSense is just a Javascript, which should be inserted on a page and then it will show the ads. This integration should be fairly simple.

One issue with AdSense is if you are allowed to put the ads on Waves. I’m not sure how own the content, when it is hosted on Google’s servers. Is it Google or the participants in the Wave. I cann’t find any information if you are allowed to set ads on other pages than your own.

AdSense has currently products for Mobile or video, it will make sense also to make a Wave version. This way Google will still make money, and the developer can make money. If the developers can make money on their apps, they will develop more applications.

Bookmark and Share

Gadget and Robots interaction

In some instances you want to have the robots and gadgets to interact. A scenario where it could make sense is, when the user wants information about a site. The page which could be showed could be the sales report of the customer or some other information which is of interest to the participants.

This tutorial has basis in the Creating A Simple Inline Gadget To Show External Web Applications, which shows how to inline a page into the a wave using a gadget. There is a robot which creates a form for entering the url of the page. When the user press submit the robot adds a gadget which inline the specified url.

First the robot which inserts the gadget.

public class EmbedUrlRobotServlet extends AbstractRobotServlet {
    public final String URLFIELD = "URL_FIELD";
    public void processEvents(RobotMessageBundle bundle) {
        Wavelet wavelet = bundle.getWavelet();
        String creator = wavelet.getCreator();
        if (bundle.wasSelfAdded()) {
            Blip blip = wavelet.appendBlip();
            TextView textView = blip.getDocument();
            textView.appendMarkup("<p><b>Inline the url</b></p>\n");
            FormView form = textView.getFormView();
            form.append(new FormElement(ElementType.INPUT, URLFIELD,"http://"));
            form.append(new FormElement(ElementType.BUTTON, "submit", "INSERT"));

        for (Event e : bundle.getEvents()) {
            if (e.getType() == EventType.FORM_BUTTON_CLICKED) {
                Blip blip = e.getBlip();
                FormView form = blip.getDocument().getFormView();
                FormElement urlElement = form.getFormElement(URLFIELD);
                GadgetView gadgetView= blip.getDocument().getGadgetView();
                gadgetView.append(new Gadget("http://pollenvarsel.appspot.com/gadget?url="+urlElement.getValue()));


The robots listens for two event. First the SELF_ADDED which creates the URL form with a text box and a submit button. When the button is pressed a gadget is inserted in to the Blip, with the url of the gadget + the target URL. Probably something should be performed to ensure that the submitted URL is valid and can be sent as a query parameter. Probably a URL encoding should be performed or save the data in the datastorage.

    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        PrintWriter out= resp.getWriter();
        out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
      +"<ModulePrefs title=\"inline_external_page\" height=\"400\" width=\"800\"/>"
      +"<Content type=\"html\">"
      +"<![CDATA[ "
      +" <div id=\"main\"><!--Main container for the iframe-->"
      +" <iframe name=\"check\" id=\"check\" height=\"100%\" src =\""+(String)req.getParameter("url")+"\" width=\"100%\" frameborder=\"0\">"
        +"<p>Your browser does not support iframes .</p>"
        +"</iframe> <!-- this is where contents of the links are displayed -->"

The code is the same in the original blog it has just been placed into a servlet, to make it possible to have parameters inside. It just inserts the query parameter into the gadget XML.

The code can be found at code.google.com.

Bookmark and Share