Kampanya Ölçümü

Bu dokümanda, 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ı ölçmek, kampanyaların ve trafik kaynaklarının uygulamanızdaki kullanıcı etkinliğiyle ilişkilendirilmesini sağlar. Bu seçenekler, Android için Google Analytics SDK v4'te kampanya ve trafik kaynağı ilişkilendirmesi için kullanılabilir:

Aşağıdaki bölümlerde, her bir kampanya ölçüm türünün ne zaman ve nasıl uygulamanıza 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 gönderdiğini görmenize olanak tanır. Tüm geliştiricilerin Google Play Store Kampanya Ölçümü'nü uygulamaları ö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 Install Referrer API'sini sağlar. Bu API, mevcutsa uygulamanızın Google Play Store sayfasına ulaşmak için kullanılan yönlendiren parametresinin değerini döndürür.

Bir uygulamanın indirilmesini bir kampanyayla ilişkilendirmek için Google Play Store'a yönlendiren bağlantılara bir yönlendiren parametresi eklemeniz, ayrıca Google Play izleme aracındaki niyette bulunan kampanya bilgilerini almak ve ayarlamak için Play'in Yükleme Yönlendiren API'sını uygulamanıza eklemeniz gerekir.

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

Ayrıca, Google Etiket Yöneticisi alıcısını da uyguladıysanız bunu manifest dosyanızdan de kaldırın.

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

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

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

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

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

Uygulamaya birden fazla giriş noktanız varsa (ör. belirli bölümlere derin bağlantılar) ActivityLifecycleCallbacks tarafından tetiklenen ActivityLifecycleListener yönteminde belirtilen yöntemleri 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 Analytics kampanya parametrelerini Google Play URL'lerine 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 bir Google Analytics kampanya parametresi 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ı, web siteleri veya diğer uygulamalardan yönlendirmeler tarafından başlatılabilir. Bu senaryoda, yönlendiren trafik kaynakları veya pazarlama kampanyaları, setCampaignParamsFromUrl yöntemini kullanarak doğrudan bir izleyicide kampanya parametreleri ayarlanarak sonraki oturumlarda 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öntemiyle ilgili ayrıntılı bilgi için Gelişmiş Yapılandırma konusuna bakın.

Kampanya Parametreleri

Kampanya parametreleri, kullanıcıları uygulamanıza getiren trafik kaynakları ve kampanyalarla ilgili bilgileri 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ğı; arama motorunu, bülten veya diğer kaynakları 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ıyı tanımlamak için kullanılır utm_medium=cpc
utm_term Kampanya terimi; reklamlar için anahtar kelimeleri sağlamak üzere ücretli arama ile kullanılır utm_term=running+shoes
utm_content Kampanya içeriği; aynı URL'ye yönlendiren reklamları veya bağlantıları ayırt etmek için A/B testi ve 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 için 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.