2009-01-09 221 views
2

當一個網站有第三方Flash廣告時,網站是否有可能跟蹤點擊閃光燈?由於Flash文件不是由網站創建的,因此無法更改。但該網站希望確認廣告代理機構使用自己的點擊跟蹤報告的點擊率。跟蹤點擊Flash廣告

附加到對象或嵌入標籤的JavaScript onclick(或其他鼠標事件)不起作用。

我最近嘗試過的方法是在閃光燈上放置一個浮動不可見的div,並將點擊事件附加到該部分。但是,這在IE中不起作用。

另一個我想到的是使用我自己的Flash加載器SWF。新的SWF會將廣告SWF文件加載爲它所顯示的影片。然後,無論何時發生點擊,加載器Flash都會觸發我的點擊跟蹤JS,然後允許點擊事件繼續進行廣告Flash。這聽起來可能/可行嗎?

附錄:我對裝載機方法兩個問題:
1)從域example.com閃光燈可以加載ads.mordor.com的SWF文件?
2)在另一個swf中加載的swf是否可以獲得點擊事件?

+0

我相信對這兩個問題的答案是肯定的。 – Soviut 2009-01-09 22:53:46

回答

1

你的裝載機技術似乎是最理智的。其中一個好處是,您可以將其設爲通用的,以便可以根據需要加載所需的任何廣告,並在頁面上添加儘可能多的實例,同時始終生成相同的點擊數據。這簡化了捕獲不同Flash廣告有時產生的多種類型的點擊數據的需要。

這裏有一些代碼我得到了工作,對不起,提前大片段。

ImportMe.as(對名爲myButton臺上的按鈕實例)

package 
{ 
    import flash.display.MovieClip; 
    import flash.display.SimpleButton; 
    import flash.events.MouseEvent; 

    public class ImportMe extends MovieClip 
    { 
     public function ImportMe() 
     { 
      myButton.addEventListener(MouseEvent.CLICK, button_OnClick); 
     } 

     private function button_OnClick(event:MouseEvent):void 
     { 
      // shifts the button right 10 pixels to prove the event fired 
      myButton.x += 10; 
     } 
    } 
} 

Tester.as(裝載來自前面的代碼所產生的ImportMe.swf剪輯)

package 
{ 
    import flash.display.MovieClip; 
    import flash.display.Loader; 
    import flash.net.URLRequest; 
    import flash.events.*; 

    public class Tester extends MovieClip 
    { 
     public function Tester() 
     { 
      var request:URLRequest = new URLRequest("importme.swf"); 
      var loader:Loader = new Loader(); 
      loader.addEventListener(Event.COMPLETE, loader_OnComplete); 
      loader.addEventListener(MouseEvent.CLICK, loader_OnClick); 
      loader.load(request); 
      addChild(loader); 
     } 

     private function loader_OnComplete(event:Event):void 
     { 
      trace("loaded"); 
     } 

     private function loader_OnClick(event:MouseEvent):void 
     { 
      trace("clicked"); 
     } 
    } 
} 

這個例子沒有測試的唯一的事情是外部事件是否會在內部剪輯執行url重定向之前觸發。

+0

但實際上可能嗎?我的動作是生鏽的,所以在我把它關掉之前,我想知道它是否可行。 – Rob 2009-01-09 19:48:24