This Week In Tech: SFCMGR Visits Prezi!

image

We love SFCMGR, and not just because our very own Lucy Bartlett is a co-organizer. It’s a wonderful group of people who come together once a month to discuss the ins and outs of online community. This month’s event was held at the San Francisco Prezi Office.  They provided four wonderful speakers, all who have different backgrounds within Prezi, but work toward the common goal of creating an online community of happy Prezilians.

Jana Hanavan, Prezi’s mood coordinator, opened up the series of presentations with some background on the organization, thus setting the stage for Ashley Whitlatch, the 8th U.S. employee who developed and launched Prezi’s successful college ambassador program. She informed the audience of 5 tips to build a community of college ambassadors. They are- focus on those who love you, help them set their own goals, provide feedback, listen to their ideas, and provide useful takeaways.

When looking for people who are passionate about your product, find those who already actively support you. Once they’ve become an ambassador, it’s important not to set stringent goals for them, but rather collaborate to decide what you’re working towards. After all, an ambassador knows their peers better than anyone else, that’s why they’ve been selected. The college ambassador program wouldn’t have been beneficial to anyone if it simply included passing out fliers. Prezi encourages ambassadors to create online groups and A/B test new products, both enriching the experience of its ambassadors as well as the community they’re present in.

Zsofi Goreczky was once upon a time what Prezi calls a Champion, someone incredibly active in the Prezi community answering other’s questions and sharing best practices.  A few months after becoming a Champion, Prezi asked her to officially join their team. She’s now the Operations Manager for Support. Zsofi explained the importance of the Championship program and other methods that encourage peer-to-peer support. Although acknowledging these key factors of building a supportive community, she also stressed the strong influence of support reps, promoting good answers, monitoring frequent questions to modify content pieces accordingly, and archiving out-dated issues. The combination of Prezi employees and Prezilians supporting the community has proven to be the most effective way to support their online community.

The last to take the stage was Prezi’s Social Media Coordinator,Susannah Shattuck who helps to manage Prezi’s global community across LinkedIn, Twitter, Facebook, Google+, and beyond! When she first started at Prezi her main focus was to get as many “likes” and “followers” as possible but soon realized that didn’t result in engagement. Rather, a smaller, targeted audience creates higher interaction amongst followers. To best amplify your company’s voice and convert users into advocates, Susannah suggests meeting your audience where they are, listening to what they have to say, and empowering them to share their stories. If you are able to successfully follow these three tactics you will drive traffic to your website, which is critically important when trying to explain the ROI of social media.

We hope all that attended this month’s SFCMGR meeting learned as much as we did! It was wonderful to hear about community from three different departments of the Prezi team. We hope you’ll join us next month for another round of networking and insightful talks from industry leaders. Stay tuned!

Check out the great Prezi they made for SFCMGR!

Written by Hanna Fritzinger

The new landscape of native advertising: #ASE14

10352611_10152288440603225_2808535163228706323_n
Every six-months I attend the bi-annual Affiliate Summit Conference. It’s a great opportunity to meet others in the industry and learn recent trends in the native advertising ecosystem.  Below are valuable insights I’ve gathered from industry experts to help you stay current with your native advertising efforts.

Keep Your Content Authentic

Creating quality content has always been paramount. The only way to retain visitors is to engage them, and to do that, they must be provided relatable content. Rae Hoffman of Sugarrae spoke about changes in Google Search and the implications they hold on the future of online publishers’ success. He concluded success can only be achieved if you produce honest, authentic, and well crafted content.

John Rampton, editor of SEJ, spoke to the influence of blogs in helping build your brand and online relationships.  Your blog is the start stage of your sales funnel, and if it goes unnoticed, you cannot maintain or grow your online brand (nor drive traffic to monetize). Everything you put on the web should be of the same high quality your readers have come to expect.

