From the category archives:

Search Engine Marketing

Animal Shelter Marketing Letter

by Caroline on February 19, 2007

More info for animal shelters needing web sites or web marketing……..

… I’ve been building/rebuilding web sites for animal rescue groups. It’s my way of giving as I don’t deal with the shelter that well. I do two basic things: 1) build the site, 2) market the organization on the web.

The web sites I build are usually built on free software called Joomla. Instead of upload stories or changing HTML directly you would login to the administrator and publish your stories from there. If I do help out we don’t have to use that system, but I do recommend it because 1) multiple people can update the site; 2) you can easily grab email addresses from people interested in your org; 3) we can often add new features really fast. For instance I can add an online store in an hour or two; it uses a wysiwyg (what you see is what you get) editor so you don’t need to know any html — really a whole lot more.

Here are all the add ons to the base product:
http://extensions.joomla.org/

The main issue, though, is marketing. I assume that you want your web site to be found when someone types in
nh shelter
dogs for adoption
Or the like.
The business of making that happen is called SEO or search engine optimization. SEO used to be mechanical and very easy to do. Now the mechanical part is just the pre-requisite to the real work of web marketing. It’s very labor intensive (takes a lot of time, though the tasks themselves are not that hard).

Successful SEO is mostly about writing, writing, writing. There are tons of ways to get the word out about your web site, some of them really help you in the search engines, some less so.

I’ll help with either of these, my standing offer is here

A few things you might want to know about me:

I’m a low stress person, I don’t want to be a CARRIER either!

I’m just here to help, if this causes problems in the org don’t ever feel like you owe me anything, it’s your organization

Really good SEO skills are marketable. If you want training to market arnne it’s a great opportunity to learn for the doggies and then use it in your career.

I’m available when you need me, please don’t stress on my account.

Best,
Caroline

{ 0 comments }

VirtueMart Category Page SEO Title Tags

by Caroline on September 27, 2006

In order to set keyword-rich title tags on a VirtueMart category listing page:

In administrator/components/com_virtuemart/html/shop.index_sdm.php (your mileage may vary on file name), add and initialize a $title variable in the top:

After setting the category name, append the category to the title:


This presumes your shop.index page calls

{ 0 comments }

Letter to a client about the awful search engine truth

by Caroline on September 27, 2006

Hey [well respected client name] -

I want to show you something interesting. I have to update my web marketing mantra to say links links links before I say content content content. I know incoming links are important. I know that aged, high quality, authoritative links are better than new, low quality, spammy links. But what I think I’ve been in denial about is that, for right now, links are beating content.

Google assigns page rank to everything it indexes. 0-10 where 0 is banned or not yet trusted and 10 is god status. Now check this out. This page has a page rank of 4

http://www.umdum.com/dir/46297.php

Even before Loren (page owner) added the princeton link the page had a PR of 4. I’ve got scores of highly relevant content on my site but I let my marketing go for 1.5 years and fell off the map, I only have a PR 3 and this page with no content has a 4.

So this was all coming on me like a sneeze yesterday when I wrote you the note with some good back linking tasks.

I KNOW google will fix this, the whole point is to index authoritative content, not well-respected white space. So content will be king, but I have to admit after discussing this with the site owner as well as a very well respected internet marketer that this is today’s realty, links trump content.

 

{ 0 comments }

The newer new SEO - Authority Sites

by Caroline on September 19, 2006

Google owns 60% of the search market and they’re the most academically inclined of the big 3 (Yahoo, MSN and Google). Google’s job is to provide spam-free content results. They know they’re not doing that now.

A good book on the subject is Authority Site Guide by Content Desk. I am impressed with this book but can’t yet endorse their product as I haven’t looked at it yet. I am loving the book. Google’s been publishing quality guidelines for years and this book describes how to build a quality (Authority) site.

It’s on target.I feel validated.

Some of Content Desk’s Authority Site comments I really like:

Choose a niche and subdomain the sub-niches:

smalldogmall.com: small dog stuff
Poodle.smalldogmall.com
Boston-Terrier.smalldogmall.com
Chihuahua.smalldogmall.com

Promote Interaction
Foster visitor comments
Give ability email and print the story

Incorporate a Reverse Ratio Advertising Policy
The more generic topics have less advertising surrounding them; the specific areas within that topic have more ads on the same pages. Monetize after you’ve filled a need. Don’t advertise on the home page.

More on this later……….

 

{ 0 comments }

AnimalImage.biz dorm room marketing

by Caroline on July 13, 2006

Affiliate Marketing Experiment
AnimalImage.biz is our first full-blown affiliate-driven ecommerce venture. It is powered by Amazon Associates Program and AllPosters.com Affiliates Program. Today I am adding linkshare.com animal magazines.

Animal Image Target Market: Dorm Room Decor
The site’s marketing target is the young girl going to college. Girls — much more than boys — will express their homesickness and actually try to do something about it. So our marketing strategy validates the girl’s experience and offers inspiring animal posters as a remedy.

Visitor Stats
We launched on July 8 2006. As of yesterday AnimalImage.biz had 34 search terms on Yahoo centered on the “dorm room” theme. To date (July 13) the ads have 3,244 impressions and 13 clicks. Today I updated the marketing copy on 8 ads. I believe some of them must have bee written in my sleep. I also need a lot more copy on the site itself but that is taking some time outside of my control. My web stats indicate that following # of unique visitors starting July 8: 40, 26, 34, 52, 8.

Promotion Activites
I launched the site on v7n.com forums by way of asking for feedback. I used OnlyWire and a few other tools to ping this post: Animal Image .biz (animalimage.biz) launched. I also submitted the site to some free search engine submission services, Yahoo, Google and MSN.

college-dorm-room.com, dorm-room-decor.com, dorm-room.net
The Search Engines are rewarding keyword domains so today I added and 301-forwarded some good college dorm room domains. college-dorm-room.com, dorm-room-decor.com and dorm-room.net are not meant for human consumption, they exist for the search engines.

July 12 2006 AnimalImage Revenue Results
$0.00

 

Technorati Tags
, , , , , , , , ,
Ice Rocket Tags
, , , , , , , , , , ,

{ 0 comments }

Settling on a Blog Theme with AdSense

by Caroline on July 9, 2006

The task today is to decorate the WordPress blog in a theme appropriate for code readers and flexible enough for Adsense Hosting.

After Joomla I’d say WordPress has to be my favorite tool. It works. It doesn’t talk down to me. I don’t have to threaten to hurt its family to make it go.

Finding themes for WordPress is much harder than finding themes for Joomla. My blog posts are full of raw code — PHP, C#, VBScript — so the theme I choose for Bogart’s Answers has to work with dicey content. (When I first created this blog over at Blogger Google made me wait for a human to approve it. Apparently all of that raw C# looked like spam to the filter.)

This theme — Corporate Pro 1.0 by Colleen Chard — has the strength and flexibility to withstand my spamish-looking code rants. This theme is a beautiful combination of color, layout and refinement.

Colleen Chard's Corporate Pro 10 WordPress Theme

Corporate Press 1.0 Theme

Of the many marketing ideas I’ve learned over at John Scott’s V7n forums is the very good idea of making the AdSense the same font as the theme’s font. I have added 1 link unit and three text units to the theme’s index and sidebar using the colors I found in styles.css. The result is Google AdSense that blends right in.

