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.

Z tego przewodnika dowiesz się, jak wygląda podstawowy proces pracy z wersjami roboczymi i eksperymentami w skrypcie.

Wersje robocze

Wersja robocza to klon istniejącej kampanii, która nie będzie wyświetlać własnych reklam, ale może służyć do przygotowywania zmian bez modyfikowania oryginalnej kampanii. Przygotowane zmiany można następnie zastosować w kampanii podstawowej.

Utworzenie wersji roboczej

Wersja robocza jest tworzona na podstawie istniejącej kampanii podstawowej za pomocą DraftBuilder i unikalnej nazwy. Kampania podstawowa musi być kampanią w sieci wyszukiwania, kampanią w sieci wyszukiwania z rozszerzeniem na sieć reklamową lub kampanią w sieci reklamowej (z wyłączeniem kampanii promującej aplikację mobilną w sieci reklamowej) 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, czyli typową operację w skryptach. Więcej informacji znajdziesz w naszym przewodniku po narzędziach do tworzenia.

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

Przygotowanie roboczej wersji kampanii

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

Robocza wersja kampanii, 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");

Sprawdzanie reklam pod kątem zgodności z zasadami dotyczącymi reklam jest przeprowadzane w przypadku roboczej wersji kampanii tak samo jak w przypadku kampanii podstawowej. Nie będzie można przeprowadzić eksperymentu w roboczej wersji kampanii, która zawiera reklamy naruszające zasady.

Wykonanie wersji roboczej

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

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

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

        draft.startApplying();
    

    Ta metoda rozpoczyna proces stosowania aktualizacji w kampanii podstawowej, więc wersja robocza będzie mieć w interfejsie Google Ads 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

Eksperyment polega na równoległym prowadzeniu konfigurowalnej kampanii i oryginalnej kampanii oraz wyświetlaniu reklam określonej części ruchu. Na podstawie wyników eksperymentu możesz zastosować zmiany w oryginalnej kampanii, przekształcić eksperyment w niezależną kampanię lub zrezygnować z kampanii eksperymentalnej.

Utworzenie eksperymentu

experiment jest podobny do wersji roboczej i też jest tworzony na podstawie kampanii podstawowej. experiment tworzysz za pomocą ExperimentBuilder. Spowoduje to automatyczne utworzenie eksperymentu z 2 „grupami”, które reprezentują różne części eksperymentu. Jedna grupa (nazywana grupą kontrolną) będzie zawierać kampanię podstawową, a druga (nazywana grupą eksperymentalną) – nową roboczą wersję kampanii, którą dostosujesz (zgodnie z opisanymi wcześniej krokami dotyczącymi wersji roboczej) przed zaplanowaniem eksperymentu.

Podczas tworzenia eksperymentu pamiętaj, aby ustawić w narzędziu do tworzenia wszystkie te elementy:

withCampaign
Kampania, na której ma być oparty eksperyment.
withTrafficSplitPercent
Odsetek ruchu, który będzie kierowany do grupy eksperymentalnej. W przypadku 50% wpisz 50.
withStartDate i withEndDate
Określa datę rozpoczęcia i zakończenia kampanii. Podaj w YYYYMMdd formacie.
withType
`SEARCH_CUSTOM` lub `DISPLAY_CUSTOM` w zależności od używanej sieci.
SEARCH_CUSTOMDISPLAY_CUSTOM
withSuffix
Określa sufiks, który zostanie dodany do nazwy kampanii eksperymentalnej podczas jej tworzenia.
withGoals
Określa cele tego eksperymentu. To tylko przypomnienie o celach, które Ci przyświecały podczas tworzenia eksperymentu. 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 z eksperymentem 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ą jednoznacznie identyfikowane przez pojedynczy identyfikator. Więcej informacji znajdziesz w artykule ExperimentSelector.withIds().

Przygotowanie kampanii z eksperymentem

Podobnie jak draft, experiment sam w sobie nie jest kampanią. Łączy on kampanię podstawową, wersję roboczą i kampanię z eksperymentem. Pola kampanii z eksperymentem 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");

Nazwę, datę rozpoczęcia i datę zakończenia można zmienić w eksperymencie, po czym zmiany 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, wywołaj experiment.startScheduling(). Jest to proces asynchroniczny, ponieważ musi skopiować wszystkie ustawienia z kampanii podstawowej.

Po zakończeniu eksperymentu

Po zakończeniu eksperymentu masz kilka możliwości. Zalecamy, aby eksperyment został całkowicie zakończony, tak aby przestał wyświetlać reklamy, ale nadal można było z nim wchodzić w interakcje. Zakończony eksperyment można nadal usunąć, zastosować lub przekształcić w niezależną kampanię, a statystyki skuteczności jego 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ąć, co spowoduje też usunięcie kampanii z eksperymentem. Usunięcie eksperymentu jest nieodwracalne, ale nadal można go wyświetlić w interfejsie Google Ads w sekcji Wszystkie eksperymenty na karcie Eksperymenty.

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

    1. Możesz rozpocząć stosowanie zmian. Podobnie jak w przypadku wersji roboczych nie otrzymasz powiadomienia o zakończeniu procesu.

          experiment.startApplying();
      
    2. Możesz przekształcić kampanię z eksperymentem w niezależną, w pełni działającą kampanię bez wpływu na kampanię podstawową. Ten proces, zwany przekształceniem w niezależną kampanię, 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ż współdzielić budżetu z kampanią podstawową, co wymaga nowego budżetu. Kampanie przekształcone w niezależne są takie same jak zwykłe kampanie – wszystkie ich pola można modyfikować i mogą one służyć jako kampania podstawowa dla kolejnych wersji roboczych i eksperymentów.

Inne uwagi

Encje podstawowe

Wprowadzenie wersji roboczych i eksperymentów do skryptów Google Ads wprowadza też pojęcie encji podstawowych. Kampanie robocze i eksperymentalne oraz grupy reklam w nich zawarte różnią się od oryginalnych kampanii podstawowych, dlatego Campaign i AdGroup mają teraz metody dostępu do kampanii podstawowej i grupy reklam: getBaseCampaign() i getBaseAdGroup().

Jeśli te metody są wywoływane przez kampanię podstawową lub grupę reklam, zwracają encję wywołującą. Takie metody zostały też dodane do encji w kampaniach i grupach reklam, takich jak słowa kluczowe i reklamy.

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

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

Obsługa błędów

Te metody dotyczące wersji roboczych i eksperymentów są wykonywane podczas uruchamiania skryptu, ale mogą się nie powieść asynchronicznie:

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

Powinieneś(-aś) poczekać, aż te operacje się powiodą. Po pomyślnym zakończeniu odpowiednio startApplying() i startScheduling() w interfejsie Google Ads wyświetlają się stany Zastosowano lub Aktywna. W przypadku niepowodzenia wyświetlają się stany Nie można zastosować lub Nie można utworzyć, co umożliwia kliknięcie, aby zobaczyć błędy.

Możliwe jest też, że niektóre metody nie powiodą się w fazie podglądu, ale powiodą się po uruchomieniu. Na przykład po utworzeniu wersji roboczej:

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

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

Podobnie utworzenie eksperymentu i natychmiastowe próby pobrania jego roboczej wersji kampanii nie powiodą się w trybie podglądu, ponieważ wersja robocza nie została jeszcze utworzona.

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