このドキュメントでは、Android 向け Google アナリティクス SDK v4 を使ってキャンペーンとトラフィックの参照元を測定する方法を概説します。
概要
Google アナリティクスでキャンペーンを測定すると、キャンペーンとトラフィックの 参照元をアプリでのユーザー行動に結び付けること(アトリビューション)ができます。Android 向け Google アナリティクス SDK v4 に備わっているキャンペーンとトラフィックの 参照元アトリビューションでは、次のオプションを使用できます。
- Google Play キャンペーンのアトリビューション - Google Play ストアにユーザーを送り込んでアプリのダウンロードに貢献した キャンペーン、ウェブサイト、アプリを把握できます。
- 一般的なキャンペーンとトラフィックの参照元のアトリビューション - インストールされたアプリの起動に貢献したキャンペーンや参照 URL を把握できます。
次のセクションでは、各種のキャンペーンをアプリで測定するタイミングと方法を説明します。
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 ライブラリへの依存関係を追加する。
依存関係を追加するには、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 の URL に Google アナリティクスのキャンペーン パラメータを追加する
次に、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 を生成できます。