Pengukuran Kampanye

Dokumen ini memberikan ringkasan tentang cara mengukur kampanye dan sumber traffic dengan Google Analytics SDK v4 untuk Android.

Ringkasan

Mengukur kampanye di Google Analytics memungkinkan atribusi kampanye dan sumber traffic ke aktivitas pengguna dalam aplikasi Anda. Opsi ini tersedia untuk atribusi kampanye dan sumber traffic di Google Analytics SDK v4 untuk Android:

Bagian berikut akan menjelaskan waktu dan cara menerapkan setiap jenis pengukuran kampanye di aplikasi Anda.

Atribusi Kampanye Google Play

Pengukuran Kampanye Google Play memungkinkan Anda melihat kampanye dan sumber traffic yang mengirim pengguna untuk mendownload aplikasi Anda dari Google Play Store. Sebaiknya semua developer menerapkan Pengukuran Kampanye Google Play Store.

Menerapkan Atribusi Kampanye Google Play

Google Play Store menyediakan Install Referrer API bagi developer untuk mengambil konten rujukan dari Google Play dengan aman. API ini menampilkan nilai parameter perujuk yang digunakan untuk membuka halaman Google Play Store aplikasi Anda, jika ada.

Untuk mengatribusi download aplikasi ke kampanye, Anda harus menambahkan parameter perujuk ke setiap link yang mengarah ke Google Play Store, dan menambahkan Install Referrer API dari Play ke aplikasi Anda untuk menerima dan menetapkan informasi kampanye yang terdapat dalam intent di pelacak Google Analytics Anda.

1. Hapus penerima Google Analytics dari file AndroidManifest.xml.

Jika Anda juga menerapkan penerima Google Tag Manager, hapus juga dari manifes.

2. Tambahkan dependensi pada library Install Referrer API.

Untuk menambahkan dependensi, sertakan baris berikut dalam build.gradle:

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

3. Panggil Install Referrer API di aktivitas peluncuran aplikasi Anda.

Gunakan Install Referrer API untuk mengambil URL perujuk dari paket aplikasi yang diinstal, lalu meneruskan nilai URL ke penerima Google Analytics atau Google Tag Manager. Ikuti implementasi yang serupa dengan kode berikut untuk menggunakan Install Referrer API di aktivitas peluncuran aplikasi Anda.

Jika Anda memiliki beberapa titik entri ke aplikasi, seperti deep link ke bagian tertentu, Anda dapat mengimplementasikan metode yang ditentukan dalam ActivityLifecycleListener yang dipicu oleh ActivityLifecycleCallbacks.

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. Menambahkan Parameter Kampanye Google Analytics ke URL Google Play

Selanjutnya, tambahkan parameter referrer ke setiap URL yang akan ditautkan langsung ke Google Play Store dan tetapkan nilai parameter tersebut ke string parameter kampanye Google Analytics yang menjelaskan sumber, seperti dalam contoh berikut:

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

Untuk mempelajari cara membuat string parameter kampanye, gunakan Pembuat URL Google Play, atau lihat bagian referensi Parameter Kampanye.

Atribusi Kampanye & Sumber Traffic Umum

Setelah diinstal, aplikasi dapat diluncurkan melalui rujukan dari kampanye iklan, situs, atau aplikasi lainnya. Dalam skenario ini, mereferensikan sumber traffic atau kampanye pemasaran dapat diatribusikan ke aktivitas pengguna di sesi berikutnya dengan menetapkan parameter kampanye di pelacak secara langsung menggunakan metode 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()
);

Lihat Konfigurasi Lanjutan untuk detail tentang metode getTracker.

Parameter Kampanye

Parameter kampanye digunakan untuk meneruskan informasi tentang sumber traffic dan kampanye yang mengarahkan pengguna ke aplikasi Anda.

Tabel di bawah berisi parameter kampanye yang tersedia yang dapat digunakan di Google Play atau pengukuran kampanye umum:

Parameter Deskripsi Contoh
utm_source Sumber kampanye; digunakan untuk mengidentifikasi mesin telusur, newsletter, atau sumber lainnya utm_source=google
utm_medium Media kampanye; digunakan untuk mengidentifikasi media seperti email atau biaya per klik (cpc) utm_medium=cpc
utm_term Istilah kampanye; digunakan dengan penelusuran berbayar guna menyediakan kata kunci untuk iklan utm_term=running+shoes
utm_content Konten kampanye; digunakan untuk pengujian A/B dan iklan bertarget konten untuk membedakan iklan atau link yang mengarah ke URL yang sama utm_content=logolink
utm_content=textlink
utm_campaign Nama kampanye; digunakan untuk analisis kata kunci guna mengidentifikasi promosi produk atau kampanye strategis tertentu utm_campaign=spring_sale
gclid Parameter pemberian tag otomatis Google Ads; digunakan untuk mengukur iklan. Nilai ini dihasilkan secara dinamis dan tidak boleh diubah.

Pembuat URL Google Play

Gunakan alat di bawah ini guna membuat URL untuk Pengukuran Kampanye Google Play.