Additionally, content is not limited to writing. Images and videos are common content outlets, and with them come the potential for additional monetization sources. However, if these new avenues do not follow the same stringent quality controls to which you hold your writing, they will harm rather than support your brand.

Carolyn Kmet successful mommy, food blogger and CMO of “all inclusive marketing” shared three guidelines to keep the quality of your content high, even when feeling uninspired.  It’s critical to never lose your unique point of view that your audience depends on.

  1. Make sure you talk about “how you use” the items being discussed. Regardless of the item, be cautious to only speak to what you really know and can give your valued insight on.
  2. Never sell the trust of your readers for commissions. Trust takes years to build, but can be lost in an instant.
  3. Discuss pros and cons of situations in a subjective voice. By doing so, you legitimize your opinion and build trust with your readership.

ASE14 is far from over, and other significant topics will emerge. These are just the first to take prominence in audience discourse and reflect the “hot topics” present in our ecosystem.

Written by Lucy Bartlett

Asynchronous programming with Play framework

Background
Some  services provided by VigLink are handling 7K requests per second. Our current architecture is mostly running on a Tomcat 7/Spring 4 sync approach. Our services are mostly powered by MySQL, Elasticsearch, and Cassandra. Since traffic has grown over the past few years, we’ve increased the number of machines to keep up with throughput and response time.

Goal
In anticipation of growing traffic, we want to experiment with different frameworks and approaches to make our service more scalable and efficient.

  1. Increase throughput
    We aim to handle more traffic with the same hardware. This can reduce our engineering costs and ease up the maintenance of having too many servers. The CPU cycle being wasted on thread churn is one key thing we want to address in this experiment.
  2. Improve response time
    The vision of VigLink is to make the web better, therefore we strive to maintain and improve our request latency. We want to provide low, and most importantly a consistent latency because we’ve observed that spikes of latency happen once in a while on the current application.
  3. Java codebase compatibility
    Since our code base is mostly Java based, we hope to reuse our existing code base while enjoying the benefits of new framework.

Decision of Play framework
We started to learn and code with Play framework on our company’s internal hackathon day. We found it extremely easy to setup and run. Additionally, its async controller is well defined. As a result, Play framework was chosen to experiment with this time.

Code change
Future interface
To make our Java code’s computation and DAO asynchronous, we need a more advanced future interface to handle in-progress computation so we can code from end to end in async manner. Some options include Java 8 CompletableFuture, Akka, Guava ListenableFuture. We decided to use Guava ListenableFuture because we found it easy and powerful for transformation and chaining. Also, the code change for our existing code was minimal with ListenableFuture.

Migrating existing Java code to asynchronous computation
Cassandra client library
We are using Hector as our Java client library for Cassandra, but this client library does not provide async interface. As a result, we decided to try Astyanax for its powerful async interface. The code change was straightforward and easy since their interfaces are similar.

 

Hector – Sync

public UrlValidity getUrlValidity(String url) {
   SliceQuery<String, String, ByteBuffer> query = HFactory.createSliceQuery(linkSwapKeyspace, StringSerializer.get(), StringSerializer.get(), ByteBufferSerializer.get());
 
   ColumnSlice<String, ByteBuffer> queryResult = query.setKey(getKey(url))
           .setRange(null, null, false, 100)
           .setColumnFamily(CassandraColumnFamily.URL_VALIDITY)
           .execute()
           .get();
 
   return extractValidity(queryResult.getColumns());
}

 

Elasticsearch
We are using Elasticsearch 1.2 standard Java client library. It provides async execution out of the box. As the return value of its async execute() method is ListenableActionFuture, we transformed this into ListenableFuture by using SettableFuture.

