An Experiment with Dropbox and Google AdWords

The other weekend I ran an experiment with Google AdWords to see if I could max out my Dropbox referrals to get an extra 16GB of free storage using my free £75 AdWords voucher. This is the same hack that Vladik Rikhter blogged about back in September 2011; and with a ton of people doing the same following Vladik’s post I wanted to see if it still worked. Short answer: yes it does :-)

For those that don’t know what Dropbox is, it’s an online service for backing up, synching and sharing files and has clients for Web, Windows, OSX, Linux, iPhone, iPad, Android and Blackberry. The basic service gives you 2GB of storage for free (with paid plans offering more storage) and you can earn up to an extra 16GB of free storage through referrals (500MB per referral). If you want to sync files to have them available on multiple devices, or want to share files with other people it’s incredibly useful.

I just have the basic plan and had zero referrals before I started the AdWords campaign so needed 32 referrals to reach the 16GB maximum. I ran the campaign over the weekend of 14-15 April 2012, switching it off at around 6am on Monday 16 April 2012, and gained 59 referrals – more than enough for the extra 16GB of free storage.

The Figures

Ad Impressions: 21,141
Click Thru’s: 484
Click Thru Rate: 2.29%
Average Cost Per Click: £0.09
Total Ad Spend: £44.73

From the 484 click thru’s this generated the following numbers:

Total Joined Dropbox: 83
Total Installed Dropbox: 59
Total Ineligible: 1
Abandonment Rate: 28.91% (24 not installed / 83 joined)
Conversion Rate: 12.19% (59 installs / 484 click thru’s)
Cost Per Conversion: £0.79 (£44.73 ad spend / 59 installs)

NB: you only get the referral bonus if someone installs Dropbox after joining.

It’s the first time I’d used AdWords and the stats geek in me found the numbers really interesting. From running this short experiment you can see how online advertising costs could soon mount up and why targeted advertising to help increase that magic “conversion rate” is so appealing.

Related Links

Tracking Confluence Attachment Downloads with Google Analytics

If you’re using Google Analytics to track Confluence usage – and if not, why not, David Simpson has an excellent guide on tracking Confluence usage with Google Analytics – you may have noticed that Google Analytics doesn’t track attachment downloads. This is because downloads such as PDFs, Word Docs, Powerpoint Presentations, etc. are not web pages and therefore do not include the Google Analytics tracking code. Fortunately there is a solution based on this support document from Google:

1. Login to Confluence as a Confluence Administrator
2. Select Browse -> Confluence Admin
3. Select Look and Feel -> Custom HTML and enter the following JS snippet in the “At end of HEAD” section in addition to your Google Analytics tracking code:

<script>
AJS.toInit(function() {
  AJS.$("a[href*='/download/attachments/']").click(function() {
    _gaq.push(['_trackPageview', AJS.$(this).attr('href')])
  });
});
</script>

4. Click Save

After 24-48 hours you should then see your attachments being tracked in Google Analytics under Content -> Site Content -> Pages:

Google Analytics Page View

Happy Tracking :-)

Related Links

Tips via Twitter for Confluence enterprise wiki

Got a Confluence tip? Tweet it now then see it in the Confluence docs.

 

Sync Google Calendar with iPad Calendar Using 2-Step Verification

After meaning to set up synchronisation between Google Calendar and my iPad calendar for ages, but never getting around to it, I finally spent some time getting things set up last week and it works like a charm. I hit a few bumps thanks to me enabling Google’s 2-step verification and if you’re interested in setting up the same here’s how:

1. Visit your Google Account Settings and enable 2-step verification:

Google 2-step Verification

2. Click “Edit” next to Authorizing applications & sites to generate an application password for your iPad to use:

Google App Password

3. Make a note of the generated password as you will not be able to view it again, but will have to enter it once on the iPad.

4. On your iPad select Settings and then Mail, Calendar and Contacts -> Add Account -> Other -> CalDAV.

5. Enter the information as shown below:

CalDAV Settings

NOTE:
For the username enter your full Google Account or Google Apps email address, e.g. joe.bloggs@gmail.com

For the password enter the password you made a note of in Step 3 NOT your normal Google Account or Google Apps password.

6. After a few seconds you should see the following screen indicating that the account has been set up on the iPad successfully:

Set Up Complete

