проверить, успешно ли интегрирован Adobe Target в android - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь интегрировать Adobe Targe с моим приложением. Я следовал документации для его интеграции, но не получал никаких журналов для того же. Однако для iOS я получаю некоторые журналы, в которых есть запрос post, но он также возвращает ноль для цели.

Это добавляется в app / build.gradle

implementation 'com.adobe.mobile:adobeMobileLibrary:4.13.7'
implementation 'com.adobe.marketing.mobile:sdk-core:1.+'
implementation 'com.adobe.marketing.mobile:analytics:1.+'
implementation 'com.adobe.marketing.mobile:audience:1.+'
implementation 'com.adobe.marketing.mobile:campaign:1.+'
implementation 'com.adobe.marketing.mobile:campaignclassic:1.+'
implementation 'com.adobe.marketing.mobile:target:1.+'

В MainActivity. java

import android.os.Bundle;

import com.facebook.react.ReactActivity;
import org.devio.rn.splashscreen.SplashScreen;
import android.os.StrictMode;
import com.reactlibrary.RNMailLauncherPackage;
import com.calendarevents.CalendarEventsPackage;
**import com.adobe.mobile.*;**

public class MainActivity extends ReactActivity {
    private static final boolean DEBUG = true;


    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        CalendarEventsPackage.onRequestPermissionsResult(requestCode, permissions, grantResults);
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        SplashScreen.show(this);  // here
        super.onCreate(savedInstanceState);

        /*
         * Adobe Tracking - Analytics
         *
         * set the context for the SDK
         * this is necessary for access to sharedPreferences and file i/o
         */
        // setContentView(R.layout.main);
        **Config.setContext(this.getApplicationContext());**

        /*
         * Adobe Tracking - Config
         *
         * turn on debug logging for the ADBMobile SDK
         */
        **Config.setDebugLogging(true);**
    }
}

AdobeTargetModule. java

import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.adobe.mobile.*;

import java.util.Map;
import java.util.HashMap;

public class AdobeTargetModule extends ReactContextBaseJavaModule {
  private static ReactApplicationContext reactContext;

  AdobeTargetModule(ReactApplicationContext context) {
    super(context);
    reactContext = context;
  }

//for adobe target
  @ReactMethod
    public void sendSuccessMetric( String orderId, String orderTotal, String productPurchasedId, String numOfNights, String avgRate, String desc){
      System.out.println("inside the adobe target function");
      System.out.println("values are: orderId: "+orderId + "  orderTotal: "+orderTotal +"  productPurchaseId: "+productPurchasedId+"  numOfNights: "+numOfNights+"   avgRate: "+avgRate+"   roomDesc: "+desc);

      Map <String, Object> customParameters = new HashMap <String, Object>(); 

      customParameters.put(numOfNights, "entity.noofnights"); 
      customParameters.put(avgRate, "entity.averagerate"); 
      customParameters.put(desc, "entity.roomtype");
      customParameters.put(numOfNights, "profile.noofnights"); 
      customParameters.put(avgRate, "profile.averagerate"); 
      customParameters.put(desc, "profile.roomtype");

      System.out.println("custom parameters map: "+ customParameters);

     TargetLocationRequest orderConfirm = Target.createOrderConfirmRequest("orderConfirmPage1", orderId, orderTotal, productPurchasedId , customParameters);

     System.out.println("after the target hit.... "+ orderConfirm);

      Target.loadRequest(orderConfirm, new Target.TargetCallback<String>() {
        @Override
        public void call(String s) {
          System.out.println("inside the call function: "+s);
        }
      });
      //analytics added

      HashMap <String, Object> analyticsParams = new HashMap <String, Object>();
      analyticsParams.put("&&tnt","115110:0:0");

      System.out.println("custom parameters map for analytics: "+ analyticsParams);  
      Analytics.trackAction("Booking Confirmation", analyticsParams);  //this works fine

    }

   @Override
    public String getName() {
      return "AdobeTarget";
  }

}

В logcat я вижу следующую ошибку: android_Error_logs

Также, в случае iOS, там написано:

Цель - Успешно возвращено 1 целевое местоположение Цель - Возврат контента для 'orderConfirmPage': '(null)' Здесь я знаю, цель не был настроен на стороне сервера. Но для android я не в курсе.

Это правильно? Или я что-то упустил.

...