Incorporating AdSense Using the Theme's Fonts

Technorati & Ice Rocket Tags
, , , , ,

{ 0 comments }

Animal Image . biz (animalimage.biz) launched

by Caroline on July 7, 2006

Animal Image.biz (www.animalimage.biz) affiliate web siteWe are proud to announce the launch of animalimage.biz.

Affiliate Ecommerce Site
Animal Image is an experimental affiliate site designed to create revenue for animal-related web sites. Eventually we will integrate what we learn into animalneighborhood.com and our free New Hampshire animal welfare web sites.

Content
Next week we’ll have 25 or 30 articles on the site. Most will discuss the emotional benefits of caring for animals. The rest will discuss how to make the journey to college easier for young girls.

The marketing tie-in is:
Images of cats, dogs, puppies, horses, dolphins etc will comfort the young girl decorating her dorm room and feeling the pangs of home-sickness.

Stay tuned for more on our experiements in affiliate marketing.






Dorm Room Decor  

{ 0 comments }

Submit Programming Links

by Caroline on March 20, 2006

Google Sitemaps
“The Google Sitemaps program is two-way communication between webmasters and Google. You can give us information about your site so we can index it more effectively, and we can show you how we see your site and tell you about any trouble we’ve had crawling it. ”
google.com/webmasters/sitemaps

XML Sitemaps
xml-sitemaps.com

Google Submit URL
google.com/addurl

Web Site Designers Directory
1234-find-web-designers.org

a2z Web Designer Resource
a2zwebdesignresource.com

nh.com
nh.com

Web Design Firms
www.webdesignfirms.org

Top Design Firms
http://www.topdesignfirms.com/

Consultant Directory
http://www.consultant-directory.com/add_url02.php?c=110

Accoona
http://www.accoona.com/public/submit_website.jsp

Alexa
http://pages.alexa.com/help/webmasters/index.html#crawl_site

Ali Baba
http://www.alibabachalischor.com/add_url_form.asp

All The Web
http://www.alltheweb.com/add_url.php

Yahoo
http://submit.search.yahoo.com/free/request

Directory of Web Designers
http://www.directoryofwebdesigners.com/reg.php

Amfibi
http://addurl.amfibi.com/

Amidalla
http://www.amidalla.com/cgi-bin/amiadd.cgi?add

Axxas Search
http://www.axxasearch.com/submit-site.htm

Beamed
http://www.beamed.com/search/AddURL.html

New Hampshire dot com
http://www.newhampshire.com/directory/submit1.cfm

Marketing Tool
http://www.marketingtool.com/click/b.435.r.70392.u.83b605.html

Active Server Page Hits
http://www.asphits.com

Web Designers Directory / Programmers
http://www.web-designers-directory.org/programmers-asp.net.php

Xenion
http://www.xemion.com/new-hampshire-manchester-web-design.html

{ 0 comments }

PayPal IPN Get Method Using ASP.Net, C#

by Caroline on March 16, 2006

Q. How do I take one-time, variable-amount, variable-reason web site payment using PayPal IPN, ASP.Net and C#?
A. Build a StringBuilder URL request and redirect the Response to PayPal.

This answer is the “get” method, because we’re going to redirect the response to PayPal using a query string.

Payment Form: make_payment.aspx
Create a web form that collects user input for:

  • payment purpose
  • amount

Anything else you collect on this form should be saved to the PayPal custom variable as demonstrated below. This data might be the customer’s name, address, email and company name.

protected void btnPay_Click(object sender, EventArgs e)

