设定:
目标: 要跟踪谁嵌入我的视频,至少每个域的基本统计信息。
因为它是AS2,所以更难做到这一点。我的想法是我可以创建一个PHP页面,每次播放器加载到任何网站时都应该打开它;然后,flash播放器可以对PHP文件进行“geturl”,该文件具有Google Analytics代码或其他一些体面的跟踪器。
geturl命令可以包含一个变量,如视频标题,已经包含在播放器中;这个标题将传递给PHP文件,并设置一个动态页面标题,可以很好地跟踪。
问题:如何在不使用用户的浏览器打开新选项卡或窗口的情况下使用GETURL功能。有没有隐藏的方法呢?
答案 0 :(得分:1)
我发现的主要问题是只有在html嵌入代码中有allowScriptAccess时才能控制外部信息,如下所示:
<param name="allowScriptAccess" value="always">
和
allowScriptAccess="always"
在标签中。
这对我来说有点晚了,因为我无法告诉每个嵌入我的播放器的人都将这些行添加到他们的网站,但是从现在开始......无论如何,想隐藏的人很容易删除这些行。 所以我重命名了SWF文件 ...现在每个进行远程嵌入的人都必须检查并获取新代码。
以下是有效的AS2代码:
function geturlhttp() {
//urlPath = ExternalInterface.call("window.location.href.toString");
urlPath = ExternalInterface.call("eval","document.location.href");
//both work, try which one is bet
}
geturlhttp();
var lv:LoadVars = new LoadVars();
lv.var1 = urlPath;
lv.var2 = title; //an internal variable, the name of the file
lv.sendAndLoad("http://www.somesite.test/tracker.php",lv,"POST");
因此,跟踪仅适用于我自己的网站,而不是在sql中显示为空或“null”的外部远程嵌入网站。
这是我用SQL编写的PHP代码。我只为插入做了一些东西,我将在稍后展示和选择......
<?php
//POST needs to be secured, this is just a test :)
$url = $_POST['var1'];
$title = $_POST['var2'];
$dbhost = "127.0.0.1"; // almost always localhost.
$dbname = "x"; // Database Name, In our case, its news
$dbuser = "x"; // Database Username
$dbpass = "x"; // Databse Password
$connect = mysql_connect("$dbhost","$dbuser","$dbpass");// Connecting to Database
mysql_select_db($dbname) or die (mysql_error()); // Selecting Database
$sql= "INSERT INTO tablename (urlrow, titlerow) VALUES ('$url','$title')";
$result = mysql_query($sql);
?>
答案 1 :(得分:0)
最简单的方法是使用LoadVars:
var lv:LoadVars = new LoadVars();
lv.var1 = "hostname";
lv.var2 = "browsersettings";
lv.send("http://yourserver/script.php, lv, "POST");
我不确定是否有任何Sandbox限制。
答案 2 :(得分:0)
Salut Dan,
有一段时间没做过as2。
mochi bot http://www.mochibot.com/images/i_hpss.gif
我记得我用了mochibot, 你可以跟踪你的瑞士法郎,无论它在哪里 嵌入
他们可能仍然有as2跟踪。