Код реферала не восстанавливается после установки из игрового магазина

Мне нужно было интегрировать реализацию кода реферала в мое приложение, для которого я создал URL с помощью: https://play.google.com/store/apps/detailsid=MY_PACKAGE_NAME&referrer=USER_REFERRAL_CODE

и создал вещательный приемник для этого

InstallReferrerReceiver.java

public class InstallReferrerReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals("com.android.vending.INSTALL_REFERRER")) {
        String referrer = "";
        Bundle extras = intent.getExtras();
        if (extras != null) {
            referrer = extras.getString("referrer");
        }
        Log.e(TAG, "Referal Code Is: " + referrer);
        AppMethod.setStringPreference(context, AppConstant.PREF_REF_ID, referrer);
       }
    }
 }

Зарегистрируйте получателя в manifest.xml

<receiver
        android:name="com.gum.getumoney.Service.InstallReferrerReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
</receiver>

После установки приложения из магазина Play мой звонок получателю, но я получил нулевое значение в коде реферала

Мне нужно было получить код пользователя, который передает приложение другому пользователю. Но делать это я терплю неудачу. Также я тестирую свой приемник в терминале, используя скрипт оболочки, он прекрасно работает для меня.

Так что, если есть какие-либо проблемы с этим кодом, обратитесь ко мне за этим или предложите мне другой способ сделать это. Спасибо...

1 ответ

Решение

Убедитесь, что URL-адрес магазина воспроизведения, с которым вы тестируете, правильный и имеет ожидаемое значение для вашего теста. Следуйте схеме, определенной как:

https://play.google.com/store/apps/details?id=com.example.application
&referrer=utm_source%3Dgoogle
%26utm_medium%3Dcpc
%26utm_term%3Drunning%252Bshoes
%26utm_content%3Dlogolink
%26utm_campaign%3Dspring_sale

Для получения дополнительной информации ознакомьтесь с документацией по адресу https://developers.google.com/analytics/devguides/collection/android/v4/campaigns.

например сделать реферал:

 public void sendReferral(Context context) {
            Intent sendIntent = new Intent();
            sendIntent.setAction(Intent.ACTION_SEND);
            sendIntent.putExtra(Intent.EXTRA_TEXT, getInvitationMessage()), PreferencesManager.getInstance().getKeyReferrerUrl()));
            sendIntent.putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.invitation_subject));
            sendIntent.setType("text/plain");
            context.startActivity(Intent.createChooser(sendIntent, context.getResources().getText(R.string.invitation_extended_title)));
        }

private String getInvitationMessage(){
  String playStoreLink = "https://play.google.com/store/apps/details?id=app.package.com&referrer=utm_source=";
  return invitationId = playStoreLink + getReferralId();
}

Тогда в вашем приемнике:

public class InstallReferrerReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent == null) {
            return;
        }

        String referrerId = intent.getStringExtra("referrer");

        if (referrerId == null){
            return;
        }
}
Другие вопросы по тегам