Read The Cowboy Code here.
Categories
-
Pages
-
RSS Links
Featured Content
Analysis Exchange
Podcasts
Blogs
Flickr
Connected
Meta
Back in April I wrote a blog post titled ‘Analytics All-Stars: Create Custom Dashboards Using APIs.’ The post described the high-level framework needed to create actionable dashboards outside of the SiteCatalyst interface. After publishing the post, I received comments from several people asking for more detailed instructions on how to create custom dashboards, so I decided to create a 3 part series detailing each step in the process.
That’s right, most of the so called “customer service” you are receiving, most likely sucks.
This weekend, my grandparents asked me to accompany them while they purchased a new car. My grandma insisted that they stay local,”I want to buy from one of dealers in this town because I know them and they will take care of me.” I found myself shaking my head, grumbling under my breath that she was just being “old fashioned.” However, by the end of the day, the experience really caused me to take pause and question if all our efforts to create a global marketplace, where everything is bigger, better, and most importantly cheaper, had a dark side of killing personal relationships.
My grandparents live in a quaint old town, with a classic main street that is lined with local shops, everything from a soda fountain that still cooks greasy burgers and fries to a shoe repair shop that that has been there for 90 years. However, with each passing year, main street is slowly dying, being pushed out by large box stores being built on the edge of town. This same scene is being played out across the country as we demand we get our products quicker and quicker for cheaper and cheaper. But at what cost?
Compared to the local car dealership, that has been taking care of my grandparents for over 50 years, the people staffing the local box stores and chain restaurants are just temporary. The guy at the car dealership has been there 20 years and will probably be there another 40, he took the business over from his father, they are “part of the town.” The girl working down at the Home Depot probably won’t be there next year, the guy taking your order at Wendy’s will have moved on the next time you stop in. It’s not that they don’t care and it’s not that these businesses don’t stress the importance of good customer service, it’s that they simply aren’t part of the community.
So as businesses are expanding and main street is dying, what are you doing to ensure that you are part of the community and most importantly, you are giving your customers the same great customer service that the small shop on Main Street, Anytown USA, loyally gave their customers for 150 years?
Back in December, I wrote a blog post detailing my frustration with Omniture for charging clients to access their expanded video library called Enterprise TV.
Although I felt as if I had laid out a well thought out argument, many at Omniture felt differently. They felt personally attacked. They felt as if I was taking cheap shots at them. From friends on the inside, I heard stories of horrible things that were being said about me. There were threats of removing me from the Omniture Advisory Board. There were calls placed to my employer. So I took down my blog. That is when all hell broke loose. The community began to attack Omniture for their behavior. It got ugly, really quick, with it culminating in the creation a Hitler spoof video, from an unknown member of the community, insinuating that Omniture was trying to silence a vocal critic.
We had reached a fork in the road. The management team at Omniture could have chosen to simply ignore this event or they could use it as a learning opportunity. They choose the later. A few weeks after this incident went down, I received a call from Omniture and was extended an invitation to speak to a large group of marketing managers from Adobe about the experience and my views on how corporations can use social media to better listen and respond to their communities.
Unbeknownst to me, Omniture was also using this event as an opportunity to train key employees so that if there were ever a similar event in the future, they would be better prepared to handle it.
Fast forward 8 months. Another pretty serious issue between myself and Omniture. I went to Twitter and threatened to expose them in a blog post but this time was different. They didn’t overreact, they didn’t take it as a personal attack, they didn’t throw gasoline on the fire. Several people reached out to me, asking how they could help resolve the issue. They didn’t promise they would have the answers but they did promise to get the right people involved who did.
I was amazed, the reaction and the way things unfolded were complete opposite of what happened back in December. After talking with several people, I was connected with someone who could help address my issue and we sat down and had a professional conversation to address my concerns.
A huge company like Adobe could have simply written off what happened back in December, they could have taken the stance that they are a huge multinational company and I’m just one little blogger, with about 10 people who read by blog, and continue on with the status quo. But they didn’t, they actually took the time to learn from this ugly moment in time and to train their employees to be better able to address similar issues that were sure to come up via a social channel at some point in the future.
Bravo Omniture & Adobe for actually listening and for taking the initiative to learn and grow from this experience. I am impressed.
I’m a pretty private person. One of my mom’s greatest fears is that I will move to the mountains and become a hermit. But today, I feel like I just need to share this story.
For 6 years, our family struggled with infertility issues, which resulted in at least 4 miscarriages. When I couldn’t have a biological child of my own, I got Keykers. He was my baby. He was my best friend.
He taught me about unconditional love. He taught me to be accepting of everyone, no matter the situation, you never know the personal trials that someone is going through. I haven’t learned this lesson so well yet but Keykers was perfect at it. No matter how bad I felt, no matter how scared I was, he was always by my side and loved me and made me feel safe in some of the darkest years of my life.
On the grand scale of things, the stuff we stress out about and fight about everyday, really doesn’t matter. Living life and making memories with your family is what really matters.
So remember, if only for this day, if someone cuts you off in traffic, is rude to you at the store, or whatever it is, please just give them the benefit of the doubt. They may be dealing with a very heavy heart. They may have just had to let their best friend go.
I love you Keykers. Everything is ok now.
As many of you remember, back in December the #Measure community rallied together to raise an astonishing $5,260 to provide clean drinking water for a very needy community.
Because we raised over $5,000 we are allowed to provide a short message to be written on a plaque that will designate who sponsored the project. The message on the plaque can only be 50 characters, including spaces. Messages are due by June 15, so I’m coming to you, the community who helped fund this wonderful project, for ideas on what our plaque should read.
In about 18 months, photos of the project will be posted along with the village name and information, and GPS coordinates to the well.
This is very exciting and I’m so grateful to be part of such an amazing community.
If you have ideas for our plaque, please leave them in the comments.
Back in April I wrote a blog post titled ‘Analytics All-Stars: Create Custom Dashboards Using APIs.’ The post described the high-level framework needed to create actionable dashboards outside of the SiteCatalyst interface. After publishing the post, I received comments from several people asking for more detailed instructions on how to create custom dashboards, so I decided to create a 3 part series detailing each step in the process.
Part 1: Getting the Data
Part 2: Storing the Data
Part 3: Building the Dashboard
Your assignment. Create a custom dashboard to display your site’s top 5 pages. The dashboard will be delivered to executives daily and will trend the page views for each page against the previous day as well as the previous same day of the week.
By the end of Part 3 of this series, you will have all the information you need to complete your assignment.
Part 1: Getting the Data
In Part 1, we will review how to extract data from your Omniture SiteCatalyst report suite using the SiteCatalyst Reporting API.
What you will need:
→Undertanding of Omniture’s REST API
→Access to a SiteCatalyst report suite with data
→A SiteCatalyst user with Web Service Access rights
→A server running PHP
→A working knowledge of PHP
→SimpleRestClient.class.php
The Rest API
Before we go any further, I strongly suggest that you take a few minutes to read Andreas Dierl’s post titled ‘How to start with the Omniture REST API in PHP.’ In this post, Andreas provides a great overview of how to use the REST API to retrieve data using the SiteCatalyst Reporting API. His post will serve as the foundation for this series.
Let’s begin….
Web Service Access
We will need a user that has Web Service Access for your SiteCatalyst login company. To give a user access rights, you will need to be a SiteCatalyst admin.
Navigate to Admin–>Admin Console–>User Management
Edit the user account for the user that you will grant Web Service Access to. In the ‘Access’ area of the User Management screen add ‘Web Service Access’ as shown below.
Make note of the ‘User Name’ and ‘Shared Secret’ we will need these values shortly.
Connection Details
We will need to gather a few other details in order to successfully connect to the appropriate SiteCatalyst Report Suite.
→API Server: If your repor suite is located in San Jose then your server will be ‘https://api.omniture.com‘ If your report suite is located in Dallas then your server will be ‘https://api2.omniture.com‘ If you don’t know where your report suite is located, contact ClientCare.
→Report Suite Id: Retrieve the Report Suite Id for the suite you wish to extract data from.
Download SimpleRestClient.class.php
As mentioned in Andreas’ post, we will make use of an existing class, SimpleRestClient.class.php, to make coding our script a bit easier. Download the script before continuing and upload it to your server. NOTE: To keep everything organized, create a new directory to house all the files associated with this project.
Download Omniture REST API Template
Rather than building the script from scratch, I highly suggest modifying an existing template. Download the Omniture REST API Template that was developed by Andreas Dierl.
Rename the file to ‘dashboard.php’ and upload to the same directory you uploaded SimpleRestClient.php.
Configure the Script
Now that we have a template in place, let’s configure the script to retrieve data from your report suite. Open the script in your favorite text editor and make the following updates:
→Line 5: $username = ‘INSERT_USER_NAME_HERE’;
Update this line to contain the Web Services User Name that we created previously. It will look something like ‘login:company’
→Line 6: $secret = ‘INSERT_SECRET_HERE’;
Update this line to contain the Shared Secret that we created previously. It will look like a random string of numbers and letters.
→Line 11: $server = “INSERT_SERVER_HERE”;
Update this line to contain the server associated with your Report Suite. Either ‘https://api.omniture.com’ or ‘https://api2.omniture.com’
→Line 26: “reportSuiteID”:”INSERT_REPORT_SUITE_ID_HERE”,
Update this line to contain your report suite Id.
You can optionally update lines 27 and 28 to change the reporting time frame. For this exercise, we will run the script daily using the previous date as our timeframe.
To automate the script, we would need to programmatically assign the ‘dateFrom’ and ‘dateTo’ to ‘YESTERDAY’ rather than hard coding a date. You could use the following:
date(“Y-m-d”, strtotime(“yesterday”));
Save the updated script to your server.
Test the Script
That’s it! We are ready to test the script. This script will return the Top 5 Page Names by Page Views for the selected period. This is a simple example we are using to teach the process, you would update the Elements and Metrics used in the script to match the data needed to create your custom dashboard.
To test your script, point a web browser to the location of your script, something like ‘YourServer.com/omniture/dashboard.php’
If everything is working as we expected, you should see a list of your top 5 pages in the format of ‘Page Name – Page Views’
Example Report Output
Page – PageViews
Corp : Home Page – 41
Corp : The Management Team at Keystone – 22
Community : /community/ – 22
Corp : Services – 16
Corp : Contact – 12
In Part 2 we will talk about how to take the output from the script and insert it into a database.
Failure is an opportunity.
If you blame someone else,
there is no end to the blame.
Therefore the Master
fulfills her own obligations
and corrects her own mistakes.
She does what she needs to do
and demands nothing of others.
~Tao Te Ching
On todays show we discuss measurement as it relates to customer service and aspects of social media. Please feel free to add your thoughts and comments as we strive to make the show better every week. This week Michele Hinojosa joins us….. so that makes things better already!
Direct Download Link
Podcast RSS Feed
1:00 – Michele Hinojosa joins us on the cast!
3:20 – Customer Service – Is it measurable?
5:00 – Are digital and social media based customer service teams doing a good job of integration with brick & mortar locations?
6:00 – Silo’s – We dislike them here at the Measure Mob, seems all they’re really good for is storing corn!
12:00 – Jason rants! Customer service centric business’ to bagging your own groceries?
14:00 – Customer service, a cost center? or valued department?
17:00 – CRM and web data integration
20:00 – Do we need a digital data czar?
28:00 Discussing a culture where by it’s ok to make mistakes. (Inspired by Evan Lapointe)
30:00 Goofy Break Time – Michele tells us what Jojoba and #TeamEvilForces means. (Inspired by Jeff Katz & Emer Kirrane)
36:00 Sponsored Tweets — Spam or value add?
40:00 Let social people be social and let analylists do the analysis.
48:00 Jason says, “If we couldn’t measure social, too bad, you have to be in it!”
50:00 Don’t measure because you can. Measure to solve business problems and make people more effective!
Free is NEVER Free, Cheap is NEVER Cheap
A discussion on the importance of understanding total cost of ownership.