NOTE:
The setup automatically changes the server from google.co.uk to www.google.com

7. Open the Calendar App on the iPad and sync’ing will begin automatically.

Troubleshooting

If you see the following message after entering your email address and password:

Google Error

This usually means that the username and/or password are incorrect and is not actually an SSL problem. Double check the password that you made a note of in Step 3 and if you are sure it is correct visit your Google Account Settings, revoke the password that you previously generated, generate a new one and enter the new password instead.

After successfully setting up the account on your iPad you will now have bi-directional sync between your Google Calendar and the Calendar app on your iPad. Happy sync’ing :-)

Related Links

Google Moderator + Confluence Take 2

A while ago I posted how to integrate Google Moderator with Confluence , but it was a hard-coded solution which would only embed one Moderator series.  After (finally) getting off my backside I’ve now got an improved User Macro which allows you to enter the URL of any Moderator series as a parameter to the macro.

Most of the steps are the same as the previous blog post , but the template for the macro has been changed from:

<div id="moderator-embed-target"></div>
<script type="text/javascript">
var mod = new MODERATOR("http://www.google.com/moderator/[ID of your Moderator series]);
mod.hl = "en";
mod.width = 1000;
mod.height = 500;
mod.embed("moderator-embed-target");
</script>

to:

#set ($url = ($paramurl))

#if ($url)
#set ($url = ($paramurl))

#if ($url)
  <div id="moderator-embed-target"></div>
  <script type="text/javascript">
    var mod = new MODERATOR("${url}");
    mod.hl = "en";
    mod.width = 1000;
    mod.height = 500;
    mod.embed("moderator-embed-target");
  </script>
#else
  <div class="errorBox">You must specify a url parameter.</div>
#end>

This small change now allows you to enter something similar to:

{google-moderator:url=http://www.google.com/moderator/#16/e=22571}

into the body of a Confluence page, where the URL is just copied and pasted from the home page of your Google Moderator series. This results in:

If you forget to enter a URL parameter by just entering:

{google-moderator}

you will be presented with:

I still need to work on turning this into a “proper” plugin or OpenSocial gadget, but it’s more flexible than the old macro.

FOOTNOTE: I didn’t use $generalUtil.urlEncode($paramurl) in the macro as when the URL is encoded the macro fails to render.

Google Moderator + Confluence

I’m late to the party on discovering Google Moderator, but it looks like a very easy way to capture, vote on and then prioritise requirements, ideas and suggestions.  Which always seems to have been a problem for all the organisations I’ve worked for, as it was whoever shouted loudest or whoever was the “VIP” got what they wanted rather than development effort being focused on the features that would benefit the majority of users.

Posts on Google Moderator tend to be very high-level and the teams I’ve worked with capture more detailed requirements using Atlassian Confluence so I wanted to have a play with embedding Google Moderator into Confluence – which turned out to be really easy for a basic integration.

Here’s what you need to do:

Add the Google Moderator Javascript to a Main Layout

  1. Login as the owner of a Confluence Space
  2. Navigate to Browse -> Space Admin -> Layout
  3. Select Create Custom next to Main Layout

 

Then add the following to the section of the Main Layout:

<script type="text/javascript" src="http://www.google.com/moderator/static/moderator-embed-api.js"></script>

E.g.

Create a User Macro

You don’t need to do this, but I decided to create a User Macro so people could embed Google Moderator with a simple {moderator} macro rather than needing to know the Javascript code for embedding directly.

  1. Login as a Confluence Administrator
  2. Navigate to Browse -> Confluence Admin -> User Macros -> Create a User Macro
  3. Populate with the following information:
Macro Name: moderator
Macro Body: unchecked
Output: Macro generates HTML markup
Template:
<div id="moderator-embed-target"></div>
<script type="text/javascript">
var mod = new MODERATOR("http://www.google.com/moderator/<ID of your Moderator series>);
mod.hl = "en";
mod.width = 1000;
mod.height = 500;
mod.embed("moderator-embed-target");
</script>

Use the {moderator} Macro on a Page

Just edit a page in the normal way and add the {moderator} macro to the page.

View the Results

Next Steps

The above works quite well for a basic integration, but I’d like to have more control over the look and feel of Google Moderator on a page so I’m going to see if I can create a Confluence plugin or OpenSocial gadgets using the Google Moderator API.