<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dave Wooding&#187; garden</title>
	<atom:link href="http://www.davewooding.com/category/garden/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davewooding.com</link>
	<description>Dave Wooding</description>
	<lastBuildDate>Sat, 31 Dec 2011 19:55:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How To Create A Video Sitemap For Camtasia Videos</title>
		<link>http://www.davewooding.com/how-to-create-a-video-sitemap-for-camtasia-videos/</link>
		<comments>http://www.davewooding.com/how-to-create-a-video-sitemap-for-camtasia-videos/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 03:02:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[garden]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[camtasia]]></category>
		<category><![CDATA[video sitemap]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.davewooding.com/?p=274</guid>
		<description><![CDATA[If you are a Camtasia user, creating a video sitemap is all about finding the video content location. For Google&#8217;s video sitemap, there are a few required items. Most are easy to provide &#8211; location, title, description, thumbnail location and then there is &#8230; the video content location. I&#8217;m a little bit leery of saying [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>If you are a Camtasia user, creating a video sitemap is all about finding the video content location.</p>
<p>For Google&#8217;s video sitemap, there are a few required items.  Most are easy to provide &#8211; location, title, description, thumbnail location and then there is &#8230; the video content location.</p>
<p>I&#8217;m a little bit leery of saying that there is exactly one way to find the video content location.  The truth is different versions of Camtasia have different options for the video content location.</p>
<h2>What Doesn&#8217;t Work</h2>
<p>At least not consistently is &#8211; viewing the source and looking for the video content location (a file with a .sfw, .mp4, .mov extension).</p>
<p>Here&#8217;s the HTML source code for web page containing a Camtasia video made from version 4.0.  There is no video content location shown in there.</p>
<p><img alt="" src="http://www.davewooding.com/images/camtasi_4_0.jpeg" title="Camtasia 4.0" class="alignnone" width="549" height="266" /></p>
<p>And here&#8217;s the HTML source code for a web page containing a Camtasia video made from version 7.0.</p>
<p><img alt="" src="http://www.davewooding.com/images/camtasi_7_0.jpeg" title="Camtasia 7.0" class="alignnone" width="600" height="239" /></p>
<p>For the version 7.0 page, you can actually get the location of the video content, for 4.0, you can not.</p>
<h3>What Should You Do</h3>
<p>Do what I do &#8211; login to your cPanel account, go to the filemanager, descend into the directory that contains the Camtasia video and look for the largest file.  That is more than likely your video content location.</p>
<p><img alt="" src="http://www.davewooding.com/images/biggest_file.jpeg" title="Biggest file" class="alignnone" width="700" height="364" /></p>
<p>Yes, I know, kind of a screwy way to do it.</p>
<p>Take the url of the file and enter that into your Content Location and off you go.</p>
<p><img alt="" src="http://www.davewooding.com/images/content_location.jpeg" class="alignnone" width="524" height="206" /></p>
<h2>Extra YouTube</h2>
<p>I should probably mention this in a different post, but figured since you are already here &#8230;</p>
<p>You can also use the video sitemap generator with YouTube videos that you <em>embed on your site</em>.</p>
<p>Once again, the most challenging part of the whole operation is finding the video content location.</p>
<p>With YouTube, it&#8217;s a snap.</p>
<p>Simply visit the video on YouTube (not your site), find the &#8220;Embed&#8221; button, then copy/paste the code into the Video Content Location box and continue on.</p>
<p><img alt="" src="http://www.davewooding.com/images/youtube_embed.jpeg" title="Youtube embed" class="alignnone" width="650" height="75" /></p>
<p>There you have it, how to include your Camtasia videos and YouTube videos hosted on your site in a video sitemap.</p>
<p>Related:</p>
<p><a href="http://www.davewooding.com/tools/?q=video#video">Video Sitemap Generator</a></p>
<p><a href="http://www.davewooding.com/easyvideoplayer-google-video-sitemap-generator/">EasyVideoPlayer Google Video Sitemap Generator</a></p>
<p><a href="http://www.davewooding.com/how-to-make-a-google-video-sitemap/">How To Make A Google Video Sitemap</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewooding.com/how-to-create-a-video-sitemap-for-camtasia-videos/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Google Adwords With Affiliate Data Feed</title>
		<link>http://www.davewooding.com/google-adwords-with-affiliate-data-feed/</link>
		<comments>http://www.davewooding.com/google-adwords-with-affiliate-data-feed/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 04:43:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[adsense]]></category>
		<category><![CDATA[garden]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.davewooding.com/?p=53</guid>
		<description><![CDATA[Time to play Adwords with the big kids. Hitch your pants up and lets get going. From start to finish, you&#8217;ll see how to setup a datafeed to generate content that gets triggered by Adwords clicks. Content rich advertisements that provide a plethora of opportunities for your visitors to find exactly what they are looking [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Time to play Adwords with the big kids.  Hitch your pants up and lets get going.  From start to finish, you&#8217;ll see how to setup a datafeed to generate content that gets triggered by Adwords clicks.  Content rich advertisements that provide a plethora of opportunities for your visitors to find exactly what they are looking for.  By way of example, you will see how to:  &#8211; get a datafeed, setup a MySQL databse, create a script that cleans up the datafeed and uploads the content to the database  &#8211; build a PHP search script for displaying results appropriate to your visitors interest  &#8211; use a script that creates Adwords keyword groups from the title of the products stored in the MySQL database  &#8211; setup an Adwords campaign that uses dynamic keyword insertion  &#8211; define a htaccess file that creates search engine friendly URLs from the Adwords dynamic keyword insertion used in your advertisements  &#8211; create a template that provides a list of related items and common content such as a header, navigation bar, contextual advertisements (like <a href="https://www.google.com/adsense">Google Adsense</a>), and footer  &#8211; another PHP script, a redirect script, that logs time, I.P. address and link clicked for tracking purposes  There is a lot to cover in this Adwords article, lets get started.</p>
<h3>Setting Up Your Datafeed</h3>
<p>Like I said, this is going to be a working example, no theory here, of how to use Adwords with a datafeed.  Trust me when I tell you it is not all pretty.  There is some ugliness involved when adding a vendor&#8217;s datafeed to the mix &#8211; &#8220;goofy&#8221; characters being the biggest offender.  You&#8217;ll know them when you see them.  For this example, I am going to use a datafeed I have previously used, one of the most content rich datafeeds I have found on ShareASale &#8211; the Nature Hill&#8217;s datafeed.  If you want to follow along, head over to ShareASale, login or signup if you aren&#8217;t a member already, then grab the <a href="http://www.davewooding.com/sign-up-for-nature-hills/" target="_blank">NatureHill datafeed</a>.  Once in, find the Nature Hill&#8217;s program and click on the link that says &#8220;Download .csv&#8221;.  <img src="http://s3.amazonaws.com/maybe/1.png" alt="Nature Hills" /> You&#8217;ll need to download the file and extract it to your computer.  <img src="http://s3.amazonaws.com/maybe/2.png" alt="download" /><img src="http://dwooding.doublectr.hop.clickbank.net/?tid=DW" alt="" width="1" height="1" /> Next, upload the extracted file (4742.txt) to your webserver in the directory of your choice and possibly change the permissions on this file (chmod).</p>
<h4>Good coders create, great coders reuse</h4>
<p>.. or something to that effect.  I tell you this because I found a site where someone has done a great job setting up a database and <a href="http://forum.abestweb.com/showthread.php?t=86606" target="_blank">importing the datafeed</a> just like we want.   Like I said, good coders create, great coders &#8230;  But before we do that, we need to create a MySQL database, user, and password.  You&#8217;ll also add the user to the MySQL database.  When everything is said and done, your MySQL information should look like this if you are using CPanel:  <img src="http://s3.amazonaws.com/maybe/3.png" alt="download" /> Back to the script.  Of course, it won&#8217;t be right if I didn&#8217;t hack up the script a little bit, now would it.  Remember how we have already uploaded the merchant&#8217;s datafeed file, in this case 4742.txt, to our webserver.  Since we have already done that, we can chop off the ftp portion of this script and simply start by reading in the file.  Plus, we need to add a little something extra to cleanup the title (Name).  The final script looks like this:  <a href="http://www.davewooding.com/adwords/upload.phps"><img src="http://s3.amazonaws.com/maybe/13.png" border="0" alt="download" /></a> Note well the &#8220;REPLACE&#8221; comments &#8211; that is for you to specifically change, in particular your ShareASale id ($sas_id) which is a number provided by ShareASale, database user, database password, and database name.  Typical information might look like this:  Now that we have all of our &#8220;supplies&#8221;, it is time to start building a &#8230;</p>
<h3>Search Script</h3>
<p>&#8230; that is &#8220;smart&#8221; enough to display results that your visitor would be interested in.  I already have in mind how my Adwords campaign will be setup so I know what this PHP search script needs to do.  Now, for the purists out there, you&#8217;ll recoginize that what I am about to show is a &#8220;hack&#8221;.  Not a pretty way of accomplishing what I want to do, but it works.  If the database I am using was much larger, I would probably run into performance problems.  The idea behind this is that I am looking for items whose Name matches ANY of the keywords provided by the user via an Adwords click.  If someone is looking for &#8220;apple trees&#8221;, the search script will return results that have either &#8220;apple&#8221; or &#8220;tree&#8221; or both in the Name of the database field.  And being the money grubbing mongrel that I am, results will be returned with the most expensive item displayed first <img src='http://www.davewooding.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   As a fall back, if there are no matches in the Name (title) part of the database, the search script will make a second pass through the database looking in the Description part of the database for matching items.  If that returns no results; well, I&#8217;ll figure something out by the time we get to the end of this article.  We will start by creating a snippet of code that parses through the keyword or keywords and creating a sql query statement.  <img src="http://s3.amazonaws.com/maybe/4.png" alt="sql query" /> This code assumes that the keyword(s) is passed from another script (which it will be using since we are using dynamic keyword insertion with Adwords).  Line by line:  3) Grabs the keyword(s) passed from another script, chops off the whitespace at the beginning and end (if there is any), then strips out any tags (html type) to prevent any &#8220;junk&#8221; from being passed in.  4) Take the keyword(s) and break them up into individual words, shove them into an array.  5) Loop through each keyword.  6) Make sure the keyword is not empty.  7) Build a portion of the sql query needed and keep appending for each keyword.  10) Once finished with each keyword, chop off the extra &#8220;||&#8221; from the end.  This is the conditional part of the yet-to-be-displayed sql query needed for searching the database of affiliate products.</p>
<h3>Lets Query</h3>
<p>If you look up at the original script shown (you don&#8217;t have to, trust me on this one), we named our table naturehills.  Lets define a variable with that value.  Now create a sql query that uses that variable and the $extra variable.  Our search script now looks like this:  <img src="http://s3.amazonaws.com/maybe/5.png" alt="sql query" /> Lets move along and show what the script looks like with the sql statement and looping through the results (along with our backup plan if we don&#8217;t get results the first time).  Save this as &#8220;search.php&#8221;  <img src="http://s3.amazonaws.com/maybe/14.png" alt="search" /> Notice I have added some MySQL stuff at the top to connect to your database.  For where we are now, I am simply having the script print out the Name if it finds a match.  If there are more than 30 results, the script stops returning results.  The $count keeps tracks of how many results; if there are less than one result after the first sql query, the search script then changes the query from looking in the Name field to looking in the Description field ($extra = preg_replace(&#8220;/Name/&#8221;, &#8220;Description&#8221;, $extra);).  To be honest, I don&#8217;t expect that the Description option will ever be triggered.  Why? Because of the way I will setup my Adwords campaign that uses the datafeed Name as keywords.  But just to be safe the script will include the backup query.  Almost forgot my money mongering ways, add this to the sql statement to return results by most expensive to least expensive:  That&#8217;s the basis of our search script, we will fill it out later to present the results in such a way that results are included in a template to display for our visitors.  Moving right along.</p>
<h3>Creating Adwords Keyword Groups</h3>
<p>We are going to query the database that contains our datafeed information, grab all the names, and build a keyword group for EACH keyword that we can dump into the Google Adwords Editor.  We could always group our keywords by another field in the datafeed, either Custom1 or Custom3, which shows which groups each Name fits into.  Since I don&#8217;t know if I can count on these fields being populated at a later date, I&#8217;ll opt not to use these.</p>
<p><a href="http://www.davewooding.com/adwords/adwords_keywords.phps"><img src="http://s3.amazonaws.com/maybe/15.png" border="0" alt="adwords campaign creator" /></a></p>
<p>The result from running this script is a textarea box filled with ad groups that consists of one keyword per ad group with the campaign name &#8220;CAMPAIGN&#8221; that looks like the following.</p>
<p><img src="http://s3.amazonaws.com/maybe/6.png" alt="adwords campaigns" /></p>
<p>I recommend you do a search and replace and give the campaign (&#8220;CAMPAIGN&#8221;) name something else.  Then copy the results.</p>
<h3>Google Adwords Editor</h3>
<p>If you are not familiar with the <a href="http://www.google.com/intl/en/adwordseditor/">Google Adwords Editor, download it here</a>.</p>
<p>Next, go over to your Google Adwords Editor (I&#8217;m making the assumption that you have figured out how to set this up).  Click on &#8220;Keywords&#8221;, then click on &#8220;Make Multiple Changes&#8221;, choose Add/Update Multiple Keywords.</p>
<p><img src="http://s3.amazonaws.com/maybe/7.png" alt="adwords" /></p>
<p>Next, for the Destination option, choose the radio button that says &#8220;My keyword information below includes columns for campaign and ad group names. (These columns should be first, and in this order.)&#8221;.</p>
<p><img src="http://s3.amazonaws.com/maybe/8.png" alt="keyword" /></p>
<p>Paste the results.  Click on &#8220;Next&#8221;.</p>
<p>Some keywords might be ignored for duplicate reasons.</p>
<p><img src="http://s3.amazonaws.com/maybe/9.png" alt="duplicate" /></p>
<p>Complete the information required under the Ad Groups and Campaigns tabs before posting this new campaign to Adwords.</p>
<p><img src="http://s3.amazonaws.com/maybe/10.png" alt="campaign" /></p>
<p>Under Campaigns, you will need to set a daily budget.</p>
<p>Under Ad Groups set a Max. CPC Bid (USD).  Finally, click on the Ads tab, click on the Add Text Ad and add an ad for the newly created camgain (that was a mouthful).</p>
<p>NOTE WELL the liberal use of dynamic keywords  THIS IS IMPORTANT  and is the heart and soul of the whole operation &#8211; in particular the destination url.  If you are not familar with dynamic keyword insertion, check out the post I made about this.  http://www.davewooding.com/google-adwords-dynamic-keyword-insertion-php-script/</p>
<p>That&#8217;s it for the .htaccess file.</p>
<h3>Template For Results</h3>
<p>For this, I will leave up to you, dear reader, to come up with a decent looking template that displays results the way you want them to look like.</p>
<p>I&#8217;ll show results using a basis template that relies on subsitution for presenting unique content.</p>
<p>Create a file called &#8220;template.html&#8221; that contains something like this:</p>
<p>I know, I know, very boring.  I&#8217;m sure you can come up with a much better looking template.  You&#8217;ll probably want a Terms of Service page, a privacy page, an About page, a contact page, etc. </p>
<p>Notice the %%whatever%% things, those are &#8220;tokens&#8221; which will be replaced with a value that the search script uses &#8230; a value that is pulled out of the database based on the keyword sent over from Adwords.</p>
<h3>A Better Search Script</h3>
<p>Remember our php search script from earlier?  We are going to modify it to log the keyword(s) along with the date/time, and I.P. address of the visitor along with printing out results that use the template.html page.</p>
<p>Lets start by creating another table in our MySQL database called &#8220;visitors&#8221; that includes date, I.P. address, search term. Here&#8217;s the SQL dump to create.</p>
<h3>Tracking Keywords And Clicks</h3>
<p>Ah yes, tracking.  How could we possibly forget that.  You may have noticed I sneaked in a page called go.php in the results that get printed out.  That is a PHP script that (1) dumps the search search term into a database and logs the time, I.P. address of the visitor, the keyword that brought the visitor to the site, and the link that was clicked.</p>
<p>Now we just have to create it.</p>
<p>First, another MySQL table called &#8220;clicks&#8221; that logs the date, visitor&#8217;s I.P. address, keyword used to arrive and link clicked.</p>
<p>And our go.php script to log the click and redirect to the vendor:</p>
<p>http://www.davewooding.com/adwords/go.phps</p>
<h3>Adwords driven, datafeed generated content</h3>
<p>That&#8217;s all she wrote.  Hope that helps you get your head wrapped around the idea of using a <strong>datafeed with Google Adwords</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewooding.com/google-adwords-with-affiliate-data-feed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sign Up For Nature Hills</title>
		<link>http://www.davewooding.com/sign-up-for-nature-hills/</link>
		<comments>http://www.davewooding.com/sign-up-for-nature-hills/#comments</comments>
		<pubDate>Sat, 30 May 2009 00:30:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[garden]]></category>

		<guid isPermaLink="false">http://www.davewooding.com/?p=29</guid>
		<description><![CDATA[Here&#8217;s what you need to do to get signed up as an affiliate for Nature Hills. 1) Go to ShareASale and signup as an affiliate. If you are already an affiliate, sign in. 2) Click on the link that says &#8220;View those with Datafeeds&#8221; under the Find/Join Merchants title. 3) In the keyword search box [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Here&#8217;s what you need to do to get signed up as an affiliate for Nature Hills.</p>
<p>1) Go to <a href="http://www.davewooding.com/go/shareasale.html" target="_blank">ShareASale</a> and signup as an affiliate.  If you are already an affiliate, sign in.</p>
<p>2) Click on the link that says &#8220;View those with Datafeeds&#8221; under the Find/Join Merchants title.</p>
<p><img src="http://www.davewooding.com/images/share_nature1.jpg" alt="" /></p>
<p>3) In the keyword search box type &#8220;garden&#8221; and change the Show me merchants programs that &#8230; to &#8220;Both &#8211; show me all.&#8221;</p>
<p><img src="http://www.davewooding.com/images/share_nature2.jpg" alt="" /></p>
<p>4) Find Nature Hills Nursery.</p>
<p><img src="http://www.davewooding.com/images/share_nature3.jpg" alt="" /></p>
<p>5) Click on &#8220;Join Program&#8221;</p>
<p><img src="http://www.davewooding.com/images/share_nature4.jpg" alt="" /></p>
<p>Typically Nature Hills auto accepts and you are ready to go.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davewooding.com/sign-up-for-nature-hills/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

