Pomiar kampanii

W tym dokumencie znajdziesz omówienie sposobu pomiaru kampanii i źródeł wizyt za pomocą pakietu SDK Google Analytics w wersji 4 na Androida.

Przegląd

Pomiar kampanii w Google Analytics umożliwia przypisywanie kampanii i źródeł wizyt do działań użytkowników w aplikacji. W przypadku atrybucji kampanii i źródeł wizyt w pakiecie SDK Google Analytics w wersji 4 na Androida dostępne są te opcje:

W sekcjach poniżej opisujemy, kiedy i jak wdrażać poszczególne rodzaje pomiarów kampanii w aplikacji.

Atrybucja kampanii w Google Play

Dzięki pomiarowi kampanii w Google Play możesz sprawdzać, które kampanie i źródła wizyt zachęcają użytkowników do pobrania Twojej aplikacji ze Sklepu Google Play. Zalecamy, aby wszyscy deweloperzy zaimplementowali pomiar kampanii w Sklepie Google Play.

Wdrażanie atrybucji w kampanii w Google Play

Sklep Google Play udostępnia interfejs Admin Referrer API, który umożliwia deweloperom bezpieczne pobieranie treści odesłań z Google Play. Zwraca on wartość parametru strony odsyłającej, który został użyty do przejścia na stronę aplikacji w Sklepie Google Play (jeśli taka strona była dostępna).

Aby przypisać pobranie aplikacji do kampanii, musisz dodać parametr strony odsyłającej do wszystkich linków, które prowadzą do Sklepu Google Play, oraz dodać interfejs Google Play Referrer API do aplikacji, aby otrzymywać i ustawiać informacje o kampanii zawarte w intencji w tagu śledzenia Google Analytics.

1. Usuń odbiornik Google Analytics z pliku AndroidManifest.xml.

Jeśli masz też zaimplementowany odbiornik Menedżera tagów Google, usuń go też z pliku manifestu.

2. Dodaj zależność z biblioteką Zainstaluj stronę odsyłającą API.

Aby dodać zależność, umieść w pliku build.gradle te informacje:

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

3. Wywołaj interfejs Zainstaluj Referrer API w aktywności związanej z uruchamianiem aplikacji.

Użyj interfejsu Zainstaluj stronę odsyłającą, aby pobrać adres URL strony odsyłającej zainstalowanego pakietu aplikacji, a następnie przekazać tę wartość do odbiornika Google Analytics lub Menedżera tagów Google. Przeprowadź wdrożenie podobnej do opisanego poniżej kodu, aby użyć interfejsu Send Referrer API podczas uruchamiania aplikacji.

Jeśli masz wiele punktów wejścia do aplikacji, np. precyzyjne linki do określonych części aplikacji, możesz zaimplementować przewidziane metody w elemencie ActivityLifecycleListener, który jest wyzwalany przez 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. Dodaj parametry kampanii Google Analytics do adresów URL w Google Play

Następnie dodaj parametr referrer do wszystkich adresów URL, które będą prowadzić bezpośrednio do Sklepu Google Play, i ustaw jego wartość na ciąg parametrów kampanii Google Analytics opisujących źródło, jak w tym przykładzie:

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

Aby dowiedzieć się, jak utworzyć ciągi parametrów kampanii, skorzystaj z Kreatora adresów URL w Google Play lub przeczytaj sekcję z informacjami o parametrach kampanii.

Ogólna atrybucja kampanii i źródeł wizyt

Po zainstalowaniu aplikacji może ona zostać uruchomiona przez odesłania z kampanii reklamowych, witryn lub innych aplikacji. W takim przypadku źródła wizyt z witryn odsyłających lub kampanie marketingowe można przypisać do aktywności użytkownika w kolejnych sesjach, ustawiając parametry kampanii w module śledzenia bezpośrednio za pomocą metody 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()
);

Więcej informacji o metodzie getTracker znajdziesz w sekcji Konfiguracja zaawansowana.

Parametry kampanii

Parametry kampanii służą do przekazywania informacji o źródłach wizyt i kampaniach, które zachęcają użytkowników do korzystania z aplikacji.

Tabela poniżej zawiera dostępne parametry kampanii, których można używać w Google Play i do ogólnego pomiaru kampanii:

Parametr Opis Przykłady
utm_source Źródło kampanii; służy do identyfikacji wyszukiwarki, newslettera lub innego źródła utm_source=google
utm_medium Medium kampanii; służy do identyfikacji medium, np. e-maila lub kosztu kliknięcia (cpc) utm_medium=cpc
utm_term Hasło kampanii; używane w płatnych wynikach wyszukiwania do dostarczania słów kluczowych do reklam utm_term=running+shoes
utm_content Treść kampanii; używana do testów A/B oraz reklam kierowanych na treść strony w celu rozróżnienia reklam lub linków kierujących do tego samego adresu URL utm_content=logolink
utm_content=textlink
utm_campaign Nazwa kampanii służy do analizy słów kluczowych w celu identyfikacji określonej promocji produktu lub kampanii strategicznej utm_campaign=spring_sale
gclid Parametr automatycznego tagowania Google Ads; służy do pomiaru reklam. Ta wartość jest generowana dynamicznie i nie należy jej modyfikować.

Kreator adresów URL w Google Play

Użyj tego narzędzia, aby wygenerować adresy URL na potrzeby pomiaru kampanii w Google Play.