public ListenableFuture asyncSearch(final Class clazz, SearchQuery query, String... facetNames) {
SearchRequestBuilder searchRequestBuilder = createSearchContent(query, facetNames);

ListenableActionFuture searchResponse = searchRequestBuilder.execute();

final SettableFuture searchResult = SettableFuture.create();

searchResponse.addListener(new ActionListener() {
@Override
public void onResponse(SearchResponse searchResponse) {
String responseBody = toJson(searchResponse, true, false);
T result = unmarshalResponse(responseBody, clazz);
searchResult.set(result);
}

@Override
public void onFailure(Throwable throwable) {
searchResult.setException(throwable);
}
});

return searchResult;
}

 

Play Framework Async Controller
We are using Play 2.2.x for this experiment. Async controller can be easily implemented with Action.async {}. We have implemented AsyncUtil.asScalaFuture to transform Guava ListenableFuture to Scala Future as expected by Action.async {}. The tility method is inspired by sphere.util.Async.

@Component
class LinkSwapController extends Controller {

@Resource var offerSearchService: OfferSearchService = _

def swap(url: Option[String], keyword: Option[String]) = Action.async { request =>
AsyncUtil.asScalaFuture(offerSearchService.search(url.getOrElse(null), keyword.getOrElse(null))).recover {
case t =>
Logger.error("Exception caught", t)
BadRequest(...)
} map {
case result: OfferSearchResult => Ok(...)
}
}
}
public static Future asScalaFuture(ListenableFuture future) {
final Promise promise = new Promise<>();
Futures.addCallback(future, new FutureCallback() {
@Override
public void onSuccess(T result) {
promise.success(result);
}

@Override
public void onFailure(Throwable t) {
promise.failure(t);
}
});
return promise.future();
}

 

Metrics
Graphite is used to measure and monitor performance. Yammer metrics library is used to populate metrics to our Graphite server. To measure the response time of requests, we have implemented a metrics filter.

class MetricsFilter extends EssentialFilter {

def namePrefix = "responseCodes."

def statusCodes: Map[Int, Meter] = Map(
Status.OK -> Metrics.newMeter(classOf[MetricsFilter], namePrefix + "ok", "responses", TimeUnit.SECONDS),
Status.CREATED -> Metrics.newMeter(classOf[MetricsFilter], namePrefix + "created", "responses", TimeUnit.SECONDS),
Status.NO_CONTENT -> Metrics.newMeter(classOf[MetricsFilter], namePrefix + "noContent", "responses", TimeUnit.SECONDS),
Status.BAD_REQUEST -> Metrics.newMeter(classOf[MetricsFilter], namePrefix + "badRequest", "responses", TimeUnit.SECONDS),
Status.NOT_FOUND -> Metrics.newMeter(classOf[MetricsFilter], namePrefix + "notFound", "responses", TimeUnit.SECONDS),
Status.INTERNAL_SERVER_ERROR -> Metrics.newMeter(classOf[MetricsFilter], namePrefix + "serverError", "responses", TimeUnit.SECONDS)
)

def requestsTimer: Timer = Metrics.newTimer(classOf[MetricsFilter], "requests", TimeUnit.MILLISECONDS, TimeUnit.SECONDS)

def activeRequests: Counter = Metrics.newCounter(classOf[MetricsFilter], "activeRequests")

def otherStatuses: Meter = Metrics.newMeter(classOf[MetricsFilter], namePrefix + "other", "responses", TimeUnit.SECONDS)

override def apply(next: EssentialAction) = new EssentialAction {
override def apply(rh: RequestHeader) = {
val context = requestsTimer.time()

def logCompleted(result: SimpleResult): SimpleResult = {
activeRequests.dec()
context.stop()
statusCodes.getOrElse(result.header.status, otherStatuses).mark()
result
}

activeRequests.inc()
next(rh).map(logCompleted)
}
}
}

 

Result
Response time

engineering-1

 

 

 

 

 

 

The average latency of Play framework is lower in this experiment. Most importantly, there is no spike in the async one. This can be the combined results from async computation, Play framework, and Astyanax.

 

Thread churn

engineering-thread

 

 

 

 

 

 

