Installation
This plugin requires you add its filter to your project's filters.yml configuration file:
rendering: ~
web_debug: ~
security: ~
# generally, you will want to insert your own filters here
sf_google_website_optimizer_plugin:
class: sfGWOFilter
cache: ~
common: ~
flash: ~
execution: ~
A/B Experiments
The configuration for an A/B experiment should look something like this (in app.yml):
all:
sf_google_website_optimizer_plugin:
enabled: on
uacct: XX-XXXXX-X
experiments:
register1:
type: ab
key: XXXXXXXXXX
pages:
original: { module: auth, action: register, alt: ~ }
variations:
- { module: auth, action: register, alt: 1 }
- { module: auth, action: register, alt: 2 }
conversion: { module: main, action: welcome }
Once configured, the plugin's filter will automatically insert the necessary code to run this experiment on those requests whose parameters match those of the original, variation and conversion pages.
The example above uses one action with multiple template files. This auth/register action may look something like this:
class authActions extends sfActions
{
public function executeRegister()
{
switch ($this->getRequestParameter('alt'))
{
case '1':
return 'Alt1';
case '2':
return 'Alt2';
default:
return sfView::SUCCESS;
}
}
}
The experiment would then serve up one of the following template files:
registerAlt1.php (variation 1)
registerAlt2.php (variation 2)
registerSuccess.php (original)
Multivariate Experiments
The configuration for a multivariate experiment should look something like this (in app.yml):
all:
sf_google_website_optimizer_plugin:
enabled: on
uacct: XX-XXXXX-X
experiments:
home1:
type: multivariate
key: XXXXXXXXXX
pages:
test: { module: main, action: index }
conversion: { module: auth, action: register }
The view for main/index should include calls to the plugin's helper functions to declare the experiment sections:
<?php use_helper('GWO') ?>
<h1>
<?php echo gwo_section('greeting') ?>
Welcome to our site!
<?php echo gwo_section_end() ?>
</h1>
How to determine your experiment key and uacct values
These values can be easily extracted from the code Google provides for insertion at the bottom of your experiment's conversion page. Toward the bottom of this code, you'll see something like this:
_uacct = 'XX-XXXXX-X';
urchinTracker("/XXXXXXXXXX/goal");
Your experiment's uacct value is the string of letters and numbers assigned to the Javascript _uacct variable. Your experiment's key is the string of numbers between the two slashes in the string passed to the Javascript urchinTracker function.
Roadmap
- Easy extraction of experiment key value from Google code (by copy/paste to an admin module?)
- symfony 1.1 compatability
- Play nicely with
sfGoogleAnalyticsPlugin
Changelog
2008-07-31 1.0.0-stable
- Migrated
README to Markdown for new plugins system
- Added
lime_harness script to testing suite
2008-04-07 0.2.0-beta
- Updated
connect() logic to watch for request parameters that should be absent.
2008-04-07 0.1.0-beta