【问题标题】:How to track from omniture in iphone app如何在 iphone 应用程序中从omniture 进行跟踪
【发布时间】:2026-02-15 12:40:01
【问题描述】:

在我的 iPhone 应用中,我使用 Omniture 进行跟踪。

我在 AppDelegate 中编写的代码:

 OMAppMeasurement * s = [OMAppMeasurement getInstance];

/* Specify the Report Suite ID(s) to track here */
s.account = @"reportSuiteID";

s.currencyCode = @"USD";
/* Turn on and configure debugging here */

s.debugTracking = YES;

/* WARNING: Changing any of the below variables will cause drastic
 changes
 to how your visitor data is collected. Changes should only be made
 when instructed to do so by your account manager.*/

s.pageName=@"firstViewController";

s.trackingServer = @"trackingserver";
[s track];

我的控制台只显示一行:

App Measurement Library 编译时间 = Jan 25 2011 11:46:14

建议我做错了什么?

我的代码在正确的地方吗?

我在哪里可以看到报告?

【问题讨论】:

    标签: iphone objective-c cocoa-touch iphone-sdk-3.0 adobe-analytics


    【解决方案1】:

    对于我们所有的客户,我们都使用了不同的 sintax 来实现。 我们把 OMAppMeasurement * s; 在 AppDelegate 和 applicationDidFinishLaunching 函数中的所有配置代码中。 这是所有 Omniture 实施文档中的认证实施。

    #import "BasicExampleAppDelegate.h"
    @implementation BasicExampleAppDelegate
    
    OMAppMeasurement * s;
    
    @synthesize window = window_;
    
    - (void)applicationDidFinishLaunching:(UIApplication *)application {
    
        //Instantiate instance
        s = [[OMAppMeasurement alloc] init];
        //Setup application config variables
        s.account = @"RSID";  
    
        s.trackingServer = @"TRACKSERVER";  
    
        s.pageName = @"Main Page";
    
        [s track];
    
      [window_ makeKeyAndVisible];
    }
    
    - (void)dealloc {
      [s release];
      [window_ release];
      [super dealloc];
    }
    
    @end
    

    【讨论】:

    • @Claudio Sermenghi :非常感谢,我想了解更多信息,例如,如果我想跟踪其他页面怎么办?这段代码是否只跟踪“主页”?
    • 这是实例化跟踪对象并将第一个 pageView 发送到 Omniture 服务器的配置代码。为了跟踪所有其他操作,您必须在要跟踪的每个操作中调用 s.pageName = @"New PageName" 和 [s track](例如按钮推送、页面重新加载、应用程序导航)
    • @Claudio Sermenghi:谢谢。我得到了它。我还有一个疑问是,正如您所说,要调用 s.pagename=@"New Page Name" 和 [s track],我是否应该创建对象( OMAppMeasurement *s = [[OMAppMeasurement alloc] init]; )我想跟踪的每个页面?
    • 我认为 s 对象是全局的,因为它是在 AppFinishLaunching 函数之外创建的。无论如何我们都不会创建它。
    • 所以如果我想在其他页面中使用它,我是否必须使用 appDelegateObj.s.page = @"First View" 等等??
    【解决方案2】:

    检查您的项目中是否包含所有必要的文件和框架(“OMAppMeasurement.h”和框架 libOmnitureAppMeasurement-iPhoneDevice.a 和 libOmnitureAppMeasurement-iPhoneSimulator_4_0_GM.a)。

    尝试使用您自己的跟踪数据创建一个 NSDictionary 并使用(void)track:(NSDictionary *)variableOverrides。如果跟踪成功,则没有正号(作为日志语句)。

    可以在 Omniture 网站上查看报告。

    编辑: 初始化代码必须在 UIAppDelegate 中。 [track] 调用必须是您要跟踪某些数据的位置(例如,在某些 UIViewController 的 init 方法中或在按下某个按钮之后)。

    可以在here找到指南

    【讨论】:

    • 感谢您的意见。您能否提供一个简短的教程或参考一些文章,我可以更好地理解 Omniture?代码是否放置在正确的位置?它目前在我的 AppDelegate 下。
    • 再次感谢。所以在有问题的代码中,我必须删除 [s track] 和 s.pagename?在其他页面中我应该使用 AppDelegate 本身的对象还是为不同的页面创建不同的对象?
    • 如果我想从不同的视图跟踪数据(如 s.pageName、s.currencyCode 等),我在 AppDelegate 和其他视图中的代码应该是什么? (比如 firstViewController,secondViewController)。
    【解决方案3】:

    看看这个指南:http://www.2shared.com/document/dfkGsrwu/App_Measurement_for_iPhone_Imp.htm

    帮了我很多,大量的信息:)

    【讨论】: