Browse Source

[New]接入中台 & 字节融合归因sdk

zhipeng 8 months ago
parent
commit
736c3f597a

+ 8 - 1
app/build.gradle

@@ -75,6 +75,7 @@ android {
             buildConfigField "String", "BUGLY_APP_ID", "\"$bugly_app_id\""
             buildConfigField "String", "UMENG_APP_KEY", "\"$umeng_app_key\""
             buildConfigField "String", "QIYU_APP_KEY", "\"$qiyu_app_key\""
+            buildConfigField "String", "ATMOB_CENTRAL_KEY", "\"$atmob_central_key\""
         }
 
         debug {
@@ -94,6 +95,7 @@ android {
             buildConfigField "String", "BUGLY_APP_ID", "\"$bugly_app_id\""
             buildConfigField "String", "UMENG_APP_KEY", "\"$umeng_app_key\""
             buildConfigField "String", "QIYU_APP_KEY", "\"$qiyu_app_key\""
+            buildConfigField "String", "ATMOB_CENTRAL_KEY", "\"$atmob_central_key\""
         }
     }
     compileOptions {
@@ -150,7 +152,7 @@ dependencies {
     //Atmob SDK
     implementation 'extra.common:base:1.0.0-SNAPSHOT'
     implementation "extra.pack:channel:1.1.0-SNAPSHOT"
-    implementation "extra.common:core:2.0.3-SNAPSHOT" //base utils
+    implementation "extra.common:core:2.0.4-SNAPSHOT" //base utils
     implementation "extra.common:network:1.1.0-SNAPSHOT"
     implementation "extra.common:rxjava:1.1.0-SNAPSHOT"
     implementation "extra.common:user:1.0.1-SNAPSHOT" //get user data(includes device info)
@@ -159,6 +161,11 @@ dependencies {
     }
     api 'com.alipay.sdk:alipaysdk-android:15.8.16@aar'
 
+    //中台sdk
+    implementation "atmob.central:core:1.0.6-SNAPSHOT"
+    //字节 融合归因
+    implementation 'atmob.sdk:app-convert:2.0.0-SNAPSHOT'
+
     //oaid
     implementation "extra.common:oaid:1.2.0-SNAPSHOT"
 

+ 22 - 0
app/src/main/java/com/datarecovery/master/App.java

@@ -3,10 +3,13 @@ package com.datarecovery.master;
 import android.content.Context;
 
 import com.atmob.app.lib.base.BaseApplication;
+import com.atmob.channelreader.ChannelReader;
 import com.atmob.common.runtime.ProcessUtil;
+import com.atmob.sdk.appconvert.AppConvert;
 import com.atmob.user.AtmobUser;
 import com.datarecovery.master.data.consts.Constants;
 import com.datarecovery.master.sdk.bugly.BuglyHelper;
+import com.datarecovery.master.sdk.central.AtmobCentralHelper;
 import com.datarecovery.master.sdk.gravity.GravityHelper;
 import com.datarecovery.master.sdk.qiyu.QiYuHelper;
 import com.datarecovery.master.sdk.umeng.UmengHelper;
@@ -91,6 +94,8 @@ public class App extends BaseApplication {
         if (isMainProcess) {
             initBugly();
             initUmeng();
+            initCentral();
+            initAppConvert();
         }
     }
 
@@ -102,6 +107,18 @@ public class App extends BaseApplication {
         QiYuHelper.init(this);
     }
 
+    private void initCentral() {
+        ChannelReader.default4Test(
+                Constants.App_DefaultChannel,
+                Constants.App_DefaultAppId,
+                Constants.App_DefaultTgPlatformId
+        );
+        String channel = ChannelReader.getChannel(this);
+        int appId = ChannelReader.getAppId(this);
+        int tgPlatformId = ChannelReader.getTgPlatformId(this);
+        AtmobCentralHelper.init(this, channel, appId, tgPlatformId);
+    }
+
     private void initUmeng() {
         UmengHelper.init(this);
     }
@@ -110,8 +127,13 @@ public class App extends BaseApplication {
         BuglyHelper.init(this);
     }
 
+    private void initAppConvert() {
+        AppConvert.init();
+    }
+
     public void firstPrivacyRelated() {
         AtmobUser.recordPolicyGrant(true);
+        AtmobCentralHelper.onPolicyGranted(true);
         UmengHelper.initAfterGrantedAgreement(getApplicationContext());
         UmengHelper.submitPolicyGrantResult(getApplicationContext(), true);
         BuglyHelper.initAfterGrantedAgreement();

+ 4 - 0
app/src/main/java/com/datarecovery/master/handler/EventHelper.java

@@ -3,7 +3,9 @@ package com.datarecovery.master.handler;
 import android.os.Handler;
 import android.os.Looper;
 
+import com.atmob.analytics.AtmobAnalytics;
 import com.datarecovery.master.data.consts.Constants;
+import com.datarecovery.master.sdk.central.AtmobCentralHelper;
 import com.datarecovery.master.sdk.gravity.GravityHelper;
 import com.datarecovery.master.utils.ToastUtil;
 
@@ -45,6 +47,7 @@ public class EventHelper {
             });
         }
         GravityHelper.report(eventId, params);
+        AtmobCentralHelper.trackEvent(eventId, params);
     }
 
     public static void reportPay(int priceFen, String orderId, int payWay, String itemName) {
@@ -65,5 +68,6 @@ public class EventHelper {
                     ToastUtil.LENGTH_SHORT));
         }
         GravityHelper.reportPay(priceFen, orderId, itemName, payWayName);