{ if (!Page.IsValid) { return;}

StringBuilder sbPayPal = new StringBuilder();
StringBuilder custom = new StringBuilder();
custom.Append(Server.UrlEncode(firstname.Text));
custom.Append(" ");
custom.Append(Server.UrlEncode(lastname.Text));
custom.Append(", ");
custom.Append(Server.UrlEncode(this.amount.Text));
custom.Append(",");
custom.Append(Server.UrlEncode(companyname.Text));
custom.Append(",");
custom.Append(Server.UrlEncode(email.Text));
custom.Append(",");
custom.Append(Server.UrlEncode(purpose.Text));
custom.Append(",");
if (sandbox.Checked) { sbPayPal.Append("https://www.sandbox.paypal.com/xclick/business=yoursandbox@emailhere.com");
} else {

// if you use this you'll really be paying me

sbPayPal.Append("https://www.paypal.com/xclick/business=caroline@bogartcomputing.com");}

sbPayPal.Append("&item_name=");
sbPayPal.Append(Server.UrlEncode(purpose.Text));
sbPayPal.Append("&quantity=1");
sbPayPal.Append("&custom=");
sbPayPal.Append(custom.ToString());
sbPayPal.Append("&amount=");
sbPayPal.Append(Server.UrlEncode(amount.Text));
sbPayPal.Append("&invoice=");
sbPayPal.Append(System.Guid.NewGuid().ToString());
sbPayPal.Append("&
nonote=1");
sbPayPal.Append("&no_shipping=1");
sbPayPal.Append("&return=");
sbPayPal.Append("http://bogartcomputing.com/payment_thankyou.aspx");
sbPayPal.Append("&
cancel_return=");
sbPayPal.Append("http://bogartcomputing.com/payment_cancel.aspx");
sbPayPal.Append("notify_url=");
sbPayPal.Append("http://bogartcomputing.com/YOUR_IPN_Form.aspx");
Response.Redirect(sbPayPal.ToString());
Response.Write(Server.UrlDecode(sbPayPal.ToString().Replace("&", " ")));
}

Cancellation Form: payment_cancel.aspx
Create a web form that statically informs the user that the payment was cancelled.

Payment Cancellation Your payment was not processed. Click here to make a payment

Thank You Form: payment_thankyou.aspx
Create a web form that accepts a post (Request.Form) to:

  • display payment details
  • statically inform the customer that he will receive an email when the payment is confirmed

if (Request.Form.Keys.Count>0)

{

try {

lblPaymentDate.Text=FormItem("payment_date");
lblTransactionType.Text= FormItem("txn_type");
lblLastName.Text= FormItem("last_name");
lblResidenceCountry.Text= FormItem("residence_country");
lblItemName.Text= FormItem("item_name");
lblPaymentGross.Text= FormItem("payment_gross");
lblMcCurrency.Text= FormItem("mc_currency");
lblBusiness.Text= FormItem("business");
lblPaymentType.Text= FormItem("payment_type");
lblVerifySign.Text= FormItem("verify_sign");
lblPayerStatus.Text= FormItem("payer_status");
lblTax.Text= FormItem("tax");
lblPayerEmail.Text= FormItem("payer_email");
lblTransactionID.Text= FormItem("txn_id");
lblQuantity.Text= FormItem("quantity");
lblReceiverEmail.Text=FormItem("receiver_email");
lblFirstName.Text= FormItem("first_name");
lblPayerID.Text= FormItem("payer_id");
lblReceiverId.Text= FormItem("receiver_id");
lblMemo.Text= FormItem("memo");
lblItemNumber.Text= FormItem("item_number");
lblPaymentStatus.Text= FormItem("payment_status");
lblPaymentFee.Text= FormItem("payment_fee");
lblMcFee.Text= FormItem("mc_fee");
lblShipping.Text= FormItem("shipping");
lblMcGross.Text= FormItem("mc_gross");
lblCustom.Text= FormItem("custom");
lblPendingReason.Text=FormItem("pending_reason");
lblAddressName.Text=FormItem("address_name");
lblAddressStreet.Text=FormItem("address_street");
lblAddressCity.Text=FormItem("address_city");
lblAddressStatus.Text=FormItem("address_status");
lblAddressState.Text=FormItem("address_state");
lblAddressZip.Text=FormItem("address_zip");
lblAddressCountryCode.Text=FormItem("address_country_code");
lblAddressCountry.Text=FormItem("address_country");
lblAddressCountry.Text=FormItem("address_country");
lblInvoice.Text=FormItem("invoice");
lblMcCurrency.Text=FormItem("mc_currency");
} catch (System.Exception ex) { Response.Write(ex.Message);
} }

Create an IPN (Instant Payment Notification) Form: YOUR_IPN_form.aspx

PayPal will post to this page when it has processed the transaction. You will check that the transaction is verified (the post to the page really came from PayPal) and not a duplicate (you’ve already processed this txn_id).

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.IO;
using System.Text;
using System.Net.Mail;
public partial class payment_notify : System.Web.UI.Page { TextWriter log = null;
mail m = null;
StringBuilder sb = null;
string txn_id, txn_type, payment_date, last_name, residence_country, item_name, payment_gross;
string item_number, payment_status, payment_fee, mc_fee, shipping, mc_gross, custom, pending_reason, address_name, address_street, address_city, address_state, address_status, address_zip, address_country, address_country_code, invoice, quantity, receiver_email, first_name, payer_id, receiver_id, memo, mc_currency, business, payment_type, verify_sign, payer_status, tax, payer_email;
StringBuilder merchantMsg;
StringBuilder customerMsg;
protected void Page_Load(object sender, EventArgs e) { try { // writes local log file CreateLog();
} catch (System.Exception logex) { Response.Write(logex.Message);
return;
} try { // sends me notice that ipn script has been triggered // TriggerEmail();
} catch (System.Exception teex) { Response.Write(teex.Message);
return;
} try { // checks Request.Form data against call to PayPal // checks txn_id against local database if (IsValidIPN() && !IsDupeTxn()) { // send message to merchant, customer that payment string is valid. // Doesn't mean payment is done, it means transaction has processed, perhaps to completion, to cancellation, to denial. CreateMessages();
SendMessages();
} } catch (System.Exception allex) { Response.Write(allex.Message);
return;
} finally { try { log.Flush();
log.Close();
} catch (System.Exception ioex) { Response.Write(ioex.Message);
} } } private void SendDebugMessage(string subject, string body) { try { m = new mail();
m.Body=body;
m.From="caroline@bogartcomputing.com";
m.FromDisplayName="web site paypal ipn debug msg";
m.IsBodyHtml=true;
m.Subject=subject;
m.To="ctbogart@yahoo.com";
m.send();
} catch {} } private void CreateMessages() { // PayPal has posted to this page. Get the Request.Form items. // Build customer and merchant email messages. log.WriteLine("CreateMessages()");
StringBuilder ctemp=new StringBuilder();
StringBuilder mtemp = new StringBuilder();
StringBuilder sb = new StringBuilder();
// merchant txn details invoice =FormItem("invoice");
item_number = FormItem("item_number");
item_name = FormItem("item_name");
quantity = FormItem("quantity");
memo = FormItem("memo");
custom = FormItem("custom");
sb.Append("Invoice: ");
sb.Append(invoice);
sb.Append("
");
sb.Append("Item Number: ");
sb.Append(item_number);
sb.Append("
");
sb.Append("Quantity: ");
sb.Append(quantity);
sb.Append("
");
sb.Append("Memo from buyer: ");
sb.Append(memo);
sb.Append("
");
ctemp.Append(sb.ToString());
mtemp.Append(sb.ToString());
// paypal txn details payment_date =FormItem("payment_date");
verify_sign = FormItem("verify_sign");
payment_status = FormItem("payment_status");
pending_reason =FormItem("pending_reason");
txn_id = FormItem("txn_id");
txn_type = FormItem("txn_type");
business = FormItem("business");
receiver_email = FormItem("receiver_email");
receiver_id = FormItem("receiver_id");
sb = new StringBuilder();
sb.Append("Payment date: ");
sb.Append(payment_date);
sb.Append("
");
ctemp.Append(sb.ToString());
mtemp.Append(sb.ToString());
mtemp.Append("Verify sign: ");
mtemp.Append(verify_sign);
mtemp.Append("
");
mtemp.Append("Payment status: ");
mtemp.Append(payment_status);
mtemp.Append("
");
mtemp.Append("Pending reason: ");
mtemp.Append(pending_reason);
mtemp.Append("
");
mtemp.Append("Transaction ID: ");
mtemp.Append(txn_id);
mtemp.Append("
");
mtemp.Append("Transaction Type: ");
mtemp.Append(txn_type);
mtemp.Append("
");
mtemp.Append("Business (email): ");
mtemp.Append(business);
mtemp.Append("
");
mtemp.Append("Receiver Email: ");
mtemp.Append(receiver_email);
mtemp.Append("
");
mtemp.Append("Receiver ID: ");
mtemp.Append(receiver_id);
mtemp.Append("
");
// paypal money details mc_currency = FormItem("mc_currency");
payment_gross = FormItem("payment_gross");
mc_gross = FormItem("mc_gross");
payment_type = FormItem("payment_type");
tax = FormItem("tax");
shipping = FormItem("shipping");
payment_fee = FormItem("payment_fee");
mc_fee = FormItem("mc_fee");
sb = new StringBuilder();
sb.Append("Currency: ");
sb.Append(mc_currency);
sb.Append("
");
sb.Append("Tax: ");
sb.Append(tax);
sb.Append("
");
sb.Append("Shipping: ");
sb.Append(shipping);
sb.Append("
");
sb.Append("Amount: ");
sb.Append(mc_gross);
sb.Append("
");
sb.Append("Payment Type: ");
sb.Append(payment_type);
sb.Append("
");
ctemp.Append(sb.ToString());
mtemp.Append(sb.ToString());
mtemp.Append("Fee: ");
mtemp.Append(mc_fee);
sb.Append("
");
// customer details last_name = FormItem("last_name");
first_name = FormItem("first_name");
address_name =FormItem("address_name");
address_street =FormItem("address_street");
address_city =FormItem("address_city");
address_status =FormItem("address_status");
address_state =FormItem("address_state");
address_zip =FormItem("address_zip");
address_country = FormItem("address_country");
address_country_code = FormItem("address_country_code");
residence_country = FormItem("residence_country");
payer_id = FormItem("payer_id");
payer_status = FormItem("payer_status");
payer_email = FormItem("payer_email");
sb = new StringBuilder();
sb.Append("Customer: ");
sb.Append(first_name);
sb.Append(" ");
sb.Append(last_name);
sb.Append("
");
sb.Append("Addressed To: ");
sb.Append(address_name);
sb.Append("
");
sb.Append(address_street);
sb.Append("
");
sb.Append(address_city);
sb.Append(", ");
sb.Append(address_state);
sb.Append(" ");
sb.Append(address_zip);
sb.Append("
");
sb.Append(address_country);
sb.Append(" (");
sb.Append(address_country_code);
sb.Append(")");
sb.Append("
");
ctemp.Append(sb.ToString());
mtemp.Append(sb.ToString());
mtemp.Append("Residence Country: ");
mtemp.Append(residence_country);
mtemp.Append("
");
mtemp.Append("Payer ID: ");
mtemp.Append(payer_id);
mtemp.Append("
");
mtemp.Append("Payer Status: ");
mtemp.Append(payer_status);
mtemp.Append("
");
mtemp.Append("Payer Email: ");
mtemp.Append(payer_email);
mtemp.Append("
");
customerMsg=new StringBuilder();
customerMsg.Append("Dear ");
customerMsg.Append(first_name);
customerMsg.Append(" ");
customerMsg.Append(last_name);
customerMsg.Append(",
");
customerMsg.Append("Thank you for your purchase. Your details are below.
");
customerMsg.Append(ctemp.ToString());
merchantMsg=new StringBuilder();
merchantMsg.Append("To: ");
merchantMsg.Append(business);
merchantMsg.Append("
");
merchantMsg.Append("
");
merchantMsg.Append("Custom pass through data: ");
merchantMsg.Append(custom);
merchantMsg.Append("
");
merchantMsg.Append(mtemp.ToString());
log.WriteLine(customerMsg.ToString());
log.WriteLine(merchantMsg.ToString());
} private void SendMessages() { log.WriteLine("SendMessage");
try

{

m = new mail();
m.Body=customerMsg.ToString();
m.From="caroline@bogartcomputing.com";
m.FromDisplayName="Bogart Computing Payment Received";
m.IsBodyHtml=true;
m.Subject="Bogart Computing PayPal Payment Received";
m.To=payer_email;
log.WriteLine("Sending customer email");
log.WriteLine(m.To.ToString());
m.send();
m.Body=merchantMsg.ToString();
m.To=business;
log.WriteLine("sending merchant email");
log.WriteLine(m.To.ToString());
m.send();
} catch (System.Exception smex)

{

log.WriteLine(smex.Message);
}

}

private bool IsDupeTxn()

{ return false;
}

private void CreateLog()

{

try

{

StringBuilder logname=new StringBuilder();
logname.Append(Request.MapPath("."));
logname.Append("\\log_");
logname.Append(DateTime.Now.Ticks.ToString());
logname.Append(".txt");
string filename = logname.ToString();
log = new StreamWriter(filename);
log.WriteLine(DateTime.Now.ToString());
log.WriteLine("Form");
log.Write(Request.Form.ToString());
} catch (System.Exception logex) { try { SendDebugMessage("IPN create log failed", logex.Message);
} catch { } throw logex;
} } private void TriggerEmail() { log.WriteLine("TriggerEmail()");
try { // send me note that ipn was triggered // inform owner that ipn is triggered mail m = new mail();
m.From="caroline@bogartcomputing.com";
m.FromDisplayName="Bogart Computing web site";
m.To="caroline@bogartcomputing.com";
m.Subject="bogart computing ipn triggered";
m.IsBodyHtml=true;
m.Body=Request.Form.ToString().Replace("&", "
");
log.WriteLine("about to send email cb notification start email");
try { m.send();
} catch (System.Exception ex) { log.WriteLine(ex.Message);
throw ex;
} } catch (System.Exception mex) { throw mex;
} } private bool IsValidIPN() { log.WriteLine("IsValidIPN()");
try { // ask PayPal if this is a valid IPN string value, response;
string form = Request.Form.ToString();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://www.sandbox.paypal.com/cgi-bin/webscr");
req.Method = "POST";
req.ContentType="application/x-www-form-urlencoded";
value=form + "&cmd=_notify-validate";
req.ContentLength=value.Length;
log.WriteLine("create streamout");
StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
streamOut.Write(value);
streamOut.Close();
log.WriteLine("create streamin");
StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
// response from PayPal response = streamIn.ReadToEnd();
streamIn.Close();
log.WriteLine(response);
return (response.ToLower()=="verified");
} catch (System.Exception ex) { log.WriteLine(ex.Message);
throw ex;
} } private string FormItem(string formAddress) { string result;
try { result=Server.HtmlEncode(Request.Form[formAddress]);
} catch { result=”N/A”;
} if (result==null) { result=”N/A”;
} return result;
} }

{ 0 comments }

More on The March 31 05 Google Patent

Why does Google reward an accelerating rate of document changes?

The answer to this — and every other Google patent question, for that matter — is that accelerating document changes indicate that the document has a higher likelihood of being high quality and authoritative.

Google is biased against stale documents, presumably because a new information would generally tend to supercede old information.

Given two sets of documents, decide which is of higher quality and more authoritative.

First we have hundreds of years of scribe-transcribed papyrus declaring the flatness of the universe. We have a huge quantity of reference to the flat earth and some priests vested with intellectual authority writing them.

Next we have a couple of pages that maintain that the world is round. At first these documents have little weight and little authority. As the earth’s roundness gets confirmed, more and more explorers write of the round earth. Their documents point to one another (”…as Columbus has already said, the earth is, indeed round, and I can confirm that…”).

The new documents increase with an accelerated pace as more and more explorers confirm each others’ findings. Meanwhile, the flat earth documents get staler and staler.

New paradigms with contagiously righteous information will generate a pile-on effect, creating lots of content quickly. By the time the round earth notion reaches critical mass, the flat earth web master quits and that site’s documents stop getting updated all together.

Hence, an accelerating rate of document changes implies a new source of authoritative, peer-reference content.

{ 0 comments }

Why does Google want to see updated outbound link anchor tag text?

At first glance this patent rule seems somewhat contradictory to Google’s mission of delivering high-quality content.

In their never-ending quest for quality content, Google implements an anchor tag algorithm that categorizes updated content as good and stale content as bad.

At first this seems wrong, as so eloquently pointed out by riottech (Google recent patent historical data and page rankings).

It will be interesting to see how Google handles “stale” documents. It seems like a page not having recently updated content will not always mean that it is not a good source of information. Many encyclopedia articles and reference pages should not change often, I would think. Does fresh content always mean better content?

I suppose that Google’s reasoning is like this: “In 1491 the world was flat. In 1492, not so much.”

In other words, what are the chances that an updated document is less accurate than an older one? Let’s assume that document updates imply higher document accuracy.

Updated inbound link anchor text indicates a probable document correction.

{ 0 comments }

On the Google Patent back link growth rule…

I can’t begin to express how clever this rule is, and how clever it must be.

It’s elegantly anti-spam
Google puts a high value on incoming links to your site. You have content. People point to you. You must be an authority. Google wants to display high-quality authoritative content. Google displays your site in its search listings.

This scenario has led to a multi-million dollar industry in link spam. Link farms, link exchanges, text ads advertising as links… all of which lower the quality of Google’s search results.

The rule is clever because it’s so elegantly anti-spam.

How clever it must be
If I put something hot in a thermos, it stays hot.

If I put something cold in a thermos, it stays cold.

how does it know?

Google records the quantity and quality of your site’s back links (incoming links). True link backs grow slowly. As content providers discover how clever, interesting and compelling your site is they put up links that say: here, look at this clever, interesting and compelling web page.

Google recognizes that links backs might grow in spurts… a TV show creates huge exposure, creating buzz, creating link backs. As part of the patent, Google will take bursts into account.

Measuring the rate of growth is a simple calculation. But determining if an inbound link is really a text ad, or if a burst in link growth is valid takes some pretty intelligent algorithms.

You know what’s nice about Google?
After struggling with Microsoft’s products for 25 years, isn’t it nice that we have a computing giant in Google that implements quality with academic attention to detail? We are worthy, and it’s damned nice to really respect a software company for a change.

{ 0 comments }

Continuing our analysis of the Google Patent (aka Ethical SEO equals Quality SEO)

Links from Independent Peers
Google will reward sites that have links from independent peers. So get rid of brochure sites, which are essentially spam. Remember, Google’s original research paper likened the search engine algorithm to peer-reviewed scientific journal references. If the Journal of the American Medical Association cites my article, that gives it “weight.” But if Dr. Marvin Monroe’s House of Quality Link Backs cites my article, well, then, that’s not given so much weight. In fact, if I own a piece of Dr. Marvin Monroe’s House of Quality Link Backs, my article will likely be penalized for being referenced from that source.

{ 0 comments }

In our last post we broke the latest Google patent down into a list of Google’s likes and dislikes.

Google will still reward updated content.
The SEO/SEM implication is not just more content, though. If it were we would all hook up our sites to news feeds and go to the beach. Google, more than ever, is looking for quality content. That’s a little harder.

Anchor text is still important
Anchor text is the human-readable part of the link. Google’s goal is to provide the highest quality content. It therefore will reject both spam and poorly-worded sites. Rather than writing:

Click here to see my blog

This anchor text references the word “here.” Not very informative.

Say:

Visit the eProgramming: Software for Web Marketing blog.

This anchor text references the words “eProgramming, Software, Web and Marketing.” Those are high-quality words.

Where up top we said:

In our last post we broke the latest Google patent down into a list of Google’s likes and dislikes.

We should have said:

In our last post we broke the latest Google patent down into a list of Google’s likes and dislikes.

What is a better search phrase: “post” or “Google patent”?

Watch this space for more Google Patent Implications.

{ 0 comments }

Google’s March 31 2005 patent application reveals some details of Google’s focus on quality.

The Description section reveals some current and future Google likes and dislikes. The patent concentrates on ways to deliver quality search results. Below are some inferences I take away from reading the patent.

Google rewards (or reserves the right to reward):

  • updated content (with the monkey wrench thrown in that sometimes older documents are better), especially for FAQs
  • new unique content
  • content that Google has successfully matched to other users’ search terms
  • anchor text (the text the reader sees in a link)
  • links from “independent peers”
  • a high and probable rate of back link growth
  • updated outbound link anchor tag text
  • an accelerating rate of document changes
  • time-based relevancy (search for “world series champion” in 2005 yields different results than searching for “world series champion” in 2006)
  • an accelerating rate of incoming links
  • the trustworthiness of the site hosting the inbound link; trust is given to known entities (the government, Yahoo) and authoritative sites (outlined in yet another patent)
  • an accelerating rate of document traffic
  • entering a time period (e.g., “summer” or “weekends”) when the document has proved more popular
  • documents containing advertisements to trusted sites (e.g., Amazon)
  • documents containing advertisements that receive high click-throughs
  • documents with high stickiness
  • documents hosted on domains registered for ten years rather than 1
  • documents hosted on name servers that post quality DNS whois info
  • documents hosted on name servers that host a variety of domains
  • documents hosted on established name servers
  • documents that slowly rise in quality ranking scores
  • documents with accelerating bookmarking activity
  • documents with accelerating cookie activity
  • documents with accelerating cache activity
  • varying anchor text in inbound links
  • inbound links from high scoring sites

Google ignores (or reserves the right to ignore):

  • updated javascript, navigation, advertisements, date/time tags
  • non-”signature” content, i.e., content that is ignored when and if Google stores only a snapshot of the content it considers relevant
  • Google penalizes (or reserves the right to penalize):

    • stale documents
    • spam
      • links from dependent sites
      • new documents with a spike in inbound (aka “back”) links
      • a document that “hits” on widely varying queries
    • aging links that point to your content
    • artificially-dated content
    • a high but improbable rate of back link growth
    • a decelerating rate of document changes
    • a decelerating rate of incoming links
    • content that becomes inconsistent with the anchor text of its inbound links
    • a decelerating rate of document traffic
    • entering a time period (e.g., “summer” or “weekends”) when the document has proved less popular
    • documents containing advertisements to lest trusted sites (e.g., porn sites)
    • documents containing advertisements that receive low click-throughs
    • documents with low stickiness
    • domains that serve doorway (spam) inbound links
    • domains registered for one year rather than 10
    • low quality DNS whois info, including physically incorrect address information, constantly changing contact information, use of several hosting companies
    • name servers that host mainly porn, doorway, commercial-word-domain-names, bulk domains from a single registrar
    • new name servers (in combination with items from the bullet above)
    • documents that quickly rise in quality ranking scores
    • documents with decelerating bookmarking activity
    • documents with decelerating cookie activity
    • documents with decelerating cache activity
    • no variation in the anchor text in inbound links
    • inbound links from low scoring sites
    • an increase in the number of topics that make up the document

    { 0 comments }

    Yahoo blog submit

    by Caroline on April 11, 2005

    Chicklets: do as I do, not as I say
    While it’s true that I advised against using chicklets until we could make them more reader-friendly, we’re going to generate a chicklet today in the name of getting our blog listed on Yahoo.

    Submitting a blog to Yahoo is going the way of submitting a site to Yahoo. Yahoo site submission used to be free. Now, for only $299, don’t call us, we’ll call you. (Actually the free Yahoo submit still exists, it just carries less weight than, oh, $299.) Right now, it’s free to submit your blog to Yahoo. The day will soon come when that, too, will cost $299.

    You? Meet You.
    So consider it a priority to get your blog onto Yahoo now. You can do that through:

    Yahoo RSS Submit, the fabulously easy way
    My Yahoo is a content aggregator: it allows the reader to pick RSS feeds to be displayed on the My Yahoo page. In this insanely easy lesson we will pick our own feed to read, thereby telling Yahoo about our feed.

    1. Every My Yahoo page has a Add Content link. Click Add Content.
    2. Click Add RSS by URL.
    3. Enter your feed address.

    You’re done.

    Add to My Yahoo Chicklet
    The next method of getting your feed into Yahoo will also allow your readers to put your feed into their My Yahoo.

    In essence we will:

    • Create a Yahoo account
    • Create a Yahoo chicklet
    • Click the chicklet

    Yes. It’s that easy. Yahoo and FeedDemon create slightly different HTML but they both work.

    1. If you don’t already have a Yahoo account, create one
    2. Either:

    3. Use Yahoo to make a Yahoo chicklet
    4. or

    5. Use FeedDemon to create a Yahoo chicklet
    6.  

       

    7. In both cases you will generate HTML that tells Yahoo about your blog. FeedBurner already knows your feed address, but you’ll have to tell it to Yahoo. Yours looks something like this FeedBurner address.
    8. Click the button to generate the HTML. Copy the generated HTML and add it to your web site.
    9. Browse to your site
    10. Click the new Yahoo button
    11. Confirm Yahoo’s query:
      Add eProgramming: Software for Web Marketing to My Yahoo! Home Page.

    Timing

    • Yahoo can take up to 72 hours to read your blog. Wait three days before subscribing again.
    • When you click the add-to-my-yahoo link on your site, Yahoo might respond that it doesn’t see a feed. Just keep clicking until Yahoo changes its mind.

    Did I mention? Promote. Promote. Promote. On Yahoo.

    { 0 comments }

    Cool blog submit tool: RSS Submit

    by Caroline on April 11, 2005

    RSS Submit performs “automatic submission of your RSS Feeds to over 55 blog and RSS directories.”

    I just downloaded the trial and I like it. In less than a minute my FeedDemon[ized] Blogger content (the stuff you’re reading right now) was submitted to:
    Easy RSS, The Feed Directory, Memigo, Blog Digger, Bloogz, RSS Clipping, News Trove, Feedplex, Fyber Search, Yahoo and Read A Blog.

    If I fork over the reasonable $35-$75 licensing fee I’ll get 40+ more auto submissions. A very nice tool.

    { 0 comments }

    Blog Autodiscovery

    by Caroline on April 11, 2005

    Now that we’ve redirected the atom feed to FeedBurner we can direct all readers to FeedBurner. We’ll do that in our blog links and on the web site hosting the blog.

    Display the FeedBurner feed in the blog links

    1. Open the blogger.com template
    2. Find the section:
      <h2 class=”sidebar-title”>Links</h2>
    3. Comment out the default atom site feed link:
      <!– <li><a href=”<$BlogSiteFeedUrl$>” mce_href=”<$BlogSiteFeedUrl$>” title=”Atom feed”>Site Feed</a></li>–>
    4. Add the FeedBurner feed link:
      <li><a href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” mce_href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” title=”FeedDemon Atom/RSS/Anything Feed”>FeedDemon RSS/Atom SmartFeed</a></li>
    5. Save the template and publish

    Allow readers to autodiscover your feed
    Make these changes to the <head> of your web site home page:
    Create or edit any link alternate or link service.feed meta tags that might look like this:
    <link rel=”alternate” type=”application/rss+xml” title=”RSS” href=”http://mysite.com/rss.xml” mce_href=”http://mysite.com/rss.xml” />
    <link rel=”alternate” type=”application/rdf+xml” title=”RSS” href=”http://mysite.com/index.rdf” mce_href=”http://mysite.com/index.rdf” />
    <link rel=”service.feed” type=”application/atom+xml” title=”Atom” href=”http://mysite.com/atom.xml” mce_href=”http://mysite.com/atom.xml” />

    And point them to the FeedBurner feed instead:

    <link rel=”alternate” type=”application/rss+xml” title=”RSS” href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” mce_href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” />
    <link rel=”alternate” type=”application/rdf+xml” title=”RSS” href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” mce_href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” />
    <link rel=”service.feed” type=”application/atom+xml” title=”Atom” href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” mce_href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” />

    { 0 comments }

    This is part 6 in our series about FeedBurner.
    See part 5 here.

    Promote. Promote. Promote.

    In FeedBurner - Part 1, About Syndication, we talked about the different feed formats (RSS and Atom).

    In FeedBurner - Part 2, Point Your Feed Here. We’ll do the rest., we created a FeedBurner feed from our Blogger.com Atom feed.

    Which feed are they reading?
    Anyone who knew about your Blogger Atom feed before your FeedBurner syndication will use the old feed. Anyone who found your FeedBurner version of your Blogger feed will probably use that. As FeedBurner points out, multiple feeds only serve to fracture your feed statistics.

    FeedBurner’s SmartFeed is your babel fish. RSS? Atom? From here on out we don’t care. We’re going to feed the world with SmartFeed. In this lesson, we will redirect our Blogger.com’s-only-some-readers-can-read-atom Atom feed to our FeedDemon’s-RSS-Atom-automatic-translator feed. SmartFeed will send RSS to RSS readers and Atom to Atom readers. No reader is left behind, and our statistics will include our Atom and our RSS customers.

    How to redirect Blogger.com to SmartFeed
    From the FeedBurner home page

    • click the link under “Burned Feed”: ours is named “eProgramming for SEO and SEM”
    • check Smart Feed
    • click Save Feed Settings

    Now we’re going to make some template tweaks.

    1. Browse to your blog: http://www.sitexl.net/eprogramming/web-marketing-software.html
    2. view source
    3. copy the meta and link tags that are grouped together
    4. On Blogger.com, open you blog’s template
    5. Remove the line <$BlogMetaData$>
    6. Paste in the meta and link tags
    7. Change the atom.xml line:
      <link rel=”alternate” type=”application/atom+xml” title=”eProgramming: Software for Web Marketing” href=”http://www.sitexl.net/eprogramming/atom.xml” mce_href=”http://www.sitexl.net/eprogramming/atom.xml” />
    8. to the feedburner line:
      <link rel=”alternate” type=”application/atom+xml” title=”eProgramming: Software for Web Marketing” href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” mce_href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” />
    9. Add this line:
      <link rel=”alternate” type=”application/rss+xml” title=”eProgramming: Software for Web Marketing” href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” mce_href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” />
    10. save the template
    11. Republish your blog

    Your blog will now point to the FeedBurner feed for any atom requests:
    type=”application/atom+xml”
    and any rss requests:
    type=”application/rss+xml

    As you blog you will continue to publish the atom.xml file. RSS and Atom readers scanning your site for a feed will discover the meta tags for the FeedBurner redirect. FeedBurner will then send these readers the appropriate rss or atom version of your atom.xml file.

    { 0 comments }

    We interrupt our FeedBurner tutorial to bring you a quick reference to Corporate Blogging.info.

    As your web marketing consultants we’ve suggested that you blog for higher search engine results. Corporate Blogging.info is an excellent place for you to browse about blogging. For instance:

    Free Download
    16-page PDF
    Beginners’ Guide to Corporate Blogging

    … and …

    There are basically three ways to read a blog: Visit the web page, use an online news aggregator or download a reader. (found here)

    The site is a great resource for the new blogger.

    { 0 comments }

    This is part 5 in our series about FeedBurner.
    See part 4 here.

    Promote. Promote. Promote.
    Log in to the Feedburner account and click “Publicize.”

    The Headline Animator would get 5 stars if it weren’t for one thing: it only displays the first few letters or words of the headline, rendering it meaningless.

    The headline animator is a scrolling display of your last 5 post headlines. Unlike chicklets that tunnel the reader into an unknown universe or the FeedCount that whistles in cemetaries, Headline Animator is a customer-friendly way to advertise your blog.

    As soon as they fix that word count thing we’ll be all set.

    The Animator gives you a choice of headlines (use the default or enter your own). Click “Generate Animator” to retrieve your HTML code. Mine looks like this:

    <a href=”http://www.sitexl.net/eprogramming/web-marketing-software.html” mce_href=”http://www.sitexl.net/eprogramming/web-marketing-software.html”><img src=”http://feeds.feedburner.com/eProgramming-for-seo-sem.gif” mce_src=”http://feeds.feedburner.com/eProgramming-for-seo-sem.gif” height=”67″ width=”200″ style=”border:0″ alt=”eProgramming for SEO and SEM”/></a>

    And renders like this:
    eProgramming for SEO and SEM

    { 0 comments }

    This is part 4 in our series about FeedBurner.
    See part 3 here.

    Promote. Promote. Promote.
    Log in to the Feedburner account and click “Publicize.”

    Our next FeedBurner promotion tool is FeedCountTM. FeedCount “is another cool way to promote your feed.” Having quoted FeedBurner, here’s my take.

    Don’t do it.

    Right away, that is.

    FeedCount generates a button for your site. Like “hit count” buttons for web sites, this button displays the total number of times your blog’s been read. How confident would you feel about the content you were reading if it prominently and proudly displayed that there had been “zero” readers before you?

    Search Engine Marketing is a long road. You and your blog are young. Why rush things? You’ve got the rest of the Google Cycle ahead of you. Wait until you’re a little older, a little more experienced, a little more read.

    Marriage can wait.

    { 0 comments }

    This is part 3 in our series about FeedBurner.
    See part 2 here.

    Promote. Promote. Promote.
    Log in to the Feedburner account and click “Publicize.”

    We’re offered four ways to promote the blog feed:

    • Chicklets
    • FeedCountTM
    • Headline Animator
    • Tweaks and Sneaks

    I know what you’re thinking… “chicklets… is it gum? is it candy? That’s Razzles. Now pay attention. Sugar later.

    Chicklet: The icon everyone’s clicked at least once. It spits out raw xml rather than a formatted HTML page.

    Chicklets are icons, usually orange with a white XML written across them. The icon is is a visual clue that the chicklet points to your feed.

    Feedburner offers the standard chicklet along with Yahoo, newsgator, My MSN, FeedBurner and Plain Text options. Here’s the standard xml chicklet hyperlink:

    <a href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” mce_href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” title=”Subscribe to my feed”><img src=”http://www.feedburner.com/fb/images/pub/xml_button.gif” mce_src=”http://www.feedburner.com/fb/images/pub/xml_button.gif” alt=”" style=”border:0″/></a>

    I like the chicklet that says “FEED,” as this says so much more than “XML.”
    <a href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” mce_href=”http://feeds.feedburner.com/eProgramming-for-seo-sem” title=”Subscribe to my feed“><img src=”http://www.feedburner.com/fb/images/pub/feedchklt.gif” mce_src=”http://www.feedburner.com/fb/images/pub/feedchklt.gif” alt=”" style=”border:0″/></a>

    Placing this in our page renders as:

    Imagine This Scenario
    You are in the organic doggie biscuit business. You blog because you have so much to say about the dog food industry. You teach your readers about the health benefits of your brand. Search engines are hungry for relevant content. Your blog feeds the search engines with well-written, highly relevant information about the dog food business.

    The VP of Doggie Stuff Acquisition at Wal-Sears-K-Target-Mart is looking for new vendors. Organic is hot and organic doggie biscuits is hotter.

    She searches for “organic doggie biscuit” and finds your web site. On the site is a prominent orange chicklet that says: “XML.” Having heard that blogs use RSS and RSS is some kind of XML, Mrs. VP of Doggie Stuff Acquisition clicks the chicklet in the hopes of reading your blog. At best, the click displays Atom, a fairly readable form of your blog. At worst it displays RSS, an XML hash most definitely not meant for human consumption.

    Confused about why she’s no longer on your web site, and why the site she’s now reading is either indecipherable or vaguely formatted Atom, she Googles or Yahoos or MSNs off to find your competitor.

    The XML chicklet button is not intuitive. The XML chicklet button is so utterly out of context for the average business person visiting your site that the best you can hope for is a particularly experienced customer who knows what a “feed” is.

    Why depend on the highest common denominator? Business people are not in the business of knowing what XML means. Business people are in the business of buying 5,000 orders of organic doggie business, to start.

    That’s why, after we finish promoting our feed with FeedBurner’s tools, we’ll move on to making the feed as accessible as possible to the widest of all possible audiences.

    { 0 comments }

    This is part 2 in our series about FeedBurner.
    See part 1 here.

    FeedBurner - Point your feed here. We’ll do the rest.

    As promised, we’re now going to explore the world of FeedBurner.

    Blogger gives me the tools to create my Atom feed. Atom, like RSS, is a dialect, a contract that defines the structure of my xml’ized blog. Blogger does Atom, some blogging tools do RSS .9, 1.0 or 2.0. FeedBurner promises to make my Atom file understandable to syndicators that rely on RSS, so I’m all set as far as standards are concerned:

    • Use Blogger
    • Create an atom file,
    • Give the atom file to FeedBurner

    If you need help creating your Blogger atom file, click here.

    Remember, xml is not meant for human consumption. Atom is much friendlier on the eyes than RSS-type xml (your browser thinks it’s HTML), but it’s role in life is to be a feed. The “eProgramming: Software for Web Marketing feed is:

    http://www.sitexl.net/eprogramming/atom.xml

    This is what we’ll hand to FeedBurner’s URL entry box on the home page.

    FeedBurner now presents me with a world of services. I can:

    • detail traffic stats about individual feed content items
    • make my feed work with any reader
    • enable my feed for Podcasting
    • make my feed human-readable (what was I just saying about xml not being meant for human consumption?)
    • add Amazon.com links to my feed (for which I’ll get a referral fee if clicked)
    • and really a whole a lot more….

    Let’s start with item stats.

    Note that I did not take the default URL name: EprogrammingForSeoSem. Search engines want human-readable words, and eprogrammingforseosem is not a word.

    After easily creating an account I am asked to verify my only service choice, to gather item-level statistics for this feed.

    I admit I am pretty pleased when I see:

    You have successfully activated the feed “eProgramming for SEO and SEM”

    I have reason to feel pleased, as FeedBurner politely compliments me:

    Well Done. What Next?

    My choice is to launch my publicity tools. Publicity Tools. Let us ponder this… publicity… tools. eCommerce Blogging is about writing targeted content to attract a targeted market, and FeedBurner is offering me free publicity tools.

    We will explore these tools in detail in the next post.

    { 0 comments }

    FeedBurner - Part 1, About Feed Syndication

    by Caroline on March 31, 2005

    This is part 1 in our series about Feedburner.
    See part 2 here.

    FeedBurner does a great job of summing up the Blog/Feed/Rss/Atom world here.

     

    Consumer Bottom Line: RSS makes reviewing a large number of
    sites in a very short time possible.

    Publisher Bottom Line: RSS permits instant distribution
    of content updates to consumers.

    As a website owner running a blog for SEO as well as the greater good, your role is to publish highly-relevant RSS content. Your write the content, the blogging tool takes care of the RSS. 

    Some consumers use an online server and others use desktop applications to read your content. From the consumer’s perspective, your blog content is one of many feeds streaming into their tool for consumption. Because these consumers subscribe to these feeds, they are, by definition, targeted consumers.

    For publishing, FeedBurner suggests TypePad or Blogger (I used Blogger to compose this entry).

    For consuming on the desktop, FeedBurner suggests FeedDemon, NetNewsWire.

    For consuming online, FeedBurner suggests NewsGator, Bloglines and My Yahoo!

    FeedDemon
    FeedDemon’s role is as feed analyst. Just like we use web analysis to track web site hits and click-throughs, we use FeedDemon to track blog hits and click-throughs.

    In our next post, we’re going to step through applying FeedDemon’s tools to this blog.

    { 0 comments }

    AdsWizard.com

    by Caroline on March 31, 2005

    AdsWizard.com
    Buying flat rate ads on the internet is like moving from powerful PC’s to thin clients. It’s the wave of the past, and that is a good thing.

    When desktop PC’s arrived they wrestled power away from the mainframe, the sysadmin-controlled centralized box kept in a locked, air conditioned room. Each individual got power, including the power to totally screw up. The karmic result? Citrix, a thin client that depends on — wait for it — a sysadmin-controlled centralized box kept in a locked, air conditioned room.

    Internet pay-per-click continues to bring a lot of advertisers a lot of money. But because of its distributed nature, the PPC is open to the least common denominator competitor who clicks links to play dirty.

    Flat rate advertising worked in all media before the internet existed. Going back to flat rate might be the wave of the future.

    { 0 comments }

    Syndicate with Syndic8

    by Caroline on March 28, 2005

    Syndic8.com is one of the high-quality blog syndicator. Blogs go in, news feeds go out.

    Or, as Syndic8 tells its own story, Syndi8 is:

    • A community-driven effort to gather syndicated news headlines…
    • A readable master list of syndicated news content…
    • An XML list of syndicated news content…
    • Quality of server measurement of all feeds, with statistics and history…
    • Complete statistics on every aspect of the site’s content…
    • Reviews and pointers to syndicated tools and sites…
    • A very complete set of web services…
    • A plan to evangelize sites to syndicate their content…
    • A categorization system which uses existing schemes such as DMOZ
    • Articles and tutorials on syndication…

    Syndic8 comes in both free and paid versions. Today we’re going to free route.

    Start at “Add:”
    Add a feed to Syndic8

    Enter the URL of the Atom or RSS feed.
    For help creating an Atom feed from a Blogger.com blog, see Creating a feed using Blogger.com.

    Our url is:
    Here’s the feed we’re going to enter:
    http://www.sitexl.net/eprogramming/atom.xml

    After Syndic8 reads the xml file it presents you with a summary of your blog and a checkbox for you to check. Check the box and submit.

    That’s it. The rest is up to Syndic8’s polling mechanism and its staff of human volunteers who weed out content from the bad guys.

    { 0 comments }

    Creating a feed using Blogger.com

    by Caroline on March 28, 2005

    I’m using Google’s Blogger.com to create this content. Blogger is an excellent tool. The editor is elegantly easy.

    Blogger outputs Atom format xml. The only consequence of Atom over RSS format is whether the aggregators will read it. Since Google is the Gorilla and the Gorilla speaks Atom, we shouldn’t run into any problems sending our feeds to the syndicators. But if we do, I’ll be sure to document the alternative here (the alternative is to create an RSS xml file).

    To create the atom feed in Blogger.com, go to Settings / Site Feed.
    Publish Site Feed: Yes

    Descriptions: Full or Short: (”Select Full to syndicate the full content of your post. Select Short if you only wish to syndicate the first paragraph, or approximately 255 characters, whichever is shorter.”)

    Site Feed Server Path: enter the physical path on your ftp server where Blogger will put your atom file, e.g., /root path/your web server path/your blog path/

    Site Feed Filename: atom.xml (or anything you want .xml)

    Site Feed URL: Enter the http:// address of the atom.xml file. This will correspond to wherever the Site Feed Server Path serves up its HTML, e.g., http://www.sitexl.net/eprogramming/atom.xml

    Save the settings and publish the atom.xml file. Once created, we will use this file to syndicate our blog.

    { 0 comments }

    RSS Distributes Your Content

    by Caroline on March 28, 2005

    RSS sometimes stands for “Really Simple Syndication.” That’s it. I’m not going to give you any more technical details about RSS. Every article I’ve ever read about RSS is like asking for the time and getting the history of Switzerland. The history of RSS is boring. RSS: It syndicates in a really simple way, and that’s all you need to know about the technical aspects of RSS. What’s important is not how it works, but what it can do to increase web sales.

    Get Out There
    The difference between blogging and blogging with RSS is like the difference between putting a For Sale sign in your window and putting it in the newspaper. Blogging requires that the search engines find you. RSS announces your blog to the world. When the search engines index your site, they’ll see the sign in the window and index and blog. But when we use RSS to push your blog out to the world, we’ll feed the content to targeted readers who really care about what you have to say.

    By converting the blog into RSS format and publishing its availability, interested readers can subscribe to your site’s feed. When you make an update from your computer, the subscribers receive the article on their computer.

    Feedster.com
    One way to push content is through Feedster. As a publisher, we give Feedster the blog. Feedster breaks it down into its hyperlinks, keywords, topics, timeliness and relevancy buckets. Subscribers searching for your content will find your content, because you’re only competing against other blogs, not the 40 gabillion pages of the web.

    Then, the beautiful part happens. Feedster shares its content with Yahoo, and now your blog makes your site that much more relevant to Yahoo users as well.

    { 0 comments }

    Blogging is Good e-marketing

    by Caroline on March 28, 2005

    A blog is a running commentary. To understand blogging, just substitute the word “write” for the word “blog” in the following sentence: Lawyers blog about law, dog trainers blog about dogs and e-marketers blog about e-marketing.

    Content Is King
    In the world of web marketing, Content Is King. Content must be relevant. Content must be dynamic. Content must be placed where the search engine can find it.

    Content is every word on your site. It’s your About Us page and the products for sale; it’s the terms and conditions and the Our Friends links. Every word and every image description makes up the site’s content.

    If a web site is scattered, if it’s about selling jewelry and baby’s first steps, about fine wine and the family’s trip to Disney Land, no one and no search engine will get the point. Why doesn’t the jewelry sell? Why doesn’t the wine sell? In part it’s because the site’s content is too diluted.

    Focused Content is the Royal Family
    Search engines want tight, focused, on-message content. Instead of an article about baby’s first step, our jewelry vendor would do much better to write about the making of cubic zirconium. Instead of sharing the family vacation, our wine seller would improve his bottom line with an article about the effects of this year’s weather patterns on California and France.

    Whence Gutenberg?
    When Gutenberg printed the bible in 1450 he started the path that led directly to The Blog. Today everyone sets type, determines fonts and composes published material. After typesetting came word processing, web pages and now the blog, the tool that makes everyone a publisher of his own content. Now we are all publishers. And since there is so much competition in the content arena, web marketing (blogging) content must be relevant, precise, interesting and appealing.

    It’s Easy
    Fortunately the tools couldn’t be easier to use. Considering how powerful they are, blogs are astoundingly simple to use. Blogs combine content management, page design, HTML markup and ftp publishing all without exposing you to 99% of the technology behind the magic. You or someone on your e-marketing team will setup the ftp credentials and directories, but after that you’re good to go. Have a thought, write an article, make sure it’s relevant to your site’s purpose, grammatically correct and free of spelling errors, then press “Publish.”

    Why Blog
    Blogs serve a huge search engine optimization and search engine marketing task: they keep the site’s content dynamic. Static pages fall off the edge of the search engine universe; dynamic pages live to be found another day. Blogs, properly fed and watered, provide dynamic content about your site’s purpose right on your site, making your website the “go to” for search engine users looking for your content.

    If you’re comfortable with your writing skills and you can devote at least two hours per week to the task you can use blogging as a way to boost your site’s findability. If you take it on yourself, just remember that blogging is a marketing tool. Don’t spend too long at it, you have a business to run. Don’t spend too little time at it or the tool won’t work.

    Copywriters Are Standing By
    Absent your will to write or to spend the time blogging, all is hardly lost. Good copywriters are eager to learn your business and write that blogging copy. Our SiteXL e-marketing component includes a content blogging copywriting service to keep your site fresh and relevant to those targeted search engine users who are looking for what you sell.

    { 0 comments }