Kampanya Ölçümü

Bu belgede, Android için Google Analytics SDK v4 ile kampanyaların ve trafik kaynaklarının nasıl ölçüleceğine genel bir bakış sunulmaktadır.

Genel bakış

Google Analytics'te kampanyaların ölçülmesi, kampanyaların ve trafik kaynaklarının uygulamanızdaki kullanıcı etkinliğiyle ilişkilendirilebilmesini sağlar. Bu seçenekler, Android için Google Analytics SDK v4'te kampanya ve trafik kaynağı ilişkilendirmesi amacıyla kullanılabilir:

Aşağıdaki bölümlerde, her bir kampanya ölçümünün uygulamanızda ne zaman ve nasıl uygulanacağı açıklanmaktadır.

Google Play Kampanya İlişkilendirmesi

Google Play Kampanya Ölçümü, hangi kampanyaların ve trafik kaynaklarının kullanıcıları Google Play Store'dan uygulamanızı indirmeye yönlendirdiğini görmenize olanak tanır. Tüm geliştiricilerin Google Play Store Kampanya Ölçümünü uygulaması önerilir.

Google Play Kampanya İlişkilendirmesini Uygulama

Google Play Store, geliştiricilerin Google Play'den yönlendirme içeriğini güvenli bir şekilde alabilmeleri için bir Install Referrer API'si sağlar. Bu API, uygulamanızın Google Play Store sayfasına (varsa) erişmek için kullanılan referrer parametresinin değerini döndürür.

Bir uygulama indirme işlemini bir kampanyayla ilişkilendirmek için Google Play Store'u işaret eden tüm bağlantılara bir yönlendiren parametresi eklemeniz ve Google Analytics izleyicinizdeki amaçta yer alan kampanya bilgilerini almak ve ayarlamak için uygulamanıza Play’in Install Referrer API'sini eklemeniz gerekir.

1. Google Analytics alıcısını AndroidManifest.xml dosyanızdan kaldırın.

Google Etiket Yöneticisi alıcısı da uygulanmışsa bunu da manifest dosyanızdan kaldırın.

2. Install Referrer API kitaplığına bir bağımlılık ekleyin.

Bağımlılığı eklemek için build.gradle dosyasına aşağıdakileri ekleyin:

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

3. Uygulamanızın başlatma etkinliğinde Install Referrer API'yi çağırın.

Yüklü uygulama paketinin yönlendiren URL'sini almak ve ardından URL değerini bir Google Analytics veya Google Etiket Yöneticisi alıcısına iletmek için Install Referrer API'sini kullanın. Uygulamanızın başlatma etkinliğinde Install Referrer API'yi kullanmak için aşağıdaki koda benzer bir uygulama izleyin.

Uygulamada, belirli bölümlere derin bağlantılar gibi birden fazla giriş noktanız varsa belirtilen yöntemleri ActivityLifecycleCallbacks tarafından tetiklenen bir ActivityLifecycleListener içine uygulayabilirsiniz.

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'lerine Google Analytics kampanya parametreleri ekleme

Ardından, doğrudan Google Play Store'a bağlanacak tüm URL'lere bir referrer parametresi ekleyin ve bu parametrenin değerini, aşağıdaki örnekte olduğu gibi kaynağı açıklayan Google Analytics kampanya parametreleri dizesine ayarlayın:

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

Kampanya parametresi dizelerini nasıl oluşturacağınızı öğrenmek için Google Play URL Oluşturucu'yu kullanın veya Kampanya Parametreleri referans bölümüne bakın.

Genel Kampanya ve Trafik Kaynağı İlişkilendirmesi

Bir uygulama yüklendikten sonra reklam kampanyalarından, web sitelerinden veya diğer uygulamalardan gelen yönlendirmeler doğrultusunda başlatılabilir. Bu senaryoda, yönlendirme trafik kaynakları veya pazarlama kampanyaları, setCampaignParamsFromUrl yöntemi kullanılarak kampanya parametreleri doğrudan bir izleyicide ayarlanarak sonraki oturumlardaki kullanıcı etkinliğiyle ilişkilendirilebilir.

// 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 yöntemi ile ilgili ayrıntılar için Gelişmiş Yapılandırma bölümüne bakın.

Kampanya Parametreleri

Kampanya parametreleri, kullanıcıları uygulamanıza getiren trafik kaynakları ve kampanyalar hakkında bilgi aktarmak için kullanılır.

Aşağıdaki tabloda, Google Play'de veya genel kampanya ölçümünde kullanılabilecek kampanya parametreleri verilmiştir:

Parametre Açıklama Örnekler
utm_source Kampanya kaynağı; bir arama motorunu, bülteni veya başka bir kaynağı tanımlamak için kullanılır utm_source=google
utm_medium Kampanya aracısı; e-posta veya tıklama başına maliyet (tbm) gibi bir aracı tanımlamak için kullanılır utm_medium=cpc
utm_term Kampanya terimi; reklamlar için anahtar kelimeleri sağlamak üzere ücretli aramayla birlikte kullanılır utm_term=running+shoes
utm_content Kampanya içeriği; A/B testi ve aynı URL'ye yönlendiren reklamları veya bağlantıları ayırt etmek amacıyla içerik hedefli reklamlar için kullanılır utm_content=logolink
utm_content=textlink
utm_campaign Kampanya adı; belirli bir ürün promosyonunu veya stratejik kampanyayı tanımlamak amacıyla anahtar kelime analizinde kullanılır utm_campaign=spring_sale
gclid Google Ads otomatik etiketleme parametresi; reklamları ölçmek için kullanılır. Bu değer dinamik olarak oluşturulur ve hiçbir zaman değiştirilmemelidir.

Google Play URL Oluşturucu

Google Play Kampanya Ölçümü için URL'ler oluşturmak üzere aşağıdaki aracı kullanın.