Wersje robocze i eksperymenty kampanii

Skrypty Google Ads obsługują wersje robocze i eksperymenty kampanii, które służą do przygotowywania i testowania zmian w kampaniach w sieci wyszukiwania i sieci reklamowej.

Wersja robocza to klon istniejącej kampanii, która nie wyświetla własnych reklam, ale może służyć do wprowadzania zmian bez modyfikowania pierwotnej kampanii. Zmiany w wersji roboczej można następnie zastosować w kampanii podstawowej.

Eksperyment to konfigurowalna kampania, która działa równolegle do pierwotnej kampanii i wyświetla reklamy określonej części ruchu. Na podstawie wyników eksperymentu możesz zastosować zmiany w pierwotnej kampanii, przekształcić eksperyment w niezależną kampanię lub zrezygnować z kampanii eksperymentalnej.

W tym przewodniku znajdziesz podstawowy przepływ pracy związany z używaniem wersji roboczych i eksperymentów w skrypcie.

Wersje robocze

Utworzenie wersji roboczej

Wersję roboczą tworzy się na podstawie istniejącej kampanii podstawowej za pomocą funkcji DraftBuilder i nadając jej unikalną nazwę. Kampania podstawowa musi być kampanią w sieci wyszukiwania, kampanią w sieci wyszukiwania z rozszerzeniem na sieć reklamową lub kampanią w sieci reklamowej (z wyjątkiem kampanii w sieci reklamowej promującej aplikacje mobilne) i nie może mieć budżetu wspólnego.

const campaign = AdsApp.campaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get()
    .next();

const draftBuilder = campaign.newDraftBuilder()
    .withName("INSERT_DRAFT_NAME_HERE")
    .build();

const draft = draftBuilder.getResult();

DraftBuilder.build() zwraca DraftOperation, co jest typową operacją w skryptach. Więcej informacji znajdziesz w naszym przewodniku dla twórców.

draft jest jednoznacznie identyfikowana przez połączenie identyfikatora kampanii podstawowej i identyfikatora wersji roboczej. Więcej informacji znajdziesz w sekcji DraftSelector.withIds().

Udostępnianie roboczej wersji kampanii

Obiekt draft łączy kampanię podstawową i kampanię w wersji roboczej. Aby przygotować aktualizacje kampanii podstawowej, rozpowszechnij zmiany w kampanii w wersji roboczej.

Kampania robocza, podobnie jak każda inna kampania, ma metody pobierania i ustawiania różnych atrybutów, takich jak kryteria, grupy reklam, stawki i reklamy.

const draftCampaign = draft.getDraftCampaign();

draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");

Wersja robocza kampanii jest sprawdzana pod kątem zgodności z zasadami dotyczącymi reklam tak samo jak kampania podstawowa. Nie możesz przeprowadzić eksperymentu w roboczej wersji kampanii, która zawiera reklamy naruszające zasady.

Wykonaj wersję roboczą

Po utworzeniu wersji roboczej kampanii możesz wykonać jedną z tych czynności:

  1. Jeśli nie chcesz wprowadzać zmian, możesz po prostu usunąć wersję roboczą. Usunięcie wersji roboczej jest nieodwracalne, ale nadal można ją wyświetlić w sekcji Wszystkie wersje robocze na karcie wersji roboczych w interfejsie Google Ads.

        draft.remove();
    
  2. Jeśli zdecydujesz się zachować zmiany wprowadzone w wersji roboczej, możesz je zastosować:

        draft.startApplying();
    

    Ta metoda rozpoczyna proces stosowania zmian w kampanii podstawowej, więc w interfejsie Google Ads wersja robocza będzie mieć stan Stosowanie…. Ta metoda nie powiadomi Cię jednak o zakończeniu procesu.

  3. Jeśli chcesz najpierw przetestować zmiany, możesz użyć wersji roboczej do utworzenia eksperymentu.

Eksperymenty

Utworzenie eksperymentu

experiment jest podobna do wersji roboczej i również jest tworzona na podstawie kampanii podstawowej. Tworzysz experiment z ExperimentBuilder. Spowoduje to automatyczne utworzenie eksperymentu z 2 „grupami”, które reprezentują różne części eksperymentu. Jedna gałąź (zwana gałęzią kontrolną) będzie zawierać kampanię podstawową, a druga (zwana gałęzią eksperymentalną) – nową kampanię w wersji roboczej, którą dostosujesz (zgodnie z wcześniejszymi krokami dotyczącymi wersji roboczej) przed zaplanowaniem eksperymentu.

Podczas tworzenia eksperymentu w narzędziu do tworzenia ustaw te elementy:

withCampaign
Kampania, na której ma być oparty eksperyment.
withTrafficSplitPercent
 odsetek ruchu, który zostanie przekierowany do grupy eksperymentalnej. W przypadku 50% podaj 50.
withStartDatewithEndDate
Określa datę rozpoczęcia i zakończenia kampanii. Określ w YYYYMMddformacie
.
withType
SEARCH_CUSTOM lub DISPLAY_CUSTOM, w zależności od używanej sieci.
withSuffix
Określa sufiks, który zostanie dodany do nazwy kampanii eksperymentalnej podczas jej tworzenia.
withGoals
Określa cele tego eksperymentu. To tylko przypomnienie dla Ciebie, jakie były Twoje cele podczas tworzenia tego projektu. Dobrą wartością domyślną jest [{metric: 'CLICKS', direction: 'INCREASE'}].

Odsetek podziału ruchu określa, jaka część ruchu będzie wyświetlać reklamy z kampanii eksperymentalnej zamiast z kampanii podstawowej. Z tego powodu każda kampania podstawowa może mieć w danym momencie tylko 1 aktywny eksperyment.

const experiment = AdsApp.newExperimentBuilder()
  .withCampaign(campaign)
  .withTrafficSplitPercent(50)
  .withStartDate("20230501")
  .withEndDate("20230601")
  .withType("SEARCH_CUSTOM")
  .withSuffix("experiment")
  .withGoals([{metric: 'CLICKS', direction: 'INCREASE'}])
  .build();

// The experimentCampaign represents the customizeable draft.
const experimentCampaign = experiment.getExperimentCampaign();

W przeciwieństwie do wersji roboczych eksperymenty są identyfikowane za pomocą jednego unikalnego identyfikatora. Więcej informacji znajdziesz w sekcji ExperimentSelector.withIds().

Udostępnianie kampanii z eksperymentem

Podobnie jak draft, experiment nie jest kampanią. Zamiast tego odnosi się do kampanii podstawowej, wersji roboczej i kampanii eksperymentalnej. Pola kampanii eksperymentalnej można modyfikować, z wyjątkiem tych:

  • nazwa
  • status
  • data rozpoczęcia
  • data zakończenia
  • budżet
const experimentCampaign = experiment.getExperimentCampaign();

// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");

// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");

W eksperymencie można wprowadzać zmiany w nazwie, dacie rozpoczęcia i dacie zakończenia, które następnie zostaną przeniesione do kampanii z eksperymentem.

// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");

// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);

Aby rozpocząć eksperyment, kliknij experiment.startScheduling(). Jest to proces asynchroniczny, ponieważ wymaga skopiowania wszystkich ustawień z kampanii podstawowej.

Po zakończeniu eksperymentu

Po zakończeniu eksperymentu masz kilka możliwości. Zalecamy poczekać, aż eksperyment się zakończy. Wtedy przestanie wyświetlać reklamy, ale nadal będzie można z nim wchodzić w interakcje. Eksperyment ze stanem Zakończony można nadal usunąć, zastosować lub przekształcić w kampanię, a statystyki skuteczności kampanii są nadal dostępne.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Jeśli na podstawie statystyk nie jesteś zadowolony(-a) z eksperymentu, możesz go usunąć. Spowoduje to również usunięcie kampanii eksperymentalnej. Usunięcie eksperymentu jest nieodwracalne, ale nadal można go wyświetlać w sekcji Wszystkie eksperymenty na karcie eksperymentów w interfejsie Google Ads.

        experiment.remove();
    
  • Jeśli wyniki eksperymentu są zadowalające, masz 2 możliwości:

    1. Możesz zacząć stosować zmiany. Podobnie jak w przypadku wersji roboczych nie otrzymasz powiadomienia o zakończeniu procesu.

          experiment.startApplying();
      
    2. Możesz utworzyć kampanię eksperymentalną jako niezależną, w pełni działającą kampanię, bez wywierania wpływu na kampanię podstawową. Ten proces, zwany przejściem, kończy się natychmiast i wymaga ustawienia nowego budżetu.

          const budget = AdsApp.budgets()
              .withCondition(`campaign_budget.id = ${budgetId}`)
              .get()
              .next();
      
          experiment.graduate(budget);
      

      Nowa kampania nie może już mieć budżetu wspólnego z kampanią podstawową, dlatego wymaga nowego budżetu. Kampanie stopniowe są podobne do zwykłych kampanii, ponieważ wszystkie ich pola można modyfikować i mogą one służyć jako kampania podstawowa dla większej liczby wersji roboczych i eksperymentów.

Inne uwagi

Encje podstawowe

Wprowadzenie wersji roboczych i eksperymentów do skryptów Google Ads wiąże się też z pojęciem jednostek podstawowych. Kampanie w wersji roboczej i eksperymentalne oraz grupy reklam w nich zawarte różnią się od pierwotnych kampanii podstawowych, dlatego CampaignAdGroup mają teraz metody dostępu do kampanii podstawowej i grupy reklam: getBaseCampaign()getBaseAdGroup().

Te metody zwracają podmiot wywołujący, jeśli są wywoływane przez kampanię podstawową lub grupę reklam. Takie metody zostały też udostępnione w przypadku elementów w kampaniach i grupach reklam, takich jak słowa kluczowe i reklamy.

Aby ułatwić śledzenie podstawowych elementów, kampanie mają metody isBaseCampaign(), isDraftCampaign(), i isExperimentCampaign().

Nowe metody Campaign.draftCampaigns() i Campaign.experimentCampaigns() umożliwiają dostęp do wszystkich wersji roboczych i eksperymentalnych kampanii, które mają kampanię wywołującą jako kampanię podstawową. Nie możesz jednak wybierać wersji roboczych kampanii za pomocą symbolu CampaignSelector.withCondition(). Zamiast tego użyj symbolu AdsApp.drafts().

Obsługa błędów

Poniższe metody dotyczące wersji roboczych i eksperymentów są wykonywane po uruchomieniu skryptu, ale mogą zakończyć się niepowodzeniem asynchronicznie:

  • Draft.startApplying()
  • Experiment.startApplying()
  • Experiment.startScheduling()

Poczekaj, aż te operacje się powiodą. W interfejsie Google Ads po pomyślnym zakończeniu zadań startApplying()startScheduling() wyświetlają się stany Zastosowano lub Aktywny. W przypadku niepowodzenia wyświetla się komunikat Nie można zastosować lub Nie można utworzyć, a kliknięcie go umożliwia wyświetlenie błędów.

Możliwe też, że niektóre metody nie działają w fazie podglądu, ale działają po uruchomieniu, np. po utworzeniu wersji roboczej:

const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.

W trybie podglądu ta operacja się nie powiedzie, ponieważ nie można od razu uzyskać dostępu do kampanii w wersji roboczej.

Podobnie utworzenie eksperymentu i natychmiastowe próby pobrania jego wersji roboczej kampanii nie powiodą się w trybie podglądu, ponieważ wersja robocza nie jest faktycznie tworzona.

Z tego powodu po uruchomieniu skryptów sprawdź logi pod listą skryptów i kontynuuj pracę ze skryptem, który nie działał w trybie podglądu, tylko wtedy, gdy uważasz, że przyczyną są ograniczenia trybu podglądu.