in

MySoftwareStartup

Dedicated to help those that own or are thinking of owning a software development company

Randy Walker Blog

Randy Walker's Blog website where he shares his experiences while being a software entrepreneur, Microsoft MVP, and industry influencer
  • Microsoft congregates it's ads under one flag "Microsoft Advertising"

    MS Advertising

     

     

    Exactly two months ago Microsoft sent me an email introducing it's new branding called "Microsoft Advertising" (note that the page is presently erroring out).  Personally I think the new branding is a step forward, as I never cared for "AdCenter".  But the really interesting parts of the e-mail was the brief mention to a host of products I've never heard about.  As with their ongoing issues, let us see if Microsoft can get the execution right.

    Atlas is their rich media advertising.  I'm guessing this means flash and silverlight ads, and probably focusing on banners.

    DrivePM, according to their website, is more about a full marketing program including e-mail and demographics.

    Live Search Cashback is a consumer oriented service that gives cash back for purchases made through their product comparison search engine.  Think of it as Pricegrabber, but produced by Microsoft.

     

    Technorati Tags: ,,
  • How I think Twitter can solve it's problems!

    If you're an avid twitterer (or twit for short), you'll be very familiar with it's downtime issues.  Well as I see it, there are 3 major problems Twitter has.  Downtime, Spammers, and a lack of viable income. 

    So how do I think it can solve it's problems? 

    Simple, charge anyone with a follow to follower ratio greater than 2 to 1.  This would immediately eliminate 99% of spammers, drastically cut the system resource issues (thus reducing downtime), and create an income for company.  While I doubt this will completely resolve it's lack of income problem, it's a step in the right direction.  Those who use twitter as a marketing method, can continue to use the service, but must pay for it.

    That's my 2 cents.

     

    Technorati Tags:
  • Using Jott for Child Custody records

    logo_beta

    Having recently been through a somewhat distasteful divorce (all but being called an abusive and negligent father), I came to recognize the need to establish custody records while I have my son.  The need arises because I need proof of both my own and her actions.  This way she cannot call my integrity into question again, and should the need arise, I can use the records to establish her own pattern.  The various things I need to record are pickup and dropoff times, interaction with his mother (a very very important task), and basically record everything I do with him.

    After a search on the Internet and briefly perusing the software offerings, I determined that none of them were adequate.  They were all hard to use, not very feature rich, or just plain junk.  I had thought about recording things in my Outlook calendar (I already use it to schedule the times I have my son), but thought that backing it up and searching for records would be too difficult.  Then I remembered Jott.  I already use it to remind myself of to-dos, why not use it for my custody records?

    So what is JottJott essentially allows you to send a text email with your voice.  How it works is, you call their phone number, tell them who you want to send a message to, and then tell Jott what the message is.  It will do all of the voice translation to text for you.  Now the caveat is, you have to tell Jott all of your contacts and their email addresses.  But for the case of making notes for yourself, when you call in and it asks, "Who do you want to Jott?" you just answer "myself".

    Now in the case of custody records, all I have to do is call Jott with my cell phone and make a quick note of what just happened concerning my son or his mother.  The record will get sent to my email and I just move that email to an archive folder.

     

    Technorati Tags: ,
  • Winner of Certification Exam Voucher

    GiveawayWinner

    Surprisingly enough, Chris Love wins the Microsoft Certification Exam Voucher.

    I calculated the winner by counting the total number of entries first.  http://GeeksWithBlogs.net/rwalker comments first, then http://www.MySoftwareStartup.com comments next.  I then visited http://random.org and asked for the winning comment number.  A screen capture of the winning randomly generated number is above.

  • NBC Olympics site goes live with Silverlight 2 streaming

    nbc

    Over the past year, Microsoft has broadly touted their partnership with NBC and the video feeds they will provide for the Olympics.  So on July 4th, I sat back and while watching their TV broadcast and went over to their website http://www.nbcolympics.com.  The first thing you may notice upon visiting the website, is that their homepage is lackluster and that they are using the same drab Adobe Flash photo view.  So where's the cool new Microsoft Silverlight technology?  Hopefully the following will be a primer of the site for you.

    The easiest way to see the site in all it's glory, is to click on one of the Video Spotlight links (look under the NBC Beijing 2008 logo for the Register and Login links, it'll be to the right of that).  The next thing you'll notice is ... yuck, the video page is plain and drab too.  Definitely nothing to brag about, and nothing like what Microsoft demo'd.  Well the key is to hit the "enhanced video" button below the video on the bottom right.  Much better, right?  Not really, but that's because on the Standard view, you hopefully noticed the all caps word "BETA" at the top of the "Standard" view.

    Now back to the Enhanced View.  The first thing I noticed was that the video was not HD, somewhat disappointing but acceptable since we're supposed to be able to see multiple video feeds at once, right?  (Not!  But hey it's still in beta)  The next thing I noticed was my CPU cycles started going crazy and the video hiccups, occasionally needing to rebuffer fairly often.

    In order to access the more advanced features, click one of the buttons of the left (note that you can close out any of these features and continue watching your video by clicking the X at the top right).

    If you click on the first, top left, button, the "Control Room", they're still working on it.  However it tells us that you'll be able to watch 4 live video feeds at the same time.
    The second button is the "Olympic Sports".  You can select the sport you want to view and it's associated videos.  Yah!  We can finally watch those Table Tennis matches!
    The third button is the "Most Watched" videos.  'nuff said
    The fourth button is the "As Seen on TV" section.  I'm guessing this is the recorded video for the TV broadcasts. 
    The fifth button is the "Highlights" area.  So far, I really don't like the organization.  There needs to be some way to sort them all.

    You'll notice anytime when you select a video, you can see it PIP (Picture in Picture).  This will put the video as a small video on video you were previously watching.  You can then reposition the small video, and even swap it out so it's the big video.

    One of the best features they made was the "Share" button.  But in order to access all of the "Share" features, click on the "Grab Channel" button.  This will create a popup using Clearspring's widget.  If you don't know about this widget, you weren't the only one, as I am new to it as well.  It features a huge array of ways to share the link.  Everything from popular Facebook and MySpace to Twitter and Vista Sidebar Gadgets.  I counted a total of 62 ways to share and bookmark the site.

    Overall, I'm a bit disappointed in the site.  But right now you can only view 2 video feeds at once.  I suppose their fit and finish could have been much better.  The user experience, just isn't as good as what Silverlight is supposed to be able to deliver.  What happened to the video fly ins?  Isn't this supposed to be a Flagship site for Silverlight?

    Lastly, I am very concerned with performance.  My laptop handled the two video feeds well enough, but the CPU was going nuts as well as the paging.  Only time will tell as they flesh out the bugs and get the site out of BETA stage ... in less than 35 days.  I really hope they improve on the "cool" factor of the site.  Cause right now, it ain't got none.

     

  • RegEx tools for Visual Studio & the Social Web

    You might want to skip this first paragraph if you are just looking for the RegEx Tools portion. 

    I still find it amazing how the web can create an online social inner-networking that bobs and weaves an amazing web of connections (confused?  me too).  Here's what led me to find these wonderful RegEx tools.  So the Microsoft Partner Program has an initiative that gave me a bunch of certifications vouchers.  I am using at least 1, possibly 2, in my giveaway.  I send out an email to the VB Insider's List (an invite only listserv for Visual Basic users).  This leads Chris Love to leave a comment on my blog.  I then visit his blog and come across a posting for a bunch of RegEx tools.  This posting leads me to Ray Osherove's blog, whom I've heard of but never had a chance to look into.  Ray has created a bunch of tools, particularly 3 RegEx tools that look outstanding.

    In the software that I sell to a niche market, I use RegEx to parse through long streams of text.  Some of the RegEx strings I use are in excess of over 600 characters.  So when I find a RegEx tool, I'm super excited about it.  Ray Osherove has created several different tools to help in this area.  I hope you find these as useful as I will.

     

    RegEx Visualizer - Allows creating "Debug Visualizers" for all types in .NET framework as well as custom types. You can find such visualizers for Datasets, strings and XML, now there's one for RegEx
    http://tools.osherove.com/CoolTools/RegexVisualizerKit/tabid/187/Default.aspx

    The Regulator - Allows you to build and verify a regular expression against any text input, file or web, and displays matching, splitting or replacement results within an easy to understand, hierarchical tree.
    http://tools.osherove.com/CoolTools/TheRegulator/tabid/185/Default.aspx

    Regulazy - Visual Regex Creation tool for beginners.  It contains an easy "point and click" user interface, and allows creating regular expressions for simple searches almost instantly without requiring Regex syntax knowledge from the end user!
    http://tools.osherove.com/CoolTools/Regulazy/tabid/182/Default.aspx

     

    Technorati Tags: ,
  • Microsoft Certification Exam Voucher Giveaway

    I've recently come into several Certification Exam Vouchers and have decided to host a giveaway.  Just post a comment to the blog, and I'll randomly select a winner.  All entries must be in by June 30th, 2008.

    You can also post a comment to my cross posting site on GeeksWithBlogs to gain an additional entry.

  • Growing your software business, stuck in a rut

    The following is a response to the forum question posted here.

     

    I had the opportunity to meet Scott while at the Little Rock .Net User Group, and we talked briefly about my thoughts on how to take advantage of the programs available to software startups.  In particular Scott owns a consulting business and he's having growing pains. 

    Scott's problems is very typical of thousands of small business consultant shops.  He's busy being the business owner, full time consultant/programmer, bookkeeper, marketing, sales guy, etc.  So how do you start growing this small shop?

    When doing consulting my first rule is to set the customer's expectations.  Since you are my customer, here's the good and the bad of growing your business.  You will have to relinquish power.  You will have to accept things that isn't "your way".  You will think quality isn't as good as what you can do, but that is typically because they aren't doing it "your way".  When in actuality, your customers will be fine with the work being done, and they will continue to give you business.  You have to spend money to make money.

    So here are my few tips on growing.  Your first hire should be a sales person.  A part time salesman works just fine and will keep you out of the hole, if you're worried about finding the funds to pay him.  At a minimum, you will need to guarantee him one month's salary.  Past that, you need to figure out the salary plus/or commission.  A salesman is only as good as his commission.  Most salesmen work off of a draw against future sales.  For more information on how to setup a commission schedule, talk to a car salesman.

    When the salesman has customer calls / visit, you will want to be available.  Let him do all the talking, except when you need to talk tech.  After the customer visit, you should write up the time estimates and as much documentation as you feel is necessary.  Let the salesman handle the quote from there on.

    The other tip is to hire a part time bookkeeper / secretary.  I know there are a lot of groans here, but that 10 hours you pay that employee $15 an hour, you could be making $80 an hour.  Time is money, and since you're the owner and consultant, your time is even more valuable.

    Once the salesman finds jobs, then you fill it with insourcing or outsourcing.  But remember to never sign agreements that give your code away to the customer and always have the work done offsite. 

    Lastly, this has more to do with Microsoft.  The certifications are worthless to a Partner.  Partner level isn't very important, except for the benefits they give you.  Your customers are rarely going to care about your certs or partner level.  Customer availability, responding to their needs, and exceeding expectations are far more important.

    I'll try and go over some of the Certification and Partner actual benefits in another blog post.

  • Congratulations & Thanks to Jay Smith & Michael Paladino

    jay-smith_80x80 MichaelHeadshotSquare

    A big heartfelt thank you and congratulations to two of the developer community builders in the Northwest Arkansas area, Jay Smith and Michael Paladino with special mention to Zach Young. As a Microsoft MVP, one of our benefits this year, is the ability to award people with a special prize. This prize is an MSDN Premium account with Visual Studio Team Suite, which includes nearly all of Microsoft's business software, free of charge.

    Jay Smith works for Tyson Foods, Inc. where he is a PMO Architect and Evangelist, and is the President for the Northwest Arkansas .Net User’s Group.  Jay currently serves on the INETA Speakers Committee and works diligently with others on test bed projects to learn new concepts and designs.  You can read more about Jay on his blog http://www.jaysmith.us or follow his tweets at http://twitter.com/jaysmith.

    Michael Paladino is a software developer for EagleOne in Fort Smith, AR, and is the Fort Smith .Net User Group President.  Michael is passionate about building the .NET community in the area and is one of the co-founders of the Fort Smith .NET User Group.  You can contact Michael through his blog at http://www.mpaladino.com or via email at paladinomichael@gmail.com.  You can follow his tweets at http://twitter.com/mpaladino

  • Go visit the Visual Basic Product Team at TechEd!

    It was this time last year at TechEd that Cory Smith introduced me to the Visual Basic product team.  He first introduced me to Ed Hickey, who is the VB MVP Lead at Microsoft.  The funny story about Ed is, less than a week after Ed awarded me the MVP status, he transfers out.  I knew I was hard to work with, but didn't realize I was .... that .... difficult.

    Also last year at TechEd 2007, Cory let me hang out with him at Universal Studios where I rubbed elbows with the Visual Basic product team!  He's really been a great mentor to me, and I'm very grateful.

    All this is to say, go visit the Visual Basic Product Team website and meet some of the product team.  They are all very accessible and have always been very friendly.  If you're at TechEd 2008 this year, stop by the Visual Basic booth.  Amanda Silver is one of the most visible team members (and very easy on the eyes), so go strike up a conversation.

  • MVP Summit, Being Busy, plus Presenting @ the Little Rock .Net User Group

    I suppose I was naive in thinking that once I received my Microsoft MVP award, I could breathe a bit.  But we've had sooo much Developer Community activity, I haven't had a chance to breathe, much less blog.  I still haven't had an opportunity to blog about the MVP Summit!  Needless to say, the MVP Summit was a blast (other than having a digestive track illness, where I missed the last day's keynotes).  The best thing about the Summit was the ability to meet and talk directly with the product teams.

    You really get the sense of the ability to impact .Net by being an MVP!

    On June 12, 2008 I'll be at the Little Rock .Net User Group, and I hope you can join me.  I'll be speaking on SQL Server Reporting Services.  Unfortunately, due to the late notice, I'll be speaking on the same subject that I presented at the Tech Expo (had hoped to prep some other topics by now).  But, I'll have more time to answer questions and hopefully get a bit more detailed on the subject.

    Congrats to the new officers there at Little Rock.

    Here's a quick synopsis of the content:

    One of the hardest parts of learning a technology that is new to you, is getting started.  Join us as you learn the tips, tricks, and fundamentals of Microsoft's SQL Server Reporting Services.  Avoid those common mistakes and get up and running with SSRS in this presentation from Randy Walker, a 12 year veteran of report design.

  • Writing to .Net Config Files

    I've been working with config files for quite some time.  I was recently reminded that I needed to finish my original article and share my final findings on my personal best practices for working with config files.

    One of the coolest and most useful features in config files is the file attribute as displayed below (see my other article for a more detailed explaination, preferred-method-for-read-only-config-files).

    <configuration>
      <configSections>
        <section name="MyCustomSection" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      </configSections>
      <MyCustomSection file="MyCustomConfigFile.config"></MyCustomSection>
    </configuration>

    If you take a look at the other article, it's a terrific way to setup a read only config file, but what about writing back to it at runtime?  Well, the best way is to use the ConfigurationManager object and then open the raw xml into an XmlDocument object.  (yes yes, I might be a Visual Basic MVP, but I can write the occasional C#)

    Configuration config = ConfigurationManager.OpenExeConfiguration(FileName);
    ConfigurationSection section = config.GetSection(SectionName);

    XmlDocument xml = new XmlDocument();
    xml.LoadXml(section.SectionInformation.GetRawXml());

    But the problem is, if you have used the file attribute (file="MyCustomConfigFile.config"), it's not smart enough to grab the contents of the file (I'm hoping to contact the product team soon to see if they can address the issue).  Fortunately, there is a way to get the filename from the file attribute.  And by adding in a little recursion, we're able to create an easy method to write back to the proper config file, without having to know the actual filename at runtime.

    private const string SETTING_KEY_NAME = "key";
    private const string SETTING_VALUE_NAME = "value";

    public static void SetConfigValue(string SectionName, string KeyName, string Value)
            {
                SetConfigValue(System.Reflection.Assembly.GetEntryAssembly().Location , SectionName, KeyName, Value);
            }

            public static void SetConfigValue(string FileName, string SectionName, string KeyName, string Value)
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(FileName);
                ConfigurationSection section = config.GetSection(SectionName);

                XmlDocument xml = new XmlDocument();
                xml.LoadXml(section.SectionInformation.GetRawXml());

                if (xml.DocumentElement.Attributes["file"] == null)
                    {
                        foreach (XmlElement element in xml.ChildNodes[0])
                        {
                            if (element.Attributes[SETTING_KEY_NAME].Value == KeyName) element.Attributes[SETTING_VALUE_NAME].Value = Value;
                        };

                        section.SectionInformation.SetRawXml(xml.OuterXml);
                        config.Save();
                    }
                else
                    {
                        SetConfigValue(System.Reflection.Assembly.GetEntryAssembly().Location.Remove
                            (
                            System.Reflection.Assembly.GetEntryAssembly().Location.LastIndexOf("\\")) + "\\" + xml.DocumentElement.Attributes["file"].Value.Remove
                                (
                                xml.DocumentElement.Attributes["file"].Value.LastIndexOf(".config")
                                ),
                            SectionName,
                            KeyName,
                            Value);
                    }
            }

    This creates a new problem though.  You can no longer use the same format of the underlying file, specified in the file attribute.

    Old format of the MyCustomConfigFile.config specified in my other article preferred-method-for-read-only-config-files:

    <?xml version="1.0" encoding="utf-8" ?>
    <SectionName>
         <add key="myKey" value ="" />
    </SectionName>

    New required format for writing to config files with the file attribute:

    <?xml version="1.0" encoding="utf-8" ?>
    <!-- You must have an empty file named "MyCustomConfigFile" with no extention in the same directory as this file -->
    <configuration>
      <MyCustomSection>
        <setting key="MySetting1" value="True" />
        <setting key="MySetting2" value="File;Email;EventLog"/>
        <setting key="MySetting3" value="File"/>
      </MyCustomSection>
    </configuration>

    You'll notice that I had a comment in the file specified in the file attritube. (<!-- You must have an empty file named "MyCustomConfigFile" with no extention in the same directory as this file -->)  I honestly can't recall why this is required (I'm posting this article months after I did the work), but it has to do with reading the config file, and the filenames it is looking for.

    This new referred config file format creates a new problem.  You can no longer use the reading method I used in the other article.  I've fixed it in the code below as well as provided the full class.

     

    Below is the full class that I wrote.  All I ask is that you add a comment telling me how you used it.

    using System.Configuration;
    using System.Xml;

    namespace HarvestIT.Common
    {
        /// <summary>
        /// Application settings manager.
        /// </summary>
        public class ConfigManager
        {
            // Configuration file node names.
            private const string SETTING_KEY_NAME = "key";
            private const string SETTING_VALUE_NAME = "value";

            public static string GetConfigValue(string SectionName, string KeyName)
            {
                return GetConfigValue(System.Reflection.Assembly.GetEntryAssembly().Location, SectionName, KeyName);
            }

            public static string GetConfigValue(string FileName, string SectionName, string KeyName)
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(FileName);
                ConfigurationSection section = config.GetSection(SectionName);

                XmlDocument xml = new XmlDocument();
                xml.LoadXml(section.SectionInformation.GetRawXml());

                if (xml.DocumentElement.Attributes["file"] == null)
                {
                    foreach (XmlElement element in xml.ChildNodes[0])
                    {
                        if (element.Attributes[SETTING_KEY_NAME].Value == KeyName) return element.Attributes[SETTING_VALUE_NAME].Value;
                    };
                }
                else
                {
                    return GetConfigValue(System.Reflection.Assembly.GetEntryAssembly().Location.Remove
                        (
                        System.Reflection.Assembly.GetEntryAssembly().Location.LastIndexOf("\\")) + "\\" + xml.DocumentElement.Attributes["file"].Value.Remove
                            (
                            xml.DocumentElement.Attributes["file"].Value.LastIndexOf(".config")
                            ),
                        SectionName,
                        KeyName);
                }
                return null;
            }

            public static void SetConfigValue(string SectionName, string KeyName, string Value)
            {
                SetConfigValue(System.Reflection.Assembly.GetEntryAssembly().Location , SectionName, KeyName, Value);
            }

            public static void SetConfigValue(string FileName, string SectionName, string KeyName, string Value)
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(FileName);
                ConfigurationSection section = config.GetSection(SectionName);

                XmlDocument xml = new XmlDocument();
                xml.LoadXml(section.SectionInformation.GetRawXml());

                if (xml.DocumentElement.Attributes["file"] == null)
                    {
                        foreach (XmlElement element in xml.ChildNodes[0])
                        {
                            if (element.Attributes[SETTING_KEY_NAME].Value == KeyName) element.Attributes[SETTING_VALUE_NAME].Value = Value;
                        };

                        section.SectionInformation.SetRawXml(xml.OuterXml);
                        config.Save();
                    }
                else
                    {
                        SetConfigValue(System.Reflection.Assembly.GetEntryAssembly().Location.Remove
                            (
                            System.Reflection.Assembly.GetEntryAssembly().Location.LastIndexOf("\\")) + "\\" + xml.DocumentElement.Attributes["file"].Value.Remove
                                (
                                xml.DocumentElement.Attributes["file"].Value.LastIndexOf(".config")
                                ),
                            SectionName,
                            KeyName,
                            Value);
                    }
            }
        }
    }

  • Tell Internet Explorer 8 Beta to show your site properly using IE7

    New IE8 logo

    For those that want your website to render correctly on IE8, the recent newsletter gave a great example for enforcing IE7 compatibility via a Meta tag.  (You can see the new IE logo above)

     

    Per Site Basis:

    Site owners and administrators can include the following custom HTTP header to display all pages in Internet Explorer 7 Strict mode for the site:

    X-UA-Compatible: IE=EmulateIE7

    Per-page basis:

    Site owners and administrators can include the following special HTML tag after the <Head> tag on the page:

    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>

  • 20 Business Tips from Intuit QuickBooks

    Sadly I had meant to post this back in February.

    20 Tips Every Business Should Know

    Their #1 tip is serving a niche market.  While not a requirement for starting a business, you need to separate yourselves from your competition.  Whether it be in price, service or value.

    #3 is something I can vouch for, outsourcing.  I commonly talk about the misconception of the word "outsourcing".  This doesn't necessarily mean an Indian in Bangalore is doing your work.  It does mean simple tasks such as bookkeeping or advertising can be performed by local resources around your town.

    As you read through the rest of the tips, remember to not take them literally, but find alternatives to the solutions they suggest.

    Technorati Tags:
  • Microsoft adCenter needs a workshop?

    While I love Microsoft's developer products, adCenter (Microsoft's search advertising / pay per click) makes me want to hide in shame.  See the email I received below.

    I completely understand the desire of AdCenter to educate the masses, but do you really need a Workshop to get your customers to understand your product?  Much less, require them to PAY to attend?  Sure you might be giving a 50% credit towards advertising, but why would I pay to attend?  That's not the way to get customers to move from Google to AdCenter.

    Why not give FREE online advertising and search engine seminars all across the U.S., not just 3 select cities.  Use the same principles that built up the developer community like the MSDN Events.

     

    spacer
    spacer
    spacer
    spacer Microsoft®
 adCenter spacer
    spacer
    spacer
    Dear Randy:
    spacer
    Are your pay per click Microsoft® adCenter campaigns performing as well as they should be? We know that it can be challenging to manage your campaigns and maximize your return on investments (ROIs). Not to worry, we have just the workshop you need to learn all the secrets successful search advertisers already know.
    spacer
    At the adCenter Competitive Advantage workshop, you can learn how to optimize your adCenter search campaigns for better results. In just a few hours, we can help you get your search marketing campaign on the road to a higher ROI.
    spacer
    The workshop will be led by premier search marketing innovator Mary O'Brien. She's an independent search marketing expert who literally wrote the book on the subject. She'll cover it all—from choosing targeted keywords to creating ads that sell to tracking the results.
    spacer
    Register now and receive a credit of up to $100 toward your adCenter account by attending the workshops!*
    Be sure to enter offer code ROAD00.
    spacer
    Three workshop locations to choose from:
    spacer
    New York
    June 17, 2008

    Doubletree Metropolitan
    spacer
    Los Angeles
    June 19, 2008

    Sheraton Gateway Los Angeles
    spacer
    Chicago
    July 1, 2008

    Hyatt Lodge at McDonald's Campus
    spacer
    Two sessions offered: Choose one or attend both!
    spacer
    Morning Session: Pay Per Click Essentials for Beginners
    spacer
    Microsoft adCenter Essentials: Discover the best way to organize your campaigns. Learn common search marketing terms
    Keywords Strategies: Develop strategies that maximize your advertising budget
    Creating Effective Ad Copy: Master the art of crafting messages that turns clickers into customers
    Account Navigation: Take a tour of the full adCenter toolkit, and learn how to maximize the pulling power of the assets in your account
    spacer
    Afternoon Session: Pay Per Click Power Strategies for Advanced Users
    spacer
    Tracking Results: Identify ads and keywords that really work, and learn to improve those that don't
    Advanced Targeting: Find out how precision consumer targeting from adCenter can focus your campaigns on your most valuable customer segments
    Advanced Bidding Options: Become the master of better bidding, including CPM bidding, optimizing budgets, and positioning preference tools
    New Tools Outlook: Find out about our new Microsoft adCenter Desktop Beta and our Add-In tool for Microsoft Office Excel® 2007
    spacer
    Limited-time offer.
    spacer
    Beginner Morning Session – $99. Register now and receive $50 credit toward your adCenter account.*
    spacer
    Advanced Afternoon Session – $99. Register now and receive $50 in credit toward your adCenter account.*
    spacer
    Best Value: Full-Day Session – $149. Register now and receive $100 in free credit toward your adCenter account clicks.*
    spacer
    Space is limited, so don't wait to register. Simply go to our registration page and enter your Customer ID 68883 and the offer code ROAD00 to receive your adCenter account credit.
    spacer
    Questions about the workshop or accommodations?
    Please call (800) 507-2958, ext. 702.
    spacer
    spacer
    Make pay per click pay off for you. Register for the workshop today!
    spacer
    Sincerely,
    spacer
    The Microsoft adCenter Team
    spacer
    spacer
    Register Now
    spacer
    Receive a credit of up to $100 toward your adCenter account by attending the workshops!* Be sure to enter offer code ROAD00. Register now.
    spacer
    spacer
    spacer spacer spacer
    spacer
    spacer

     

    Technorati Tags: ,
More Posts Next page »
Copyright 2008 Randy Walker
Powered by Community Server (Commercial Edition), by Telligent Systems