Ich habe die Dokumente befolgt, ich weiß nicht, was los ist, ich würde wirklich einige Einblicke zu schätzen wissen.So implementieren Sie das Referral-System mit Branch.io
Manifest:
<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>
Die Aktivität
@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);
}
Das Fragment, wenn die Einladung zusammen:
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+"");
}
});
Ich habe die Links für jede Plattform in den Branch Dashboard-Einstellungen behandelt.
Was passiert ist, wenn ich diesen Link an jemanden sende, öffnet es den Play Store wie erwartet und er kann es herunterladen, aber ich bekomme nicht die Credits, und es zeigt keine empfohlenen Benutzer nicht Influencers so Ich muss etwas falsch machen.
Alex von Branch hier: @portfolioBuilder, danke für die tolle Antwort! Dieses Verhalten könnte auch durch unsere Anti-Fraud-Systeme um Empfehlungen verursacht werden. Wir haben einen [Debugging-Modus] (https://dev.branch.io/getting-started/integration-testing/guide/ios/#use-debug-mode-to-simulate-fresh-installs), um dabei zu helfen. Diese Probleme lassen sich nur schwer entwirren. Am einfachsten ist es, wenn Sie ein [integrations ticket] (https://support.branch.io/support/tickets/new) einreichen, damit unser Team auch auf das Backend zugreifen kann. –