【问题标题】:Millennial Media PHP Request not returning anything千禧年媒体 PHP 请求不返回任何内容
【发布时间】:2011-09-28 06:56:59
【问题描述】:

所以我无法弄清楚我的代码不起作用的原因。基本上,我正在尝试使用 Flash actionscript 方法将 Millennial Media 广告放入我一直在制作的应用程序中。但是我有点卡住了,因为当我从我的 actionscript 发送 PHP 时,我似乎无法得到 Millennial Media 的回复。

这是 PHP:

<?php
/*--------------------------------------------------------------*/
/* Millennial Media PHP Ad Coding, v.7.4.20                     */
/* Copyright Millennial Media, Inc. 2006                        */
/*                                                              */
/* The following code requires PHP >= 4.3.0 and                 */
/* allow_url_fopen 1 set in php.ini file.                       */
/*                                                              */
/* NOTE:                                                        */
/* It is recommended that you lower the default_socket_timeout  */
/* value in the php.ini file to 5 seconds.                      */
/* This will prevent network connectivity from affecting        */
/* page loading.                                                */
/*--------------------------------------------------------------*/

/*------- Publisher Specific Section -------*/
$mm_placementid = XXXXX;
$mm_adserver = "ads.mp.mydas.mobi";

/* The default response will be echo'd on the page     */
/* if no Ad is returned, so any valid WML/XHTML string */
/* is acceptable.                                      */
$mm_default_response = "";

/*------------------------------------------*/

/*----------- BEGIN AD INITIALIZATION ----------*/
/*----- PLEASE DO NOT EDIT BELOW THIS LINE -----*/
$mm_id = "NONE";
$mm_ua = "NONE";
@$mm_ip = $_SERVER['REMOTE_ADDR'];

if (isset($_SERVER['HTTP_USER_AGENT'] )){
    $mm_ua = $_SERVER['HTTP_USER_AGENT'];
} 

if (isset($_SERVER['HTTP_X_UP_SUBNO'])) {
          $mm_id = $_SERVER['HTTP_X_UP_SUBNO'];
} elseif (isset($_SERVER['HTTP_XID'])) {
          $mm_id = $_SERVER['HTTP_XID'];
} elseif (isset($_SERVER['HTTP_CLIENTID'])) {
          $mm_id = $_SERVER['HTTP_CLIENTID'];
} else {
          $mm_id = $_SERVER['REMOTE_ADDR'];
}

$mm_url = "http://$mm_adserver/getAd.php5?apid=$mm_placementid&auid="
          . urlencode($mm_id) . "&ua=" . urlencode($mm_ua) . "&uip=" . urlencode($mm_id);
echo $mm_url;
/*------------ END AD INITIALIZATION -----------*/
?>

这基本上会发回一个很大的长 URL,然后我用它来在我的 Actionscript 文件中显示广告,如下所示:

package
{
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import flash.events.LocationChangeEvent;
    import flash.events.UncaughtErrorEvent;
    import flash.geom.Rectangle;
    import flash.media.StageWebView;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.net.URLStream;
    import flash.net.URLVariables;

    public class Main extends Sprite
    {
        public var s:String = new String();
        public var final:String = new String();
        private var _swv:StageWebView;

        public function Main()
        {           
            initRequest();          
        } 

        public function initRequest():void {
            var request:URLRequest = new URLRequest("http://www.xxx.com.au/connect copy.php");

            request.method = URLRequestMethod.POST;

            var recVars:URLVariables = new URLVariables();

            request.data = recVars;     

            var loader:URLLoader = new URLLoader(request);
            loader.addEventListener(Event.COMPLETE, onComplete);
            loader.dataFormat = URLLoaderDataFormat.TEXT;
            loader.load(request);           

            function onComplete(event:Event):void{
                s = event.target.data;
            }           
            AdDisplay();    
        }


        public function AdDisplay():void {

            if (! _swv) {
                _swv = new StageWebView () ;
                _swv.viewPort = new Rectangle(stage.stageWidth/2 - 175,stage.stageHeight/2,500,500);

                _swv.loadURL(s);
                _swv.stage = stage;
            }
        }
        }
    }

现在,通过跟踪语句,我知道返回的 URL 是完整的,可以使用。

目前返回:

http://ads.mp.mydas.mobi/getAd.php5?apid=56926&auid=144.132.17.0&ua=Mozilla%2F5.0+%28Android%3B+U%3B+en-GB%29+AppleWebKit%2F531.9+%28KHTML%2C+like+Gecko%29+AdobeAIR%2F2.6&uip=144.132.17.0

但是当我将它放入要显示的 StageWebView 框中时,它什么也没有显示!我之前已经让它工作了,不知道如何,但它只会显示一个广告,就是这样,它只会在某些时候这样做。我一直在我的浏览器中对其进行测试,得出的结论是它与 &uip= 等有关。因为,如果我用示例 63.145.58.2 中给出的 IP 地址替换该 IP 地址 - 它可以工作我从 groupon 得到一大堆不同的广告。

我不确定是不是因为我在这里使用无线,因此它只是简单地拒绝或发生了什么,或者发生了什么,但如果有人能想到我遗漏的任何东西,一些帮助会很棒,或了解 Millennial Media 没有 100% 的时间展示广告。

哦!最后一件事,我确实尝试制作一个自家广告来填补广告工作时的空白,但这也没有奏效......

谢谢大家!

【问题讨论】:

  • 我在 Millennial 的开发团队工作,并注意到了您的帖子。我们很乐意帮助您解决您看到的错误。从您提供的信息来看,这可能是用户代理问题,但我们一定要看看并为您解决。您可以在此处直接与任何其他详细信息联系:developer.millennialmedia.com/contact.php 谢谢千禧年媒体开发团队
  • 发了一封邮件,祝收到邮件的人好运!

标签: actionscript-3 actionscript ads millennial-media


【解决方案1】:

我很确定最后一个八位字节为 0 的 IP 地址不是很好的地址。据我所知,进出这种地址的路由充其量只是零星的,具体取决于路由本身:)

除此之外,您能否确保(通过跟踪和/或调试)实际的 loadUrl 方法运行良好?我看不到它背后的代码,但您应该检查是否有一些错误事件处理以及未记录或传播的内容。

【讨论】:

  • 嗯,我有跟踪等正在处理它,似乎任何来自澳大利亚的 IP 都不会返回广告,也不会让你在其位置放置自家广告。我已经调试到奶牛回家了,只是没有显示......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多