The thread count in Play framework (async) is more consistent and lower than Spring framework (sync). That means it has the potential to handle more traffic.

Conclusion
We are pleased with the result of using async computation in this experiment. Both latency and thread churn were improved dramatically. We also found it very easy to setup and use Play framework. However, it is unfair to Spring framework because it’s using sync computation. We are planning to do another experiment with async computation in Spring framework so we can compare the two in fair manner. We are also planning to do a stress test experiment to understand the real potential of Play framework async programming.

Written by Edward Chu, Senior Software Engineer.

Follow Ed on Twitter @edwardchu521


 

This Week in Tech: Publishers granted greater control by Google

Untitled 3

Monday marked the launch of the  Google News Publisher Center, a new feature of Google News that allows publishers to dictate how Google indexes their site. Most top publishers spend hours generating engaging and relevant content, however that’s not enough to drive traffic to their site. Until Monday, publishers could only hope Google would predict the layout of their site correctly and pick up on any recent formatting changes.

For example, ELLE one of our coveted publishers, categorizes their site by fashion, beauty, accessories, culture, etc. With this new feature ELLE can label the different segments of their site from the Publisher Center, therefore enabling Google to efficiently categorize the content. If ELLE decides to delete the “beauty” category from their site or add a “lifestyle” category, they would subsequently go to the Publisher Center and ensure those changes are made. This will result in more accurate Google News results, which is beneficial for ELLE, Google, and readers.

The Google News Publisher Center can be simply explained as a tool that gives publishers the power to edit Google’s records, thus putting power and responsibility into the hands of publishers. It is now up to them to attentively keep information in their Publisher Center portal up to date, simultaneously relieving pressure from Google Support.

What do you think about the latest advance in Google News?

Written by Hanna Fritzinger

EPC Explored Infographic Released

There are many ways to measure your native advertising efforts.  At VigLink we tend to focus on earnings per click (EPC). EPC represents a per-click measure of how efficiently your traffic is earning from advertisers. For a given volume of clicks, the higher your EPC, the higher your revenue. It’s imperative for publishers to understand how EPC functions in order to maximize their earnings; this means finding out where people are earning the most, in what industries, and on which devices. We analyzed 100 million clicks and four million dollars in revenue to bring you a detailed breakdown of where the money is.

Calculating EPC is as simple as dividing total commission by total clicks. By doing so, you’re able to determine the potential worth of clicks on your site. But EPC is actually driven by a variety of other variables.  The publisher must also consider (a) price of the item recommended (b) average commission rate of the merchant (c) average likely conversion rate of the shopper.  EPC is the product of those variable.  If one of every hundred clicks from your site turn into a purchase for a $100 gadget, for which you are paid 5%, then your EPC would be (0.01 * (100*0.05)) = $0.05 per click.  Keep the click number constant but sell goods worth $200, and your EPC will double.  Keep clicks and item price constant but double the commerce intent of your traffic by really encouraging them to buy, and the increased conversion rate will mean higher EPC for you.

EPC-Explored_Infograph (1)

One way to consider EPC is by industry. Our data suggest the top three are financial services ($1.80), motorcycles & power-sports ($1.50), and lifestyle ($1.37). On the contrary, the three lowest are art & entertainment ($.06), travel ($.19), and family & baby ($.27). The purchase price of items in the first three industries tend to be significantly higher in cost than the later three, they also warrant recurring customers which merchants value and are willing to pay higher prices for.This explains their high EPCs.

With increasing resources and time devoted to tracking consumer trends over mobile and desktop devices, publishers are focusing more on where they are getting their traffic. Mobile is quickly emerging and will be more influential than desktop traffic in the near future, but it isn’t there yet. Even if publishers have equal amounts of mobile and desktop traffic, that doesn’t mean the conversion rate on mobile clicks is as high.

