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:
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();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.
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. withStartDateiwithEndDate- Określa datę rozpoczęcia i zakończenia kampanii. Podaj 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 o celach, które Ci przyświecały podczas tworzenia eksperymentu. Dobrą wartością domyślną jest
[{metric: 'CLICKS', direction: 'INCREASE'}].
SEARCH_CUSTOMDISPLAY_CUSTOM
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:
Możesz rozpocząć stosowanie zmian. Podobnie jak w przypadku wersji roboczych nie otrzymasz powiadomienia o zakończeniu procesu.
experiment.startApplying();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.