Track Invalid Clicks on AdWords With ASQL

Ever worry that some of your competitors are clicking your ads on your ads multiple times just to get you to go over budget? It isn't unlikely that this is happening to you, especially in a competitive market. Google has introduced some advanced mechanisms to determine if a click is invalid but I am not totally at ease by this. For people that know the IP address of invalid users you can go use IP filtering in the AdWords tools but the problem is that you would have to know the IP address of repeat offenders and if you are using Google Analytics you won't know the IP address of all your visitors.

Well if you have access to you access logs you can use a free tool called ASQL to load up your standard format Apache access logs and search them with SQL statements. You can read more about (and get) ASQL here: ASQL

Once you get ASQL running and your access logs loaded you can run a query like this to get a list of IPs that have clicked your ads multiple times:

SELECT source, COUNT(source) AS NumOccurences FROM logs WHERE referer LIKE '%adurl%' GROUP BY source HAVING (COUNT(source) > 1)

Great, now we can just enter these IP addresses into Google AdWords and we can not fear having anymore invalid clickers. That's not necessarily true.

Most people have dynamic IP addresses provided by their ISP. If you have a competitor who is clicking your ads from home his IP address may change every once in awhile and will appear to be a new user.

Some ISPs group users into one host. If you block that IP address you could potentially block a lot of users of that ISP in an area.

Google only allows 100 IP addresses into the IP filtering tool. You only can block a certain amount of IP addresses so before doing a 'scorched earth' approach at filtering people you may want to do a little research on each IP address. With a little research you may find that an IP address actually does belong to a competitor office of yours. In that case you definitely would want to block them.

Posted on 11 Feb 2011, 19:58 - Category: AdWords
No comments - Edit - Delete

Zero Impact Living

This is an interesting idea. A week long plan for living without making an environmental impact. No trash, no fuel, no chemicals down the drain, etc. While this sounds great it seems like it would have a trivial effect on global warming. Perhaps it will give people a new view on their consumption habits. It is interesting and I am willing to give it a try. How about anyone else? Read more about this here.

Posted on 8 Sep 2009, 16:56 - Category: Green Living
No comments - Edit - Delete

Papervision ATan function and MD2

Here is a snap shot of about a month ago in my papervisio sandbox project. It demonstrates using the atan function to get the angle of an object and a point in space and papervision MD2 loading and animation. I will elaborate on the atan function used and the sin cos math used to get the new x, z location of the model. In other words, how I make the model move toward the direction of the mouse.

To make the dragon move hold down the left mouse button and drag it around on the screen. You have to be patient for the MD2 to load up /:-(

Posted on 1 Jul 2009, 2:49 - Category: Papervision
No comments - Edit - Delete

Papervision Beginnings

I have been experimenting with papervision lately and it's great fun. I tried a sample project just to get me started thinking about 3D programming and graphics programming.

While it isn't amazing it marks my beginning in this topic. To get the plane to turn I perform a little math for its rotation every frame:

angle %= 360;
plane.rotationY = angle;
plane.rotationX = angle;
Fairly standard trig.

Posted on 30 Jun 2009, 2:12 - Category: Papervision
No comments - Edit - Delete

Setting Up Papervision3d in FlexBuilder

Setting up your FlexBuilder environment for papervision3d isn't too difficult as long as you familiar with SVN and eclipse. First I assume you are using the latest FlexBuilder and have completed the Flex in a Week tutorial series from Adobe

First, before we begin, a quick overview of what we are going to do:
* Get SVN in Eclipse.
* Checkout Papervision3D from SVN.
* Build Papervision3D.
* Create a new Flex Project and reference Papervision3D.

To begin you need to get SVN installed in Eclipse, if you already have SVN installed you can skip this step. Open up Eclipse/FlexBuilder and click on 'Help' in the top right, click on Software Updates. Once that screen is open click on the 'Available Software' tab and then click on 'Add Site.' Add this url in the dialog that pops up: The SVN plug in site is available in the update sites list now. Check the site and install. After the install process SVN should be available to you. If you need more help installing SVN you can read different instructions here:

After your up and running with SVN add the following repository to the SVN view:

First expand the repository then as3 folder and right click and checkout the 'trunk' folder. Checkout the project as papervision3d. It will probably take a minute or two to download all the files into the project. Once it completes right click on your new project and go to 'Flex Project Nature' and then select 'Add Flex Library Project Nature.'

Now all you have to do is build the project to get the swc file that you will include in your projects, the flex equivalent to a jar file. Open the build file, build/build.xml, in the project and change the location of the flex3dir property to the location of your flex SDK. My default location was C:/Program Files/Adobe/Flex Builder 3 Plug-in/sdks/3.2.0 but yours might be different. Now you can run the generateSWC ant task and the build script should compile all the code into a swc file in the bin directory.

Now create a new Flex project called whatever you want. With the project selected hit 'alt' + 'enter' to bring up the project properties and click on 'Flex Build Path.' Go to the 'Library Path' tab and Add Project. Select your 'papervision3d' project you just checked out and built. Now you should be ready to use papervision3d in your project.

If your still with me after all that we can get your application ready for the many papervision tutorials out there. Open up your MXML file and add a creationComplete event that calls an init() function, a script element, and a Canvas element with an id of pv3d. Add the init function to your script section and another function called render. You should have something like this:

<mx:Application xmlns:mx="" layout="absolute"

private function init(event:Event):void {


private function render(event:Event):void {

<mx:Canvas id="pv3d" height="100%" width="100%"/>

In your init method you are going to set up the papervision scene. The scene is where you later will place all your objects, lights, and cameras.

The idea is to create a UIComponent as a child of the canvas and add a papervision scene to UIComponent. If you are curious about the papervision object used here you should reference the documentation as you program. Your init function should look like this:

private var renderer:BasicRenderEngine = new BasicRenderEngine();
private var scene:Scene3D = new Scene3D();
private var camera:Camera3D = new Camera3D();
private var viewport:Viewport3D;
private function init(event:Event):void {
viewport = new Viewport3D(pv3d.width, pv3d.height, true, true);

var uiComp:UIComponent = new UIComponent();

camera.z = -500;
pv3d.addEventListener(Event.ENTER_FRAME, render);

Now implement the render function that we use as an event handler for the ENTER_FRAME event.

private function renderFrame(event:Event):void {
renderer.renderScene(scene, camera, viewport);

Thats it! You are good to go with a base papervision3D project. Now when you render it you won't see any 3d object, just an empty scene. But this is a good place to get you started for all the papervision tutorials that already exist out there.

Posted on 22 May 2009, 2:14 - Category: Flex
No comments - Edit - Delete

Pages: [1] [2]