We learned desktop EPC was the highest at $0.07. Not surprisingly, tablet EPC was not far behind desktop at $0.06, but mobile remained low at only $0.02. Showing that even as mobile traffic to sites is increasing, people are still far less likely to purchase on those devices. The poor user experience on mobile risks deterring even the most avid shoppers. When considering the sports and fitness industry this trend mapped out exactly following the trend with desktop EPC at $0.18, tablet EPC at $0.13, and mobile EPC at $0.10.  Device EPC will be the number to watch as apps and mobile websites continue to increase their accessibility to customers. With the combination of these more efficient sites and the upcoming generation being more comfortable on their mobile devices than desktops, mobile EPCs will undoubtedly continue to rise, but for now… don’t neglect your desktop experience.

Written by Hanna Fritzinger

This Week in Tech: Google Introduces Dynamic Sitelinks

Untitled+drawing+(44)

We have long stated our belief in the power of links on the web. We integrate them into the content of your site, promoting a seamless user experience for your readership and a revenue source for you. And now, Google has caught onto to the potential of this form of native advertising. For those of you who don’t know what Google Adwords is, they are the ads that appear next to your Google search results which drive traffic and revenue.

Dynamic sitelinks, the newest feature of Google Adwords, will still have the original link to the homepage of the website as it always has, but additionally have links to different pages of the site. Instead of offering potential customers one place to click, they’ll now have multiple opportunities. If this sounds familiar maybe our newest product, Spotlight, is ringing a bell!  Google is already seeing success with this new technology, and we’re not surprised. With further advances and developments  on the web there will be more of a push toward native advertising and using links to bring customers to your site. After all, did you know you’re more likely to get hit by lightening than click on an irrelevant banner ad?

Written by Hanna Fritzinger

We have preliminary Publisher Roundtable feedback!

publiher roundtable blog image

Our second Publisher Roundtable is live!  This edition focuses on monetization. The survey is ongoing, but we’re eager to share preliminary feedback!

Findings show the most popular method for publishers to monetize their sites are ad networks. When choosing a network, publishers focus on traffic quality. And before engaging long term, general consensus is that publishers should test a network for 1.5 months.

Another interesting finding: content-targeted ads are used more frequently than either affiliate networks or brand sponsorship. These also generate the highest percentage of revenue for publishers. You might infer that publishers are therefore most satisfied with this format, but that’s not the case. Publishers are most satisfied with brand sponsorships.  This discrepancy begs a question: if people are most satisfied with brand sponsorships, why aren’t they using them more often?

Survey results suggest it’s not because they don’t want to, it’s that they don’t know how to do so effectively. The majority of publishers (40%) graded themselves a C at monetization.  Half stated monetization is harder than expected.

It’s critically important that information be accessible to publishers so they can learn how to monetize their content effectively without having to disrupt the user experience with other means of monetization such as content targeted banner ads.  Native advertising tools such as the array VigLink products allow you to monetize your site without interrupting the user experience. We hope you utilize the series of interviews to gain intelligent insights into your monetization strategy!

 

Written by Hanna Fritzinger

VigLink has a Pinterest!

VigLink Pinterest

Back in April Bradley Taylor wrote a blog post for us highlighting four ways to promote your personal or professional site using Pinterest. We took his valuable advice and have officially joined the Pinterest community! VigLink Pinterest will showcase some of the unique personalities of our team  you wouldn’t normally get the chance to see. We are following some of the useful tips Bradley suggested…

  1. Discover the Pinterest Community
  2. Generate original, thought-provoking content
  3. Unite all of your current social networks
  4. Piggyback popular pins!

Pinterest already has a special sector of their site called Pinterest for Business which is dedicated solely to professional sites and certainly worth checking out. The tagline for this service is, “get discovered by millions of people looking for things to plan, buy and do”. As of right now the best way you can do this is by following the four tips highlighted above, but not for long! They have just announced that they are gearing up to launch “Promoted Pins” which will expand business’ reach via Pinterest. Although this new technology has yet to be implemented, you can fill out a form on their website for priority access. Pinterest is already a wildly powerful tool if used well (people who are referred to a site from Pinterest spend 70% more), and it’s influence is only going to continue to grow with time and new advances. Is your company on Pinterest yet?    

