アンドロイドプレイストアでアプリを最後に更新してから別の問題に直面しています。最近、APKのサイズが急増しました。検査の結果、libsプラットフォームは現在、新しいバージョンのCPUアーキテクチャをサポートしていることが判明しました(サイズの40%以上の増加)。この時点で、APKをCPU単位で分割することにしました(グラデル経由)。apkの分割以来、Playstore経由でキャンペーントラッキングが動作しない
これを公開した後、私たちはキャンペーントラッキングの問題に直面しました。私たちのキャンペーン追跡番号は劇的に減少しました。何かが間違っていると思ったので、分析の統合を再訪し、SDKと対応する設定ファイルを最新のライブラリ(play-services-9.0.0)にアップグレードしました。また、キャンペーンモニタリングテストを実施しました。しかし、キャンペーントラッキングはまだ期待通りに機能していません(80%以上の帰属)。
誰でもこの設定で何が不足していると指摘できますか?ありがとうございます。
参考までに、build.gradle、AndroidManifest.xml、キャンペーンレシーバファイルを投稿しています。
build.gradle(特定できる情報は削除)
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:3.0.0'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
flatDir {
dirs 'libs'
}
}
android {
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
applicationId "com.example.app"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0.0"
renderscriptTargetApi 19
renderscriptSupportModeEnabled true
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
output.outputFile.name.replace(".apk", "-${variant.versionCode}-${variant.versionName}.apk"))
}
}
splits {
abi {
enable true
reset()
include 'arm64-v8a', 'x86', 'armeabi', 'armeabi-v7a', 'mips'/*, 'x86_64', 'mips64'*/
universalApk true
}
}
sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/fonts'] } }
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'com.google.android.gms:play-services-base:9.0.0'
compile 'com.google.android.gms:play-services-plus:9.0.0'
compile 'com.google.android.gms:play-services-analytics:9.0.0'
compile 'com.google.android.gms:play-services-appindexing:9.0.0'
compile 'com.google.android.gms:play-services-gcm:9.0.0'
compile 'com.google.android.gms:play-services-location:9.0.0'
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true;
}
compile('com.twitter.sdk.android:tweet-composer:[email protected]') {
transitive = true;
}
}
のAndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app" >
<!--android:installLocation="auto" for adoptable storage-->
<uses-permission .... />
<application
android:name="com.example.app.toolbelt.ComBank"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:screenOrientation="portrait"
android:theme="@style/Theme.Light" >
...
<receiver
android:name="com.example.app.services.campaign.CampaignReceiver"
android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
<!-- Optionally, register AnalyticsReceiver and AnalyticsService to support background
dispatching on non-Google Play devices -->
<receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false"/>
</application>
</manifest>
CampaignReceiver.java
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.example.app.toolbelt.ComBank;
import com.example.app.toolbelt.Tracking;
import com.google.android.gms.analytics.CampaignTrackingReceiver;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
/**
* Created by rokha on 1/8/15.
*/
public class CampaignReceiver extends CampaignTrackingReceiver {
static final String TAG = CampaignReceiver.class.getSimpleName();
Tracking tracking;
Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
String rawReferrer = intent.getStringExtra("referrer");
Log.d(TAG, "received broadcast");
if (rawReferrer != null) {
Log.d(TAG, "raw: " + rawReferrer);
String referrer = "";
try {
referrer = URLDecoder.decode(rawReferrer, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace(); // This should not happen.
}
Log.d(TAG, "decoded: " + referrer);
if (ComBank.sharedPref.getString(CampaignHelper.REFERRED, "").length() == 0) {
ComBank.editor.putString(CampaignHelper.REFERRER, referrer).commit();
}
} else {
Log.e(TAG, "referrer is null");
}
super.onReceive(context, intent);
}
}
[リンク1](https://play.google.com/store/apps/details?id=com.example.app&referrer=utm_source%3Doffline%26utm_medium%3Dbanner%26utm_campaign%3DKT) [リンク2](HTTPS ://play.google.com/store/apps/details?id = com.example.app&referrer = utm_source%3DKA%26utm_medium%3Dbanner%26utm_campaign%3Dslogan) – user1802486
詳細すべてのAPKはバージョンコードが異なるのであなたは異なるGAキーを取る必要がありますので、最高のものだけを取って、apkによるgradle経由で送ってください。 5つのapkアプリケーションを作成しましたか? –
@zahid:はい、私は5つのapkを作成しました(5回前にgradleを実行しています...より良い自動化のため、上記の方法も展開しました) 私はアンドロイドの優先順位を探していました。私はAPKに複数のソリューションを導入したので、まだカウンターテストを実行する必要があります。私はより良い理解を持っていれば私の結果をここに掲載するでしょう。 – user1802486