Map location Details with Photos and other details

By chetan patel

I am trying to load a map with location details such as photos , address , timing , phone .

I have tried one example but i have to click on the search box to show map.

I want to load map without clicking search box.

help solve this problem. Map should be loaded deault with one location and their photos.

here is a link to source code : Example for Map with image

Here is a sample code:

var markers = [];

  function initialize() {
    var map = new google.maps.Map(document.getElementById('map-canvas'), {
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      maxZoom: 16,
      styles: [
          elementType: 'labels',
          stylers: [ { visibility: 'on' } ]
          stylers: [ { saturation: -100 }, { lightness: -20 } ]

    var input = document.getElementById('target');
    var searchBox = new google.maps.places.SearchBox(input);

    var modalWindow = new ModalWindow(map);

    google.maps.event.addListener(searchBox, 'places_changed', function() {

      var places = searchBox.getPlaces();
      if (!places.length) {

      for (var i = 0, marker; marker = markers[i]; i++) {
      markers = [];

      var bounds = new google.maps.LatLngBounds();

      for (var i = 0, place; place = places[i]; i++) {
        if ( {
          markers.push(new PhotoMarker(place, map, modalWindow));
        } else {
          markers.push(new google.maps.Marker({
            position: place.geometry.location,
            map: map,
            icon: new google.maps.MarkerImage(
                null, null, new google.maps.Point(3.5,3.5)),
            clickable: false

      function setLink(i) {
      var photo =[0].getUrl({ 'maxWidth': 50, 'maxHeight': 50 });
        var sideClick = jQuery("<a class=side_click href='#'></a>");
        $("#side_bar").append(sideClick).append("<br>").append("<div class='draggable'><img src="+photo+" style='width:50px'></img></div><br><p></p>");
         $(sideClick).on("click", function() {


    google.maps.event.addListener(map, 'bounds_changed', function() {

    google.maps.event.addDomListenerOnce(searchBox, 'places_changed');

  /* Photo Marker */
  function PhotoMarker(place, map, modalWindow) {
    this.modalWindow_ = modalWindow;
    this.place_ = place;

  PhotoMarker.prototype = new google.maps.OverlayView();

  PhotoMarker.prototype.onAdd = function() {
    this.img_ = document.createElement('img');
    this.img_.className = 'photo-marker';
    this.img_.title =;
    this.img_.src =[0].getUrl({
        'maxWidth': 100,
        'maxHeight': 100

    var that = this;
    google.maps.event.addDomListener(this.img_, 'click', function() {

  PhotoMarker.prototype.draw = function() {
    var that = this;
    if (!this.img_ || (this.img_ && !this.img_.complete)) {
      this.imgLoader_ = window.setTimeout(function() {
      }, 50);
    var proj = this.getProjection();
    var pos = proj.fromLatLngToDivPixel(this.place_.geometry.location);
    var w = this.img_.offsetWidth;
    var h = this.img_.offsetHeight; = Math.floor(pos.x - w / 2) + 'px'; = Math.floor(pos.y - h / 2) + 'px';

  PhotoMarker.prototype.onRemove = function() {
    this.img_ = null;

  /* Modal Window */
  function ModalWindow(map) {
    this.service_ = new google.maps.places.PlacesService(map);

  ModalWindow.prototype.createDOMElements_ = function() {
    this.modal_ = document.createElement('div'); = 'modal';

    var modalWindow = document.createElement('div'); = 'window';

    var close = document.createElement('img'); = 'close';
    close.className = 'close';
    close.src = '../images/close.png';
    close.alt = 'Close window';

    this.info_ = document.createElement('div'); = 'info';

    this.photo_ = document.createElement('div'); = 'photo';

    this.photos_ = document.createElement('div'); = 'photos';

    this.attribution_ = document.createElement('div'); = 'attribution';

    var mask = document.createElement('div'); = 'mask';

  ModalWindow.prototype.addEventListeners_ = function() {
    var that = this;

    google.maps.event.addDomListener(this.modal_, 'click', function(e) {
      if ( && ( == 'close' || == 'mask')) {

    google.maps.event.addDomListener(document, 'keyup', function(e) {
      // Esc key
      if (e.keyCode == 27) {

  ModalWindow.prototype.getDetails = function(place) {
    if (this.place_ && == {

    var that = this;
    this.service_.getDetails({'reference': place.reference},
        function(details, status) {
      if (status != google.maps.places.PlacesServiceStatus.OK) {
      that.place_ = place;
      that.details_ = details;

  ModalWindow.prototype.createContent_ = function(place, status) {

  ModalWindow.prototype.createPhoto_ = function(photo) {
    this.photo_.innerHTML = '';

    var img = document.createElement('img');
    img.src = photo.getUrl({'maxWidth': 480, 'maxHeight': 246});

  ModalWindow.prototype.createInfo_ = function() {
    this.info_.innerHTML = '';

    var name = document.createElement('h3');
    name.innerHTML =;

    var address = document.createElement('p');
    address.innerHTML = this.place_.formatted_address;

  ModalWindow.prototype.createThumbnails_ = function() {
    this.photos_.innerHTML = '';

    for (var i = 0; i <; i++) {
      var thumbnail = document.createElement('img'); = i;
      thumbnail.src =[i].getUrl({'maxWidth': 88,
          'maxHeight': 88});

    this.photos_.firstChild.className = 'selected';
    this.selected_ = this.photos_.firstChild;

    var that = this;
    google.maps.event.addDomListener(this.photos_, 'click', function(e) {
      if ( && == 'IMG' &&
 != 'selected') {

  ModalWindow.prototype.changeSelected_ = function(thumbnail) {
    this.selected_.className = '';
    thumbnail.className = 'selected';
    this.selected_ = thumbnail;


  ModalWindow.prototype.createAttribution_ = function(photo) {
    this.attribution_.innerHTML = '';

    if (photo.html_attributions.length) {
      this.attribution_.innerHTML = photo.html_attributions[0];
      var link = this.attribution_.getElementsByTagName('a');
      if (link[0]) {
        link[0].target = '_blank';

  ModalWindow.prototype.showWindow_ = function() { = 'block';

  ModalWindow.prototype.hideWindow_ = function() { = 'none';

  google.maps.event.addDomListenerOnce(window, 'load', initialize);

Source: Stack Overflow


An Effective (but Embarrassing) Way to Develop Elite Copywriting Skills with Mini Habits

By Stephen Guise

After reading smart advice, how many of us immediately turn around and apply it?

Not many, unfortunately.

If smart advice only produces results once we begin applying it, why doesn’t it automatically become a part of our lives after we read it?

This post will help you bridge the vast gap between learning something and applying it.

To bridge the gap between theory and reality, we need an application strategy that empowers us to practice.

Until we apply what we’ve learned, the benefits of any action remain theory instead of reality.

My secret for applying what I’ve learned … fast

For the first 10 years I was interested in personal growth, I made meager progress.

I wasn’t one of those transformation stories like Jack LaLanne, who heard a seminar on healthy eating and changed his behavior dramatically — starting his path to become the “godfather of fitness” for the next several decades.

I’d be willing to bet that most other people don’t fall into that quick frog-into-prince category either.

In the last three years, however, I’ve made massive strides in multiple areas of my life at the same time.

Do I have a secret? Yes, actually. I stumbled upon a nearly foolproof application strategy. Before we talk about that, it’s important to understand the supreme importance of practice.

Practice makes subconscious

The popular saying is “practice makes perfect.” The more accurate saying is “practice makes subconscious.”

If you want to become good at anything, you have to recruit the power of your subconscious brain. There is no other way.

For example, Michael Jordan was so skilled at basketball because he practiced so much that all the scenarios, movements, and requirements of the game became second nature to him.

He didn’t have to consciously think, “Okay, I’m going to dribble around this guy, do a quick spin, pump fake to get the big man to jump, and do a reverse layup on the other side.” Instead, he did it all instinctively and swiftly. He had the skills, athletic ability, and court awareness, all of which were developed through hours and hours of practice.

Similarly, expert copywriters have practiced the craft so much that the right words, sentence structure, and emotional tone flow out of them — the concepts of effective copywriting are already a part of their ways of thinking. They may consult materials to aid their efforts (as Jordan studied the game of basketball), but they don’t necessarily need them in order to do a fine job.

Beginners in any discipline need external help because they haven’t learned the core skills yet. On their paths to mastery, they’ll often emulate known authorities.

The difference between experts and those trying to emulate them is the amount and consistency of practice.

To reach your goal — whether it’s to create a popular blog, become a world-class copywriter, or do a double backflip on skis — you must practice consistently.

Success comes from consistent, repetitive action

When most people want to become good at something, they do it a few times and quit, or they do it sporadically for years.

To the subconscious mind, this doesn’t cut it. If you want to change your subconscious, repeat a behavior over and over and over again. Repeat it once more after that. Do it every day. Repetition is the language of the subconscious mind.

Seth Godin has written 18 bestselling books and has one of the most popular blogs in the world. Do you think it’s coincidence that he’s published a post every day for years and is a successful writer? I don’t.

“If you know you have to write something every single day, even a paragraph, you will improve your writing.” – Seth Godin

Success is born from consistency. People aren’t consistent because they’re successful; their consistency creates and sustains their success.

You won’t believe what triggered my breakthrough

If you’ve been reading carefully, you’ve noticed that I think consistency matters a lot. Well, I want to take it a step further. There is nothing more important than being consistent.

Let me briefly explain why I believe this so sincerely.

It was mid-2013, and I was struggling (to put it lightly). I had been blogging for 2.5 years and only had 440 subscribers to show for it. Most of my peers had done far better in far less time. Despite my Finance degree, I was jobless and living with my parents at the ripe old age of 28. My hopes for the future were ashes at the feet of my reality.

I made a decision in mid-2013, however, which gained me 4,000 more subscribers during the rest of that year.

Later that same year, I self-published a book which has been translated into more than a dozen languages and has been the number one self-help book in the USA, Canada, and South Korea.

After that, I created a video course, which now has more than 7,500 paying students. I wrote another international bestselling book last year, and my blog has grown to more than 12,000 subscribers. I’ve also put on 15 pounds of muscle by going to the gym.

It was a dramatic turnaround. What do you imagine was the “big” strategy that changed my life?

Writer’s Xtreme Boot Camp: Bleed By Day Three or Your Money Back!

Um … no. Yikes.

You went to Tibet and found yourself!

Nope. Sounds fun though.

You got lucky.

I don’t believe in luck anymore; I believe in consistency.

I’ll tell you the real strategy that created my avalanche of positive change, but you might laugh at it and you may not even believe me. In mid-2013, at the height of my failure, I set four daily goals that changed my life:

  1. Do one push-up.
  2. Write 50 words (blog).
  3. Write 50 words (book).
  4. Read two pages in a book.

Anticlimactic, isn’t it? Four activities that took me a cumulative time of five minutes to do completely transformed my life.

I call these “mini habits,” and it’s the topic of that book I published in December 2013.

Mini habits make application (really) easy

The transformation in my life occurred as a direct result of my strategy change. I switched from chasing “goals” to chasing consistency. Because these mini habits were so minuscule, I had no problem accomplishing them every day.

This concept is about more than just “set small goals.”

A unique part of the mini habits strategy is that the daily goal is not a ceiling. I actively encouraged myself to do more than my mini requirements. This ensured my consistency and also gave me an outlet for excess motivation. I realized that motivation isn’t supposed to be our primary fuel for action, though — it’s too inconsistent for that.

In psychology, there’s a term called autonomy. It’s far more important than people realize: “The term autonomy literally refers to regulation by the self. Its opposite, heteronomy, refers to controlled regulation, or regulation that occurs without self-endorsement.”

Autonomy means that you feel in control and are in charge of yourself.

Most goals people set seem like they provide autonomy since they’re decisions we make, but a big goal can easily become the boss you despise.

For example, when you’re unmotivated, you’ll resist the goals you’ve set, and you’ll feel controlled by your prior decision to pursue the goal. Your sense of autonomy will disappear and you’ll feel controlled. When people feel controlled, they fight back or try to escape.

Instead of stripping away your sense of autonomy, a mini habit enhances it and makes you feel empowered.

It’s never too intimidating to practice copywriting for 50 words or one minute. You’ll often exceed your small goal, not because of an arbitrary aim, but because you want to get better at it. You want to practice more, and meeting your mini habit requirement is a potent momentum and motivation booster to keep going.

A mini habit shines most on the days you’re tired and unmotivated, as you can still knock out your requirement and feel good about what you did.

This is why the mini habits strategy is the ultimate consistency tool.

Start small on your way to big results

Aristotle famously said, “We are what we repeatedly do.” That is true, even if what we repeatedly do is really small and simple.

Before my writing mini habit, I wrote sporadically and my results were sporadic.

When you do something every day, you resist it less over time. That’s why I was able to go from one push-up a day to a full gym habit. As a bonus, you will also develop the skill more rapidly.

There are considerations, such as how many mini habits to pursue at once and how to keep your mini habit small, but that’s beyond the scope of this article. For that, I recommend reading the Mini Habits book, which goes into more detail.

Dream big, but keep your goals small to harness the exponential power of consistency. You won’t look back.

The post An Effective (but Embarrassing) Way to Develop Elite Copywriting Skills with Mini Habits appeared first on Copyblogger.

Source: Copy Blogger


2016 guide to free online SEO training courses

By Chuck Price

google doc

All of the SEO knowledge with NONE of the expense.

Online education is big business. That includes the digital marketing space. Scores of people are pushing online training programs promising to turn students into ‘SEO Rockstars’.

Here’s the good news. You can learn most, if not everything, taught in these courses for FREE. I’ll even share the ‘secret sauce’ that nobody ever tells you about. Here it is: Being successful online takes a LOT of HARD work. It requires having an understanding of how SEO works, then taking the time to develop and execute a strategy. On the plus side, most SEO skills are non-technical in nature. These skills can be acquired over time and at your own pace.

Following is a syllabus that I have created for the development of Organic Search Specialists at my own company, Measurable SEO. Individuals could use this knowledge to secure a job in SEO or to optimize their own website(s). Companies looking to develop an in house marketing team could also follow this plan.

Introduction to SEO

In the US, Google enjoys roughly double the market share of Bing and Yahoo combined. No one understands Google better than Google itself, so the best place to begin is by reading and understanding the 32 page Google SEO Starter Guide. This guide was originally developed as an internal document for Google employees and later released for the benefit of webmasters.

Some other good beginner guides:

Website Performance

Google has developed a Website Performance Optimization MOOC. In this short course, you’ll learn how to optimize any website for speed. The introduction of the accelerated mobile page project (AMP) and the use of website speed as a ranking factor are signals that speed is an increasingly important factor for achieving online success. Looking for a quick tutorial instead? Check out A Beginner’s Guide to Website Speed Optimization.

User Experience

The User Experience for the Web (WebUX) MOOC provides an overview of the general principles of online user experience. Students will learn about the techniques and tools used to create a great UX and how user-centric design fits into the software development cycle.

For those interested in learning more about Mobile optimization, there is a UX Design for Mobile Developers course. Invest six hours per week to finish this course in approximately six weeks.

Technical SEO

As mentioned previously, most SEO is non technical, but one cannot ignore the fact the web is a technical platform. There are certain rules and best practices to follow when building and auditing websites. This module, from Distilled U, explains how search engines interpret pages. This knowledge will help you in diagnosing problems and understanding how to improve websites. You will need to sign up for a Demo account, which permits you to experience up to three modules for free.

Keyword Research

A Google search for the phrase ‘keyword research’ returns nearly 7 million results. This is probably the most written about topic in all of SEO, so where do you begin? In terms of a simple, yet comprehensive and effective approach, I like the 19 Step Keyword Research Process. This exercise is designed to help you find relevant and highly searched keyword phrases with low competition.


On Page Optimization

The basics are covered well in the Google Starter guide. A number of free tools are available to assist you. One ‘advanced’ optimization technique, marking up content with schema, is detailed in this Quick Start Guide . Once you’ve finished optimizing your site, analyze it using the free Microsoft SEO Toolkit.

Writing for the Web

This Writing for the Web course emphasizes the differences between online writing and print writing. Without understanding that difference, it is difficult to effectively communicate across the web. Due to the interactive nature of the internet, the course emphasizes the importance of user behavior. You will learn how web design, writing style, structure and search engine optimization can impact that behavior.

Content Strategy

Creating an Effective Content Strategy for Your Website is an online course which teaches you how to develop a strategy that utilizes a variety of media (text, images, videos, and infographics) across multiple channels.

In this course, the instructor will show you how to transform an outdated, text heavy website into a multimedia powerhouse. Learning how to create a content inventory, gap analysis, and content matrix will help you form the foundation for a strategy. This will require signing up for a 10 day free trial at Since the course is only two hours long, you should be able to easily complete it within the trial period.

Creating an Effective Content Strategy for Your Website

If you prefer a written tutorial, as opposed to an online video, check these out:

Link Building

There has been a lot of chatter on the web that links aren’t as important as they once were. I have written several articles explaining why that isn’t the case. The mere existence of the Penguin algorithm and manual link penalties sends a clear message that links still have a profound impact on search rankings. This was most recently confirmed on March 23, 2016 in a Google Q&A where the three most important ranking signals were revealed.

Link-Building is a ranking signal

The key takeaway is to be in compliance with Google webmaster guidelines pertaining to link building and to stay away from link schemes. The follow guides will get you started:

Google Search Console

Formerly known as Webmaster Tools, the data, provided by Google, in the console, helps you monitor a website’s health and visibility within Google Search results. The search console offers insight as to how Google views a website and helps one optimize for peak performance in the SERPs. Learn about Search Console by navigating to Search Console Help

Google Analytics

Many are intimidated by Google analytics, but there’s no need to be afraid when you can become a pro for free. Google teaches analytics via online courses at Analytics Academy. Choose from a wide array of self-study programs, including:

  • Digital Analytics Fundamentals
  • Ecommerce Analytics
  • Google Analytics Platform Principles
  • Google Tag Manager Fundamentals
  • Mobile App Analytics Fundamentals

By taking these courses, you will learn the key principles of digital analytics and specifically how to get started with Google’s own Analytics.

Analytics Academy

Run a Digital Marketing Campaign

After you have studied all of this material, it will be time to run a digital marketing campaign. This course teaches you how to assemble and organize different online marketing channels into a cohesive, profitable campaign. This 10 hour course touches on everything from design and how it can influence customer decisions to calculating ROI, measuring marketing channels and knowing what to focus on.

In Summary

Despite the overwhelming volume of digital marketing resources available on the web, much of it is outdated, or in some cases, really bad. If you study all the course material presented here, you will have a better understanding of SEO than many of the so called SEO rockstars.

Just keep in mind that digital marketing is very fluid and ever changing. The famed cinematographer Conrad Hall probably sums it up best, “You are always a student, never a master. You have to keep moving forward”.

Source: Search Engine Watch


The rise of ‘Micro-Moments’ and how to optimise for ‘near me’ search queries

By Chris Lake

Screen Shot 2016-03-29 at 08.37.11

In the past year or so Google has published numerous articles and research around the topic of ‘Micro-Moments’, which it describes as “the new battleground for brands”.

Let’s look at a top level overview and then we’ll explore a few ideas around how to optimise one particular micro-moment.

So what are ‘micro-moments’, exactly?

Google says they are “critical touch points within today’s consumer journey, and when added together, they ultimately determine how that journey ends.”

It points to the use of mobile as a key driver of searches that reflect a consumer’s micro-moment, and it says brands need to be ready for them.

“These I-want-to-know, I-want-to-go, I-want-to-buy, and I-want-to-do moments are loaded with intent, context, and immediacy.”

All of which sounds marvellous, if you know your search onions.

There are numerous stats to help focus minds, should you need to convince colleagues or clients. These stats come from a survey Google conducted in the US last August (they undoubtedly reflect wider trends in the more mature mobile markets).

  • 91% of smartphone users turn to their phones for ideas when in the middle of a task
  • 90% are not certain of the brand they want to buy from
  • 82% use their phones to check on prospective in-store purchases
  • 65% look for the most relevant information to their query, regardless of the company that provides the answer
  • 51% have discovered a new company or product when searching on their phone
  • 33% have purchased from a different brand than the one they had in mind, because of the information provided

In summary, when it comes to finding answers, mobile searchers are a) very active and b) not brand loyal.

This is a huge opportunity, especially as the mobile search land-grab is still underway, with many firms lagging behind due to poor mobile user experiences.

The advice? It’s all about anticipation, relevance and ease of use…

An example of ‘Be There’ would be around location.

Consider the growth in ‘near me’ searches. These are when the user adds ‘near me’, ‘nearby’ and nearest’ in their queries. Google says that ‘near me’ searches have doubled in the past year.

If you look back a little further, it would appear that these searches have skyrocketed since 2013, with ‘near me’ growing 15-fold.

Screen Shot 2016-03-14 at 13.09.03

Google Trends needs to be taken with a little pinch of salt, not least because it the volumes indicated are relative rather than absolute, but any which way you look at it, that’s huge growth.

How to optimise for ‘near me’ searches

I won’t go into too much detail here, but you can dig into these seven areas for starters.

Do the basics

As in, have a properly structured, highly usable website, with some excellent content and technically optimised for the search engines. Make sure it you create a frictionless user experience across all devices. If you run an ecommerce operation then this is a very good read.

Optimise your existing footprint (or create a new one)

Google looks for a bunch of basic information about your business to display within its local listings. Things like contact information (address, phone number, email), a map (e.g. Google Maps), opening hours, customer reviews, and so on. Use schema markup for extra brownie points.

Set up local business listings

Moz Local can prove helpful in this respect a lot. In fact, David Mihm’s slides from last September’s Brighton SEO event are a goldmine of insight in this area.

Get lots and lots of reviews, and then get some more

Google is increasingly paying attention to reviews, and with good reason. A Brightlocal survey on the subject last August found that only 11% of consumer don’t take any notice of them. Quality and velocity matter. I feel that most brands – especially offline companies – don’t do enough to secure customer feedback, even when we know it is a crucial part of Google’s local search algorithm. I also think that Google will uprate social ranking signals in the years to come.

Undertake a local search audit

There are a number of tools that you can use to analyse local rankings, to figure out how to get one over your competitors.

Get more local links

Make friends with the community! There are plenty of ways of attracting links from local sites. Think about events, directories, local news sites, awards, schools and colleges, non-competing companies, and so on.

Add ‘near me’ copy on your pages

Does this really work? Colleen Harris at CDK Global investigated whether this would help by undertaking a study of 82 auto dealers over a five month period. She found that those that added ‘near me’ content increased clickthroughs by 81%, compared with those that didn’t (8,833 clicks vs 4,365 clicks). Impressions increased too, though by just 15%. Good enough!

In summary

Google is going big on micro-moments, and there are a ton of articles and studies to explore over at its Think With Google site.

It’s true that many companies have a lot more work to do in terms of understanding the consumer journey, and that the mobile user experience on many sites leaves a lot to be desired. But there’s a lot to play for, and the guidance issued by Google – as well as the countless algorithmic and search UI tweaks – suggests that it is now essential to get on top of this stuff.

Have you had any success with optimising your site for micro-moments? Do leave a comment below…

Source: Search Engine Watch


Three early results of Google removing right-hand side ads

By Jason Tabeling

impression changes

About a month ago, Google introduced what now seems like a very obvious change to its results pages: it removed paid search ads from the right-hand side.

Apparently Google made this change based on years of testing. These tests showed that no one was really clicking on these ads and it would better align with the mobile experience if they simply weren’t there.

The impact of this means there will be less inventory, and ranking at the top of the page is potentially even more important than ever before.

So now that we are a few weeks into this change what is the impact? Did everything the industry predicted come true?

To understand the impact I ran a keyword level report that included the Top vs. Other segment, looking at three weeks post and prior to the change.

There are three things to note:

1) Inventory is down

As expected, with no more ads on the right-hand rail there are less ad spots available. As a result we are seeing a 19% decrease in total inventory. The majority of that reduction is within the Other bucket.

2) Traffic shifts

You can see from the data below that traffic for positions below the organic listings has shifted up significantly and dropped in lower positions due to inventory restrictions. You also see an increase in traffic to positions 3 & 4 in the Top ads. While the increase is still noticeable, it is still <5% of total traffic in the post-right-hand-side-ad world. This implies that either we don't manage a lot of brands that have ‘highly commercial' queries or that the impact of adding a 4th position is still pretty small.

traffic by position other

3) Despite these changes CTRs and CPCs are down

The fact that click-through rates are up isn’t that big of a surprise given the fact that more ads are seen by searchers, so you would expect more click-throughs to occur. What is really good news for advertisers is the fact that consumers are responding well to the new layout of the page: CTR is up {12%) and CPCs are down (-11%). Hopefully this will help overcome the reduction in overall inventory.

post right rail changes

So what does it all mean?

This is a big change that seems to be having the expected impact of reducing total inventory, but increasing the amount of traffic as a percent of total impressions.

Advertisers need to be taking a look at their own data. Are they seeing different data? Are CPCs going up in certain areas given competition? Is the incremental CPC worth it to your business, or does the reduction in CPC allow you to spend more in other areas?

Staying close to your Top vs Other data segments and detailed data points will allow you to respond to this change in a smart and sophisticated way.

Source: Search Engine Watch


How to escape an email (used as an ID) in a Rails URL?

By Andrew

I have a route that looks something like this:

resources :emails

I want to link to an individual “Email” resource, so I try this:

<%= link_to "Show", email_path(CGI.escape("")) %>

Which creates a link that looks something like this:

<a href="/emails/">Show</a>

In my show action, the email param is not parsed correctly:

#> "user@example"

It seems that Rails is rejecting the TLD part of the email address. How can I escape the email address correctly so that I can use it as the ID param in the URL?

Source: Stack Overflow