gpt4 book ai didi

java - 如何使用 Branch.io 实现推荐系统

转载 作者:行者123 更新时间:2023-12-01 09:33:38 27 4
gpt4 key购买 nike

我已经按照文档进行了操作,我不知道出了什么问题,我真的很感激一些见解。

list :

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

<application
...
android:name="io.branch.referral.BranchApp">
<meta-data android:name="io.branch.sdk.BranchKey" android:value="key_live_123456789asdf" />
<activity
...>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:label="indexed_on_SEO">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="http"
android:host="www.schoolminder.info"
android:pathPrefix="/home"/>
</intent-filter>
<intent-filter>
<data
android:scheme="http"
android:host="open" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>

<receiver
android:name="io.branch.referral.InstallListener"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

</application>

Activity

@Override
protected void onStart() {
super.onStart();
Branch branch = Branch.getInstance();

branch.initSession(new Branch.BranchReferralInitListener(){
@Override
public void onInitFinished(JSONObject referringParams, BranchError error) {
if (error == null) {
Log.i("MyApp", "deep link data: " + referringParams.toString());
} else {
Log.i("MyApp", error.getMessage());
}
}
}, this.getIntent().getData(), this);

String userID = new BigInteger(130, new SecureRandom()).toString(32);
Branch.getInstance().setIdentity(userID);
}

@Override
protected void onNewIntent(Intent intent) {
this.setIntent(intent);
}

发出邀请时的 fragment :

    BranchUniversalObject branchUniversalObject = new BranchUniversalObject()
.setCanonicalIdentifier("item/12345")
.setContentIndexingMode(BranchUniversalObject.CONTENT_INDEX_MODE.PUBLIC)
.addContentMetadata("property1", "blue")
.addContentMetadata("property2", "red");

LinkProperties linkProperties = new LinkProperties()
.setChannel("facebook")
.setFeature("sharing");

branchUniversalObject.generateShortUrl(getActivity(), linkProperties, new Branch.BranchLinkCreateListener() {
@Override
public void onLinkCreate(String url, BranchError error) {
if (error == null) {
link = url;
}
}
});

Branch.getInstance(getActivity().getApplicationContext()).loadRewards(new Branch.BranchReferralStateChangedListener() {
@Override
public void onStateChanged(boolean changed, BranchError error) {
int credits = Branch.getInstance().getCredits();
Branch.getInstance().redeemRewards(credits);
Log.i("MyApp", credits+"");
}
});

我在 Branch Dashboard 设置上处理了每个平台的链接。

发生的情况是,当我将此链接发送给某人时,它会按预期打开 Play 商店,他可以下载它,但我没有获得积分,并且它没有显示任何推荐用户而不是影响者,所以我一定是做错了什么。

enter image description here

最佳答案

如果不提及是否收到错误或无法连接到 Branch(记录标签“branch”)等,很难找出问题所在。

这里有一些实现技巧。首先,您应该在 Application 类中初始化,而不是在 onStart() 中。如果您没有 Application 类,则仅在 onCreate() 中初始化

public class YourApplication extends Application {
@Override
public void onCreate() {

Branch.getAutoInstance(this); // instantiate branch

}
}

根据您所使用的内容,假设您正在使用推荐代码,您需要一个我看到您设置的身份。这是通过引用 Branch 对象来完成的。

Branch branch = Branch.getInstance(context);

// set identity
branch.setIdentity("your user id");

此后,您可以开始检索信息,例如接收推荐代码

branch.getReferralCode(null, defaultRefereeReward, null, Branch.REFERRAL_BUCKET_DEFAULT,
Branch.REFERRAL_CODE_AWARD_UNLIMITED, Branch.REFERRAL_CODE_LOCATION_BOTH,
new Branch.BranchReferralInitListener() {

@Override
public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
if (FrameworkUtils.checkIfNull(branchError)) {
try {
// get and set referral code for current user
String currentCode = jsonObject.getString("referral_code");

// you can store the code in a model class if want
ReferralInfoModel.setCurrentReferralCode(currentCode);

} catch (Exception e) {
e.printStackTrace();
}
} else {
Logger.e(TAG, branchError.getMessage());
}
}
});

您还可以使用其他方法来跟踪历史记录,例如

Branch.getCreditHistory()

我认为事情可能不适合你的最大原因是你确实需要异步发出请求。使用AsynTask。点击您拥有的分支网址。

更多示例请参阅其他帖子:How to generate referral code using Branch.io Metrics?

文档:https://github.com/BranchMetrics/Branch-Android-SDK#register-an-activity-for-direct-deep-linking-optional-but-recommended

您可以直接联系 Branch 以确认您的实现。干杯!

关于java - 如何使用 Branch.io 实现推荐系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39181681/

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