"Campaign Manager" - Using the Software Update Wizard to Manager Web Based Marketing Campaigns / News.

Overview

In addition to using the Software Update Wizard to deliver software updates to your users over the web, you can also use it to launch news or promotional web pages from within your application at pre-specified intervals and viewing frequencies.  This functionality is referred to as the Software Update Wizard "Campaign Manager" within this documentation.

Typical uses of Campaign Manager are:

This functionality is handled completely outside of the usual Software Update Wizard software update process, and gives a fine degree of control and flexibility over how your campaign is deployed.

You can use the Software Update Wizard to deploy software updates or to run campaigns, or both.

In every case, the Software Update Wizard works in the following way:

Please note that the Campaign Manager sends no information whatever back to your organisation about which campaigns the user sees, refuses etc.. You may wish to reassure your users that this is the case in order to avoid inappropriate 'spyware' associations. Campaign Manager is not spyware because it transmits no information on usage. (The only information you do have of users' usage is your own web server web stats.)

Of course, if you would like to track usage or generate custom campaigns based on the specific user, you can dynamically generate the campaigns using PHP /ASP etc..

Deployment Considerations

Please note that the same firewall considerations apply to this functionality as for the Software Update Wizard software update behaviour - that is, the Software Update Wizard will be using port 80 to access the server script file and will be launching URLs through the user's default web browser.

Examples:

Example 1: A single page campaign

This is an example Campaign Manager script, to give you some idea of what is involved in writing these scripts.  The campaign launches a single html page, 'latestnews.html', to the frequency and at the time intervals specified in the script.

*CampaignOriginator=PowerProgrammer

URL=http://www.PowerProgrammer.co.uk/latestnews.html
ShowFrom=2011/09/01
ShowTo=2011/10/20
MaxShows=5
MaxPerDay=2
AskBefore=URL
AskBeforePrompt=Hello there <USERNAME>!<p>Would you like to see the latest news
from PowerProgrammer?
DayInterval=3

URL=http://www.PowerProgrammer.co.uk/crosspromo.html
ShowFrom=2011/12/01
ShowTo=2011/12/31

Example 2 - a multi-page campaign

This is an example of a multi-page campaign.  The differences from the simple campaign in Example 1 are highlighted.

In this multi-page campaign the URL lines are used in order.  The first time the campaign needs to show the web page it launches campaign_1.html.  The second time the campaign needs to show the web page it launches campaign_2.html etc. until it reaches the last URL line.

If the last URL line is "<End>" then the campaign stops and no more pages are launched for that campaign.  If it is not "<End>" then the campaign will wrap round, back to campaign_1.html once the last page in the campaign has been launched.

*CampaignOriginator=PowerProgrammer

Campaign=MyBoringCampaign
URL=http://www.PowerProgrammer.co.uk/campaign_1.html
URL=http://www.PowerProgrammer.co.uk/campaign_2.html
URL=http://www.PowerProgrammer.co.uk/campaign_3.html
URL=http://www.PowerProgrammer.co.uk/campaign_4.html
URL=<End>

ShowFrom=2011/09/01
ShowTo=2011/10/20
MaxShows=5
MaxPerDay=2
AskBefore=URL
AskBeforePrompt=Hello there <USERNAME>!<p>Would you like to see the latest news
from PowerProgrammer?
DayInterval=3

 

Syntax:

A 'Campaign' is a single block of commands which relate to the launching of a a single or multi-page web page campaign:

Each campaign must be separated from the previous campaign by a single empty line. You can have as many campaigns in your server script file as you like.

The first 2 lines of the script file must be conform to the example above - i.e. the text " *CampaignOriginator=<name>" must be on line 1, followed by a completely blank line immediately below, followed by the first line of the first campaign block. The Campaign Originator value should be a word or words which uniquely identifies the campaigns in this script file. It is used for 'keeping score' on which campaign blocks are shown each time the Campaign Manager is launched from your application.

"<name> " should be some text which uniquely identifies your company and the overall campaign. It is used internally by the Software Update Wizard to remember users' preferences for your campaign - the user will never see it.

The order of commands within each campaign block is insignificant - the Software Update Wizard reads the whole block and then actions the campaign,

The following commands are available:

Command Description Default if not included in a campaign block
*CampaignOriginator=<name>

Must be the first line of the script file - tells the Software Update Wizard that the script file is a Campaign Manager script rather than a software update script.

The <name> must be a word or words which uniquely identifies the campaign blocks in this script file and is used to 'keep score' on the user's machine of which pages have been shown etc.

The *CampaignOriginator= line must be followed by a single completely empty line.

This line is compulsory.  If not used as specified, the Software Update Wizard will interpret the script file as a software update script, rather than a Campaign Manager script.
Campaign= Only used for multi-page scripts and is used instead of the URL keyword to uniquely identify the campaign.

You must use this keyword for multi-page campaigns. It is not required (or used) in single-page campaigns.
This keyword is required for multi-page campaigns and should not be used for single-paged campaigns.
Log=Yes/No

Maintains a log file which Campaign Manager updates as it processes the script. Use it to test and debug your campaigns. Remove it when you 'go live'.

The filename is 'WebUpdateSvc_Campaign.log', and it will be located in the same folder as WebUpdateSvc4.exe.

The format of the log file is a tab delimited text file, containing the following fields:

  1. Date/time
  2. CampaignOriginator name
  3. URL
  4. Comment
No log is maintained
URL

The URL(s) of the news page(s) for this campaign.

Example:

URL=http://www.PowerProgrammer.co.uk/news.html

You can provide a series of URLs in a multi-page campaign, each on a separate line.  Each time the campaign is fired the Campaign Manager will launch the next URL in the series provided.

If the final URL line in the campaign is "URL=<End>" then the campaign will terminate once the URL preceding this line has been displayed.  If the final URL line is not "URL=<End>" then the campaign will wrap round, back to the first URL line once the last one has been displayed.

Multi-page campaigns must also provide a "Campaign=" line.

Example:

Campaign=MyBoringCampaign
URL=http://www.PowerProgrammer.co.uk/campaign_1.html
URL=http://www.PowerProgrammer.co.uk/campaign_2.html
URL=http://www.PowerProgrammer.co.uk/campaign_3.html
URL=http://www.PowerProgrammer.co.uk/campaign_4.html
URL=<End>
   etc...
This command is not optional - each campaign must have one, and only one URL line.
ShowFrom=yyyy/mm/dd

The start date of the campaign, specified as a yyyy/mm/dd date.

Example:

ShowFrom=2005/09/01

The example shows the campaign from 1st September 2005 onwards.

The campaign will be shown, unless the current date is later than the ShowTo date.
ShowTo=yyyy/mm/dd

The end date of the campaign, specified as a yyyy/mm/dd date.

Example:

ShowTo=2005/12/01

The example shows the campaign will end on 1st December 2005.

The campaign will run for ever!
MaxShows The maximum number of time the user will be shown a page specified in the URL line for this campaign.

Example:

MaxShows=5
The campaign will run for ever, providing none of the other script file lines mean it is not shown.
MaxPerDay The maximum number of times per 24 hours that a page specified in the URL line for this campaign will be shown.

Example:

MaxPerDay=3
The page specified in the URL line will be shown every time the script file is parsed by the Software Update Wizard providing none of the other script file lines mean it is not shown.
DayInterval Number of days between shows of the campaign. Allows you to space out shows of the campaign over an interval of days.

Example:

DayInterval=3
The page specified in the URL line will be shown every time the script file is parsed by the Software Update Wizard, providing none of the other script file lines mean it is not shown.
AskBefore =Now|URL|All In conjunction with the AskBeforePrompt option, posts a message box before the campaign URL is launched, giving the user the option to decline seeing the campaign, either just this time, just this campaign or globally.

Example:

Option Description
AskBefore=Now Prompts each time the URL page is shown for whether the page should be launched this time.
AskBefore=URL Offers the user the option to decline this campaign. Other campaigns in the script file will still be shown.
AskBefore=All Offer the user the option to decline ALL campaigns in the script file - i.e. to permanently turn off all campaigns in the server script.

 

 

If there is no AskBefore + AskBeforePrompt in the campaign the URL page will be launched automatically.
AskBeforePrompt Displays a message box giving the user the opportunity to decline a campaign or all campaigns, depending on the AskBefore setting.

The " <USERNAME> " constant can be used to personalise the message shown - the Software Update Wizard will pick up the name of the current logged on user and substitute it into the message.
If there is no AskBefore + AskBeforePrompt in the campaign the URL page will be launched automatically.
ResetAsks=URL|All If the user has previously declined a campaign URL or all campaign URLs from the same CampaignOriginator in the script file this keyword will reverse it. Please bear in mind that if you use this functionality you may displease your users!

Option Description
ResetAsks=URL Starts showing the campaign in which the ResetAsks line is located, irrespective of any previous choices the user has made.
ResetAsks=All Starts showing all campaigns, irrespective of any previous choices the user has made.

 

Previous choices apply.
AskAfter=Now|URL|All As AskBefore, except the prompt box appears after the campaign URL is launched. If there is no AskAfter + AskAfterPrompt in the campaign the URL page will be launched automatically.
AskAfterPrompt As AskBeforePrompt If there is no AskBefore + AskBeforePrompt in the campaign the URL page will be launched automatically.

 

In addition, the following commands are available, which let you (optionally) change the appearance of the dialog box prompts used by AskBeforePrompt and AskAfterPrompt. The syntax is the same as for WebUpdate Wizard dialog boxes :

DialogBk=
TitleBk=
TitleTxt=
Title=
Subtitle=
Bitmap=
Icon=

ScrollingLink=