gpt4 book ai didi

Android - 使用 Google Analytics v4 广告系列测量

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:29 24 4
gpt4 key购买 nike

我已根据 this guide 实现了 Google Analytics 广告系列衡量 .然后我想通过关注 this guide 来测试是否一切正常.

我在 AndroidManifest.xml 中添加了这些:

<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/global_tracker" />

<!-- Used for Google Play Store Campaign Measurement-->;
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

并将它们放在 MainActivity.java 上:

public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}

HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker("UA-xxxxxxxx-1")
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
: analytics.newTracker("UA-xxxxxxxx-1");
mTrackers.put(trackerId, t);
} return mTrackers.get(trackerId);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

GoogleAnalytics.getInstance(this).getLogger().setLogLevel(Logger.LogLevel.VERBOSE);

// Get tracker.
Tracker t = getTracker(TrackerName.APP_TRACKER);

// Set screen name.
t.setScreenName("Test Track");

// Send a screen view.
t.send(new HitBuilders.AppViewBuilder().build());
}

当我在命令下运行时:

adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n com.example.gatestapp/com.google.android.gms.analytics.CampaignTrackingReceiver --es  "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign"

我得到了这个回复:

Broadcast completed: result=0

这在我的 Logcat 上:

I/GAV4﹕ Thread[GAThread,5,main]: Campaign found: utm_source=testSource

但我不知道如何将 utm_source 收集到一个字符串中,所以我可以获得“testSource”值。

因此,我尝试使用自定义接收器:

public class CustomReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
handleIntent(context, intent);
Log.d("YES", "IT WORKS!!");
new CampaignTrackingReceiver().onReceive(context, intent);
}

// Handle the intent data
public void handleIntent(Context context, Intent intent) {
String referrer = intent.getStringExtra("referrer");
Log.d("YEES", "IT WORKS!!!");
}
}

将我在 AndroidManifest.xml 上的接收者标签更改为:

<receiver android:name=".app.service.CustomReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

并更改 adb shell 命令:

adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n com.example.gatestapp/.app.service.CustomReceiver --es  "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign"

广播成功,但我的 CustomReceiver 什么也没收到! Logcat 上没有“YES”或“YEES”。我的 Google Analytics 也没有检测到命中。我的方法有什么问题吗?我如何收集推荐人 extras?

编辑:

我已使用 SharedPreferences 成功收集了referrer extras。但是,当我在 Play 商店发布我的应用程序时,引荐来源附加信息 似乎丢失。我确信我做的一切都是正确的,因为我使用的是 URL Builder .此外,我还尝试了一些应用程序演示,例如 this tutorial 中的演示。 ,但它不起作用。我的设备没有收到任何额外信息。

我是不是做错了方法?或者,我错过了什么吗?

最佳答案

首先,你的包名是“com.example.gastestapp”吗?因为那是你在 adb 命令中写的。其次,您是否将“app.service.CustomReceiver”放在 list 中的“CampaignTrackingReceiver”之前?也许 Intent 是由 CampaignTrackingReceiver 而不是您的接收器拦截。

我通过以下方式获得自定义广播中的推荐人:

Bundle extras = intent.getExtras();
String referrerString = extras.getString("referrer");

关于Android - 使用 Google Analytics v4 广告系列测量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27243146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com