このドキュメントでは、以前のバージョンの Android SDK について説明します。初めてアナリティクスを使用する場合は、最新の SDK を使用してください。詳細

キャンペーンの測定

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このドキュメントでは、Android 向け Google アナリティクス SDK v4 を使ってキャンペーンとトラフィックの参照元を測定する方法を概説します。

概要

Google アナリティクスでキャンペーンを測定すると、キャンペーンとトラフィックの 参照元をアプリでのユーザー行動に結び付けること(アトリビューション)ができます。Android 向け Google アナリティクス SDK v4 に備わっているキャンペーンとトラフィックの 参照元アトリビューションでは、次のオプションを使用できます。

次のセクションでは、各種のキャンペーンをアプリで測定するタイミングと方法を説明します。

Google Play キャンペーン アトリビューション

Google Play キャンペーンの測定機能を実装すると、Google Play ストアにユーザーを送り込んでアプリのダウンロードに貢献したキャンペーンとトラフィックの参照元を把握できます。Google Play キャンペーンの測定機能の実装を、すべての開発者の方におすすめします。

Google Play キャンペーン アトリビューションの実装

Google Play ストアは、デベロッパーが Google Play からリファラー コンテンツを安全に取得できるように Install Referrer API を提供しています。この API は、アプリの Google Play ストア ページ(指定した場合)へのアクセスに使用された参照 URL パラメータの値を返します。

アプリのダウンロードをキャンペーンに関連付けるには、Google Play ストアを参照するすべてのリンクにリファラー パラメータを追加し、Play の Install Referrer API をアプリに追加して、インテントに含まれるキャンペーン情報を Google アナリティクス トラッカーで受信して設定する必要があります。

1. AndroidManifest.xml ファイルから Google アナリティクスのレシーバーを削除します。

Google タグ マネージャーのレシーバーも実装している場合は、そのマニフェストも削除します。

2. Install Referrer API Library への依存関係を追加する。

依存関係を追加するには、build.gradle に次のコードを追加します。

dependencies {
    ...
    implementation 'com.android.installreferrer:installreferrer:1.1'
}

3. アプリのリリース アクティビティで Install Referrer API を呼び出す。

Install Referrer API を使用してインストール済みのアプリ パッケージの参照 URL を取得し、その URL 値を Google アナリティクスまたは Google タグ マネージャーのレシーバーに渡します。アプリの起動アクティビティで Install Referrer API を使用するには、次のコードに類似した実装を行います。

アプリに複数のエントリ ポイント(特定の部分へのディープリンクなど)がある場合は、ActivityLifecycleCallbacks によってトリガーされる ActivityLifecycleListener に所定のメソッドを実装できます。

package com.example.myapplication;

import static com.android.installreferrer.api.InstallReferrerClient.InstallReferrerResponse;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;

import com.android.installreferrer.api.InstallReferrerClient;
import com.android.installreferrer.api.InstallReferrerStateListener;
import com.android.installreferrer.api.ReferrerDetails;
import com.google.android.gms.analytics.CampaignTrackingReceiver;
import com.google.tagmanager.InstallReferrerReceiver;

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

public class MainActivity extends AppCompatActivity {