+        AtmobCentralHelper.trackPay(itemName, orderId, AtmobAnalytics.CURRENCY_CNY, priceFen, payWay);
     }
 }

+ 52 - 0
app/src/main/java/com/datarecovery/master/sdk/central/AtmobCentralHelper.java

@@ -0,0 +1,52 @@
+package com.datarecovery.master.sdk.central;
+
+import android.content.Context;
+
+import com.atmob.analytics.AtmobAnalytics;
+import com.atmob.central.AtmobCentral;
+import com.atmob.central.AtmobCentralConfig;
+import com.atmob.common.thread.ThreadPoolUtil;
+import com.atmob.compliance.AtmobCompliance;
+import com.datarecovery.master.BuildConfig;
+import com.datarecovery.master.data.consts.Constants;
+
+import java.util.Map;
+
+public class AtmobCentralHelper {
+    public static void init(Context context, String channel, int appId, int tgPlatformId) {
+        AtmobCentral.init(context, new AtmobCentralConfig.Builder()
+                .appKey(BuildConfig.ATMOB_CENTRAL_KEY)
+                .debug(BuildConfig.DEBUG)
+                .centralServer(Constants.Atmob_Server_Base_URL)
+                .channel(channel)
+                .appId(appId)
+                .tgPlatform(tgPlatformId)
+                .complianceStrategy(AtmobCompliance.Strategy.CHINA)
+                .executorService(ThreadPoolUtil.getInstance())
+                .build());
+    }
+
+    public static void onPolicyGranted(boolean grand) {
+        AtmobCentral.onPolicyGrant(grand);
+    }
+
+    public static void trackEvent(String event, Map<String, Object> params) {
+        AtmobAnalytics.getInstance().trackEvent(event, params);
+    }
+
+    public static void trackPay(String itemName, String orderNo, String currency, int priceCent, int paymentWay) {
+        AtmobAnalytics.getInstance().trackPay(itemName, orderNo, currency, priceCent, getPaymentWay(paymentWay));
+    }
+
+    private static String getPaymentWay(int paymentWay) {
+        switch (paymentWay) {
+            case Constants.PAYMENT_WAY_WECHAT:
+            case Constants.PAYMENT_WAY_WECHAT_SCAN:
+                return AtmobAnalytics.PAYMENT_WECHAT;
+            case Constants.PAYMENT_WAY_ALIPAY:
+            case Constants.PAYMENT_WAY_ALIPAY_SCAN:
+                return AtmobAnalytics.PAYMENT_ALIPAY;
+        }
+        return "";
+    }
+}

+ 2 - 1
gradle.properties

@@ -30,4 +30,5 @@ wechat_kf_id=kfcb5b96d3fb25aca03
 gravity_access_token=q5ljPyuEtIpixdlrwSf1orFqeuAGsbVi
 bugly_app_id=0a6e00ae03
 umeng_app_key=6597816395b14f599d10cd58
-qiyu_app_key=09ea6e0a6d006e25462906fbf6758c99
+qiyu_app_key=09ea6e0a6d006e25462906fbf6758c99
+atmob_central_key=9011cf0d82454014b2fc4009afbba6fb

+ 3 - 6
settings.gradle

@@ -27,12 +27,9 @@ dependencyResolutionManagement {
             allowInsecureProtocol = true
             url "$atmob_maven_url/repository/android-group/"
         }
-        maven {
-            url 'https://nexus.gravity-engine.com/repository/maven-releases/'
-        }
-        maven {
-            url 'https://nexus.gravity-engine.com/repository/maven-snapshots/'
-        }
+        maven { url 'https://nexus.gravity-engine.com/repository/maven-releases/' }
+        maven { url 'https://nexus.gravity-engine.com/repository/maven-snapshots/' }
+        maven { url 'https://artifact.bytedance.com/repository/Volcengine/' }
     }
 }
 rootProject.name = "DataRecover"