Amplify Analytics のセットアップ
Amplify を使用すると、アプリのアナリティクスデータを収集できます。Analytics を使用するには、AWS Cloud Development Kit (AWS CDK) を使用して Amazon Kinesis または Amazon Pinpoint を有効にする必要があります。Analytics カテゴリは Amazon Cognito ID プールを使用してアプリのユーザーを_識別_します。Cognito により、アプリの認証済みユーザーと未認証ユーザーからデータを受け取ることができます。
前提条件
- Android API レベル 24 (Android 7.0) 以上をターゲットとする Android アプリケーション
Analytics バックエンドのセットアップ
AWS CDK を使用して、Amazon Pinpoint を搭載するアナリティクスリソースを作成します。
import { defineBackend } from "@aws-amplify/backend"import { auth } from "./auth/resource";import { data } from "./data/resource";import { Policy, PolicyStatement } from "aws-cdk-lib/aws-iam";import { CfnApp } from "aws-cdk-lib/aws-pinpoint";import { Stack } from "aws-cdk-lib/core";
const backend = defineBackend({ auth, data, // additional resources});
const analyticsStack = backend.createStack("analytics-stack");
// create a Pinpoint appconst pinpoint = new CfnApp(analyticsStack, "Pinpoint", { name: "myPinpointApp",});
// create an IAM policy to allow interacting with Pinpointconst pinpointPolicy = new Policy(analyticsStack, "PinpointPolicy", { policyName: "PinpointPolicy", statements: [ new PolicyStatement({ actions: ["mobiletargeting:UpdateEndpoint", "mobiletargeting:PutEvents"], resources: [pinpoint.attrArn + "/*"], }), ],});
// apply the policy to the authenticated and unauthenticated rolesbackend.auth.resources.authenticatedUserIamRole.attachInlinePolicy(pinpointPolicy);backend.auth.resources.unauthenticatedUserIamRole.attachInlinePolicy(pinpointPolicy);
// patch the custom Pinpoint resource to the expected output configurationbackend.addOutput({ analytics: { amazon_pinpoint: { app_id: pinpoint.ref, aws_region: Stack.of(pinpoint).region, } },});Amplify ライブラリのインストール
Gradle Scripts を展開し、build.gradle.kts (Module :app) を開きます。クイックスタートガイドの手順に従うことで、既に Amplify を設定しています。
これらのライブラリを依存関係ブロックに追加して、Analytics を追加します:
android { compileOptions { // Support for modern Java features isCoreLibraryDesugaringEnabled = true }}
dependencies { // Amplify API dependencies implementation("com.amplifyframework:aws-analytics-pinpoint:ANDROID_VERSION") implementation("com.amplifyframework:aws-auth-cognito:ANDROID_VERSION") // ... other dependencies coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:ANDROID_DESUGAR_VERSION")}Sync Now をクリックします。
Amplify Analytics の初期化
設定ファイルをインポートしてアプリに読み込みます。Amplify 設定ステップをアプリのルートエントリポイントに追加することをお勧めします。
Amplify Auth および Analytics カテゴリを初期化するには、各カテゴリに対して Amplify.addPlugin() メソッドを呼び出します。初期化を完了するには、Amplify.configure() を呼び出します。
アプリケーションクラスの onCreate() メソッドに次のコードを追加します:
import android.util.Log;import com.amplifyframework.AmplifyException;import com.amplifyframework.analytics.pinpoint.AWSPinpointAnalyticsPlugin;import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin;import com.amplifyframework.core.Amplify;import com.amplifyframework.core.configuration.AmplifyOutputs;Amplify.addPlugin(new AWSCognitoAuthPlugin());Amplify.addPlugin(new AWSPinpointAnalyticsPlugin());クラスは次のようになります:
public class MyAmplifyApp extends Application { @Override public void onCreate() { super.onCreate();
try { // Add these lines to add the AWSCognitoAuthPlugin and AWSPinpointAnalyticsPlugin plugins Amplify.addPlugin(new AWSCognitoAuthPlugin()); Amplify.addPlugin(new AWSPinpointAnalyticsPlugin()); Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());
Log.i("MyAmplifyApp", "Initialized Amplify"); } catch (AmplifyException error) { Log.e("MyAmplifyApp", "Could not initialize Amplify", error); } }}import android.util.Logimport com.amplifyframework.AmplifyExceptionimport com.amplifyframework.analytics.pinpoint.AWSPinpointAnalyticsPluginimport com.amplifyframework.auth.cognito.AWSCognitoAuthPluginimport com.amplifyframework.core.Amplifyimport com.amplifyframework.core.configuration.AmplifyOutputsAmplify.addPlugin(AWSCognitoAuthPlugin())Amplify.addPlugin(AWSPinpointAnalyticsPlugin())クラスは次のようになります:
class MyAmplifyApp : Application() { override fun onCreate() { super.onCreate()
try { // Add these lines to add the AWSCognitoAuthPlugin and AWSPinpointAnalyticsPlugin plugins Amplify.addPlugin(AWSCognitoAuthPlugin()) Amplify.addPlugin(AWSPinpointAnalyticsPlugin()) Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), applicationContext)
Log.i("MyAmplifyApp", "Initialized Amplify") } catch (error: AmplifyException) { Log.e("MyAmplifyApp", "Could not initialize Amplify", error) } }}import android.util.Log;import com.amplifyframework.AmplifyException;import com.amplifyframework.analytics.pinpoint.AWSPinpointAnalyticsPlugin;import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin;import com.amplifyframework.core.configuration.AmplifyOutputs;import com.amplifyframework.rx.RxAmplify;RxAmplify.addPlugin(new AWSCognitoAuthPlugin());RxAmplify.addPlugin(new AWSPinpointAnalyticsPlugin());クラスは次のようになります:
public class MyAmplifyApp extends Application { @Override public void onCreate() { super.onCreate();
try { // Add these lines to add the AWSCognitoAuthPlugin and AWSPinpointAnalyticsPlugin plugins RxAmplify.addPlugin(new AWSCognitoAuthPlugin()); RxAmplify.addPlugin(new AWSPinpointAnalyticsPlugin()); RxAmplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());
Log.i("MyAmplifyApp", "Initialized Amplify"); } catch (AmplifyException error) { Log.e("MyAmplifyApp", "Could not initialize Amplify", error); } }}次のステップ:
おめでとうございます! これで Analytics バックエンドがプロビジョニングされ、Analytics ライブラリがインストールされました。次のリンクをチェックして、Amplify Analytics のユースケースを確認してください: