Измерение кампании

В этом документе представлен обзор того, как измерять кампании и источники трафика с помощью Google Analytics SDK v4 для Android.

Обзор

Измерение кампаний в Google Analytics позволяет соотнести кампании и источники трафика с активностью пользователей в вашем приложении. Эти параметры доступны для атрибуции кампании и источника трафика в Google Analytics SDK v4 для Android:

В следующих разделах будет описано, когда и как реализовать каждый тип измерения кампании в вашем приложении.

Атрибуция кампании Google Play

Google Play Campaign Measurement позволяет вам увидеть, какие кампании и источники трафика побуждают пользователей загружать ваше приложение из Google Play Store. Всем разработчикам рекомендуется реализовать измерение кампаний в Google Play Store.

Внедрите атрибуцию кампании Google Play

Магазин Google Play предоставляет разработчикам API Install Referrer для безопасного получения реферального контента из Google Play. Этот API возвращает значение параметра реферера, используемого для доступа к странице вашего приложения в Google Play Store, если таковая имеется.

Чтобы связать загрузку приложения с кампанией, вы должны добавить параметр реферера ко всем ссылкам, указывающим на Google Play Store, а также добавить API Install Referrer API Play в свое приложение, чтобы получать и настраивать информацию о кампании, содержащуюся в намерении, на вашем трекере Google Analytics. .

1. Удалите приемник Google Analytics из файла AndroidManifest.xml.

Если у вас также реализован приемник Диспетчера тегов Google , удалите и его из манифеста.

2. Добавьте зависимость от библиотеки API Install Referrer.

Чтобы добавить зависимость, включите в build.gradle следующее:

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

3. Вызовите API Install Referrer в процессе запуска вашего приложения.

Используйте API установки реферера, чтобы получить URL-адрес реферера установленного пакета приложения, а затем передайте значение URL-адреса получателю Google Analytics или Диспетчера тегов Google. Следуйте реализации, аналогичной следующему коду, чтобы использовать API Install Referrer в активности запуска вашего приложения.

Если у вас есть несколько точек входа в приложение, например глубокие ссылки на определенные части, вы можете реализовать предписанные методы в ActivityLifecycleListener , который запускается 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. Добавьте параметры кампании Google Analytics в URL-адреса Google Play.

Затем добавьте параметр referrer ко всем URL-адресам, которые будут ссылаться непосредственно на Google Play Store, и установите значение этого параметра в строку параметров кампании Google Analytics, описывающих источник, как в этом примере:

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

Чтобы узнать, как создавать строки параметров кампании, воспользуйтесь Конструктором URL-адресов Google Play или обратитесь к справочному разделу «Параметры кампании» .

Общая атрибуция кампании и источника трафика

После установки приложения оно может быть запущено по ссылкам из рекламных кампаний, веб-сайтов или других приложений. В этом сценарии ссылающиеся источники трафика или маркетинговые кампании могут быть связаны с активностью пользователя в последующих сеансах путем установки параметров кампании непосредственно на трекере с помощью метода 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 Рекламы ; используется для измерения рекламы. Это значение генерируется динамически и никогда не должно изменяться.

Конструктор URL-адресов Google Play

Используйте приведенный ниже инструмент, чтобы создать URL-адреса для измерения кампании в Google Play.