PRB: Click URLs for Ads Do Not Function When Site Is in URL Mode or Cookies Are Turned Off (295638)



The information in this article applies to:

  • Microsoft Commerce Server 2002
  • Microsoft Commerce Server 2000

This article was previously published under Q295638

SYMPTOMS

Click URLs that typically take the customer to a certain category or product page do not function.

CAUSE

If a customer's computer has cookies turned off, or if a Commerce Solution Site is in URL mode, an MSCSProfile ticket is appended to the customer's URL. The ASP script in Banner.inc returns an advertisement that has no ticket on the URL.

RESOLUTION

To permit advertisements to append a ticket to the URL, follow these steps:
  1. Install the Resource Kit, and then run the TemplateCreator.exe file.
  2. Select the site that you want the ads to display in.
  3. Add an attribute named mscsprofile to the image template, as follows:
            Label= mscsprofile
            Source = contextprofile
    					
    NOTE: Do not set the type so that it does not show up in the Bizdesk.

  4. Right-click the image template, and then click template text. After the URL, type %26{%mscsprofile%}. The resulting code resembles the following:
    <!--Inserted by Microsoft Commerce Server-->
    <A HREF="{%RedirectUrl%}?ciid={%item_id%}&cachename={%CacheName%}&PageGroupId=
    {%PageGroupId%}&url={%ClickUrl%}%26{%mscsprofile%}" TARGET="{%TargetFrame%}
    "><IMG SRC="{%ImgUrl%}?CEVT={T=CAMP,CI={%item_id%},PG={%PageGroupId%},EVT
    =DOWNLOAD}" WIDTH={%Width%} HEIGHT={%Height%} BORDER="{%Border%}"
     Alt="{%AltText%}"></A>
    					
  5. Change Banner.inc as follows:
    Dim oCSO, Ads, Ad, oUserProfile, bcookie
    If IsEntityInSet(sThisPage, MSCSPageSets.AdvertisementPageSet) Then
    
    	Set oCSO = Server.CreateObject("Commerce.ContentSelector")
    	'oCSO.Size =  "Banner"
    	oCSO.Border = 1
    	oCSO.TargetFrame = "_top"
    	oCSO.NumRequested = 1
    	if m_iTicketLocation = 1 Then
    		bCookie = False
    	Else
    		bCookie = True
    	End If
    	if bCookie = False then
    	oCSO.MSCSProfile = GetTicketInUrlArg()
    	else
    	end if
    	Set oUserProfile = GetCurrentUserProfile()
    	If Not oUserProfile Is Nothing Then
    		Set oCSO.UserProfile = oUserProfile
    	End If
    	Set Ads = oCSO.GetContent( Application("CSFAdvertisingContext") )
    		
    	For Each Ad In Ads
    		Response.Write(Ad)
    	Next
    End If
    
    					

Modification Type:MajorLast Reviewed:10/22/2003
Keywords:kbprb KB295638