谷歌分析 - 追踪未知来源

5

我按照Google Analytics SDK for Android documentation的指示创建了一个测试Google Analytics示例应用程序,并在我的代码中使用以下方法启动跟踪:

tracker = GoogleAnalyticsTracker.getInstance();
tracker.trackEvent(
            "Clicks",  // Category
            "Button",  // Action
            "clicked", // Label
            77);  

并且
tracker.trackPageView("/HomeScreen");
tracker.dispatch();

我创建了一个Google Analytics账户,在我的账户中,如果进入Analytics设置选项卡,我会看到状态显示为“追踪未知”。

我尝试点击编辑并点击检查状态,但仍然显示“追踪未安装”。

参考代码:

public class GAnalytics extends Activity {

  GoogleAnalyticsTracker tracker;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    tracker = GoogleAnalyticsTracker.getInstance();
    tracker.start("UA-19487404-1",20, this);

    setContentView(R.layout.main);
    Button createEventButton = (Button)findViewById(R.id.NewEventButton);
    createEventButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        tracker.trackEvent(
            "Clicks",  // Category
            "Button",  // Action
            "clicked", // Label
            77);       // Value
      }
    });

    Button createPageButton = (Button)findViewById(R.id.NewPageButton);
    createPageButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        tracker.trackPageView("/HomeScreen");
      }
    });

    Button quitButton = (Button)findViewById(R.id.QuitButton);
    quitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
    dispatchButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        tracker.dispatch();
      }
    });
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    super.onDestroy();
    tracker.dispatch();
    tracker.stop();
  }
}

请指出我哪里做错了。
3个回答

6
你在调用.getInstance()之后是否已经启动了跟踪器? 像这样:
tracker.start("UA-YOUR-ACCOUNT-HERE", this);

您还需要调用以下代码将数据发送到Google Analytics:
tracker.dispatch();

@cantOna - 在执行trackEvent()之后,派发操作是否必要?根据文档的阅读,除非指定了派发超时时间,否则似乎不是必须的。更正一下,在深入阅读后,如果没有提供派发超时时间,则似乎确实需要进行派发。如果提供了超时时间并且有消息需要发送,则它们将被批量处理。 - KevinDTimm
是的,我也试过手动跟踪。使用了tracker.dispatch。 - Vinayak Bevinakatti
我收到了11-08 20:14:26.813的警告:WARN/googleanalytics(456):org.apache.http.NoHttpResponseException:目标服务器未响应。 - Vinayak Bevinakatti
那个警告看起来非常像是从你的手机网络返回的错误(你的手机是否打开了网络?) - KevinDTimm
是的,没错。只有在你没有设置间隔时间时才需要派发。我不确定你是否已经设置好了。我想我会像KevinDTimm所说的那样等一段时间,因为在分析仪表板中看到数据之前可能会有24小时或更长时间的延迟。 - Eric Nordvik

2

默认情况下,分析数据会滞后一天,你是否修改了报告日期以显示当天的数据?如果是这样,请记住30分钟的延迟并不罕见。


嗨,Kevin,我在我的设备上访问我的应用程序后,需要一天时间才能在我的Google Analytics帐户中显示状态,这是真的吗?为什么我的状态中显示“跟踪未安装”? - AndroidDev
@Anshuman - 以前所有的数据都是落后一天的。我最近没有检查过它。我猜这就是为什么(在第一天)你会看到你看到的消息。之后,一切都应该没问题了。 - KevinDTimm
@Anshuman - 抱歉,我不知道为什么,你需要问谷歌(或搜索)来找出问题所在。 - KevinDTimm
是的,我在谷歌上找到了相关信息。他们说在安装跟踪代码后,需要24小时才能检索数据。这就是它的工作方式吗? - AndroidDev
@Anshuman - 看起来需要将近2天时间才能获取到第一组数据,之后都会相差1天。 - KevinDTimm
显示剩余4条评论

1
请参考下面的代码。
public class TestActivity extends Activity {

   GoogleAnalyticsTracker tracker;


      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        tracker = GoogleAnalyticsTracker.getInstance();

        // Start the tracker in manual dispatch mode...
        tracker.startNewSession("UA-33332745-1", this);

        setContentView(R.layout.main);
        Button createEventButton = (Button)findViewById(R.id.NewEventButton);
        createEventButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) {
            tracker.trackEvent(
                "Clicks",  // Category
                "Button",  // Action
                "clicked", // Label
                77);       // Value
          }
        });

        Button createPageButton = (Button)findViewById(R.id.NewPageButton);
        createPageButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) {       
            // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp"
            tracker.setCustomVar(1, "Medium", "Mobile App");        
            tracker.trackPageView("/testApplicationHomeScreen");
          }
        });

        Button quitButton = (Button)findViewById(R.id.QuitButton);
        quitButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) {
            finish();
          }
        });

        Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
        dispatchButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) {
            tracker.dispatch();
          }
        });
      }


      protected void onDestroy() {
        super.onDestroy();
        // Stop the tracker when it is no longer needed.
        tracker.stopSession();
      }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接