    private final Executor backgroundExecutor = Executors.newSingleThreadExecutor();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        checkInstallReferrer();
    }

    // TODO: Change this to use whatever preferences are appropriate. The install referrer should
    // only be sent to the receiver once.
    private final String prefKey = "checkedInstallReferrer";

    void checkInstallReferrer() {
        if (getPreferences(MODE_PRIVATE).getBoolean(prefKey, false)) {
            return;
        }

        InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(this).build();
        backgroundExecutor.execute(() -> getInstallReferrerFromClient(referrerClient));
    }

    void getInstallReferrerFromClient(InstallReferrerClient referrerClient) {

        referrerClient.startConnection(new InstallReferrerStateListener() {
            @Override
            public void onInstallReferrerSetupFinished(int responseCode) {
                switch (responseCode) {
                    case InstallReferrerResponse.OK:
                        ReferrerDetails response = null;
                        try {
                            response = referrerClient.getInstallReferrer();
                        } catch (RemoteException e) {
                            e.printStackTrace();
                            return;
                        }
                        final String referrerUrl = response.getInstallReferrer();


                        // TODO: If you're using GTM, call trackInstallReferrerforGTM instead.
                        trackInstallReferrer(referrerUrl);


                        // Only check this once.
                        getPreferences(MODE_PRIVATE).edit().putBoolean(prefKey, true).commit();

                        // End the connection
                        referrerClient.endConnection();

                        break;
                    case InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                        // API not available on the current Play Store app.
                        break;
                    case InstallReferrerResponse.SERVICE_UNAVAILABLE:
                        // Connection couldn't be established.
                        break;
                }
            }

            @Override
            public void onInstallReferrerServiceDisconnected() {

            }
        });
    }

    // Tracker for Classic GA (call this if you are using Classic GA only)
    private void trackInstallReferrer(final String referrerUrl) {
        new Handler(getMainLooper()).post(new Runnable() {
            @Override
            public void run() {
                CampaignTrackingReceiver receiver = new CampaignTrackingReceiver();
                Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
                intent.putExtra("referrer", referrerUrl);
                receiver.onReceive(getApplicationContext(), intent);
            }
        });
    }

    // Tracker for GTM + Classic GA (call this if you are using GTM + Classic GA only)
    private void trackInstallReferrerforGTM(final String referrerUrl) {
        new Handler(getMainLooper()).post(new Runnable() {
            @Override
            public void run() {
                InstallReferrerReceiver receiver = new InstallReferrerReceiver();
                Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
                intent.putExtra("referrer", referrerUrl);
                receiver.onReceive(getApplicationContext(), intent);
            }
        });
    }

}

4. Google Play キャンペーン パラメータを Google Play の URL に追加する

次に、Google Play ストアに直接リンクするすべての URL に referrer パラメータを追加し、そのパラメータの値を、ソースを表す Google アナリティクス キャンペーン パラメータの文字列に設定します。次に例を示します。

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

キャンペーン パラメータの文字列を作成するには、Google Play URL 生成ツールを使用するか、キャンペーン パラメータのリファレンス セクションで作成方法をご確認ください。

一般的なキャンペーンとトラフィックの参照元のアトリビューション

インストールされたアプリは、広告キャンペーン、ウェブサイト、他のアプリからの参照によって起動される場合があります。このシナリオでは、参照トラフィック ソースまたはマーケティング キャンペーンは、setCampaignParamsFromUrl メソッドを使用してトラッカーにキャンペーン パラメータを直接設定することで、後続のセッションのユーザー アクションに関連付けることができます。

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);

// Set screen name.
t.setScreenName(screenName);

// In this example, campaign information is set using
// a url string with Google Analytics campaign parameters.
// Note: This is for illustrative purposes. In most cases campaign
//       information would come from an incoming Intent.
String campaignData = "http://examplepetstore.com/index.html?" +
    "utm_source=email&utm_medium=email_marketing&utm_campaign=summer" +
    "&utm_content=email_variation_1";

// Campaign data sent with this hit.
t.send(new HitBuilders.ScreenViewBuilder()
    .setCampaignParamsFromUrl(campaignData)
    .build()
);

getTracker メソッドの詳細については、高度な構成をご覧ください。

キャンペーンのパラメータ

キャンペーンのパラメータは、アプリにユーザーを送り込んだトラフィックの参照元と キャンペーンに関する情報を渡すために使用します。

下の表には、Google Play キャンペーンや一般的なキャンペーンの 測定で使用可能なキャンペーン パラメータがまとめられています。

パラメータ 説明
utm_source キャンペーンの参照元: 検索エンジンやニュースレターなどの参照元を特定するために使用します。 utm_source=google
utm_medium キャンペーンのメディア: メールやクリック単価(CPC)などのメディアを特定するために使用します。 utm_medium=cpc
utm_term キャンペーンのキーワード: 広告にキーワードを設定している有料検索で使用します。 utm_term=running+shoes
utm_content キャンペーンのコンテンツ: A/B テストやコンテンツ ターゲット広告で、同じ URL を参照する広告やリンクを区別するために使用します。 utm_content=logolink
utm_content=textlink
utm_campaign キャンペーン名: キーワード分析で、特定の商品プロモーション キャンペーンや戦略的キャンペーンを特定するために使用します。 utm_campaign=spring_sale
gclid Google 広告の自動タグ設定パラメータ: 広告の測定に使用します。この値は動的に生成され、変更することはできません。

Google Play URL 生成ツール

下のツールを使用すると、Google Play キャンペーンの測定に必要な URL を生成できます。