Written by Hanna Fritzinger

Our afternoon at Larkin Street Youth Services

10391056_10152563970636684_7599014151645625001_n

 

We had a wonderful time volunteering at the Larkin Street Youth Services center yesterday afternoon. When we arrived we were greeted by their incredible Manager of Volunteers & Community Relations, Jessie, who gave us an introduction to the center and told us more about the wonderful work they do to help San Francisco’s most vulnerable youth. Not only is Larkin Street Youth Services in it’s 30th year of operation but it has evolved from a single drop-in center into 25 youth programs housed across 15 different sites. The center is set to continue to grow as they move into a larger space and have greater ability to serve an even more youth and engage them in various programs.

Our team helped by cooking lunch, organizing the clothing donation closet, and making hygiene kits.  It was wonderful to speak with some of the teens and share about ourselves and what we do. We found it truly rewarding to be amongst people who are doing such important good within our community. If you want to learn more about Larkin Street Youth Services and all of amazing things they are doing take a look at their website!

Written by Hanna Fritzinger

Internet Trends: VigLink’s Analysis on Mobile

In the wake of Mary Meeker’s latest Internet Trends Report, the important news seems to be all about mobile. In May of this year, mobile accounted for 25% of all online traffic. Mobile is growing 1.5X every year, and that number is projected to grow.

Mary Meeker’s 2014 Internet Trends Report was just released, and it’s a wealth of information for the tech world and beyond. We’ve been hearing a lot about mobile in recent months, especially at our annual conference, ForumCon, but questions still remain on just how much attention should be averted from desktops and put into mobile. Mobile is certainly a growing trend, but as some of our research suggests it hasn’t fully taken the place of desktops. Meeker further explores these contrasting platforms and describes, with raw data, just exactly what is happening and where the future of online activity is headed.

As seen in one of Meeker’s slides below,  mobile is growing exponentially. In May of 2014 mobile accounted for 25% of all online traffic. That might not seem like a lot when you consider that 75% of traffic is still going through desktops. However, the real potential of mobile is seen when looking at the slope of the trendline. Mobile is growing 1.5X every year, and that number is projected to continue to get bigger. By looking at the graph it can be inferred that by 2015 at least 35% off all online traffic will be coming from mobile, further closing in on the margin with desktop traffic.

2

There are a number of reasons why mobile is growing at such a high rate, but perhaps one of the most important to recognize (and also one of the most obvious reasons) is increased availability. Why is it that more and more people are getting smartphones for the first time?  The answer is simple, the price. The price of a smartphone has been decreasing at a 5% annual rate since 2008. This describes why mobile is prevailing in developing countries. Those populations completely bypassed PCs and adopted mobile as their first experience with the online world. This is similar to the experience of today’s youth who will be brought up primarily using mobile devices and tablets first and desktops second. Again, all of these trends are leading to the rising use of mobile to access the internet.

correct

It’s important to not completely neglect all desktop traffic just yet. As pointed out in our Q1 Content-Commerce Report, for every dollar paid on a desktop click, only 49 cents were paid for a mobile click.  There are improvements to be made with the mobile experience, especially concerning the convenience of making online purchases. However, as seen in the trends noted above, mobile is without a doubt growing and your brand’s success will be dependent how well you integrate mobile.

q1-2014-mobile_desktop

So why does this matter? Despite these convincing stats, people still aren’t giving the proper attention to mobile integration. There are plenty of companies who are now releasing statistics that mobile is over half of their total traffic, yet only a small percentage of websites actually have proper mobile sites. Are you taking advantage of the growing mobile industry?

Written by Hanna Fritzinger