W marcu 2022 roku udostępniliśmy wersję 2 interfejsu Bid Manager API. W związku z udostępnieniem tej nowej wersji planujemy wkrótce ogłosić datę wycofania wersji 1.1. Zalecamy jak najszybsze rozpoczęcie migracji z wersji 1.1 na wersję 2.
Migracja aplikacji
Przejście z wersji 1.1 na wersję 2 wymaga zaktualizowania adresów URL punktów końcowych, aby wywoływać wersję 2, oraz zaktualizowania aplikacji, aby uwzględniała zmiany powodujące niezgodność wsteczną.
Aktualizowanie wywołań interfejsu API z wersji 1.1 do wersji 2
Aby używać wersji 2 zamiast wersji 1.1, musisz zaktualizować żądania tak, aby używały nowych punktów końcowych v2.
Wskaż równoważne metody
Aby zaktualizować wywołania interfejsu API z wersji 1.1 do wersji 2, musisz najpierw zidentyfikować odpowiednie metody wersji 1.1 w wersji 2.
Nazwy wszystkich usług i metod zostały nieznacznie zmienione w wersji 2 w porównaniu z wersją 1.1:
- Usługi
QueriesiReportsw wersji 1.1 są znane jakoqueriesiqueries.reportsw wersji 2. - W wersji 2 nazwy metod zostały zmienione w ten sposób:
Nazwa metody w wersji 1.1 Metoda w wersji 2 Queries.createqueryqueries.createQueries.deletequeryqueries.deleteQueries.getqueryqueries.getQueries.listqueriesqueries.listQueries.runqueryqueries.runReports.listreportsqueries.reports.list
Aktualizacja do nowych punktów końcowych
Gdy znajdziesz równoważne metody, musisz zaktualizować swoje żądania. Na przykład, aby wywołać metodę queries.getquery w wersji 1.1, użyj tego adresu URL:
https://www.googleapis.com/doubleclickbidmanager/v1.1/query/queryId
Aby wywołać odpowiednią metodę w wersji 2, czyli queries.get, zaktualizuj adres URL w ten sposób:
GET https://doubleclickbidmanager.googleapis.com/v2/queries/queryId
Jeśli do wysyłania żądań do interfejsu API używasz biblioteki klienta, użyj najnowszej wersji tej biblioteki i zaktualizuj konfigurację, aby korzystać z wersji 2.
Wprowadzanie wymaganych zmian
W wersji 2 wprowadzamy szereg zmian powodujących niezgodność wsteczną. Zapoznaj się z poniższymi instrukcjami i wprowadź wymagane zmiany w sposobie korzystania z interfejsu Bid Managera API.
Aktualizowanie połączeń z usługą queries
- Te pola w zasobie
Query, które pierwotnie były reprezentowane przez ogólne zagnieżdżone obiekty, zostały zmienione tak, aby używać tych typów obiektów:Pole v1.1 Odpowiednik typu obiektu w wersji 2 metadataQueryMetadataparamsParametersparams.optionsOptionsparams.options.pathQueryOptionsUsunięta params.options.pathQueryOptions.channelGroupingUsunięta params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[].dimensionFilterUsunięta params.options.pathQueryOptions.pathFilters[].eventFilters[].dimensionFilterUsunięta scheduleQuerySchedule - Te pola w zasobie
Query, które pierwotnie były reprezentowane przez ogólne obiekty listy, zostały zmienione na listy tych nowych typów obiektów:Pole listy w wersji 1.1 Typ obiektu w wersji 2 params.filters[]FilterPairparams.options.pathQueryOptions.channelGrouping.rules[]Usunięta params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[]Usunięta params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[]Usunięta params.options.pathQueryOptions.pathFilters[]Usunięta params.options.pathQueryOptions.pathFilters[].eventFilters[]Usunięta - Te pola w zasobie
Query, które pierwotnie były reprezentowane przez ciągi znaków, w wersji 2 są reprezentowane przez typy wyliczeniowe. Obejmują one te zmiany:- Odpowiednik parametru
metadata.dataRangew wersji 2 korzysta teraz z wyliczeniaRange. Podczas konwersji na ten typ wyliczeniowy wartośćPREVIOUS_HALF_MONTHzostała usunięta, a wartośćTYPE_NOT_SUPPORTEDzostała zmieniona naRANGE_UNSPECIFIED. metadata.formatkorzysta teraz z wyliczeniaFormat. Podczas konwersji na ten typ wyliczeniowy wartośćEXCEL_CSVzostała usunięta, a wartośćFORMAT_UNSPECIFIEDzostała dodana.params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[].dimensionFilter.matchiparams.options.pathQueryOptions.pathFilters[].eventFilters[].dimensionFilter.matchużywają teraz wyliczeniaMatch.params.options.pathQueryOptions.pathFilters[].pathMatchPositionkorzysta teraz z wyliczeniaPathMatchPosition. Podczas konwersji na ten typ wyliczeniowy dodano wartośćPATH_MATCH_POSITION_UNSPECIFIED.schedule.frequencykorzysta teraz z wyliczeniaFrequency. Podczas konwersji na ten typ wyliczeniowy dodano wartośćFREQUENCY_UNSPECIFIED.params.typekorzysta teraz z wyliczeniaReportType. W trakcie konwersji na ten typ wyliczeniowy wprowadziliśmy te zmiany:- Te wartości nie są już używane:
TYPE_ACTIVE_GRPTYPE_AUDIENCE_PERFORMANCETYPE_CLIENT_SAFETYPE_COMSCORE_VCETYPE_CROSS_FEETYPE_CROSS_PARTNERTYPE_CROSS_PARTNER_THIRD_PARTY_DATA_PROVIDERTYPE_ESTIMATED_CONVERSIONTYPE_FEETYPE_KEYWORDTYPE_LINEAR_TV_SEARCH_LIFTTYPE_NIELSEN_AUDIENCE_PROFILETYPE_NIELSEN_DAILY_REACH_BUILDTYPE_NIELSEN_ONLINE_GLOBAL_MARKETTYPE_PAGE_CATEGORYTYPE_PETRA_NIELSEN_DAILY_REACH_BUILDTYPE_PETRA_NIELSEN_ONLINE_GLOBAL_MARKETTYPE_PIXEL_LOADTYPE_THIRD_PARTY_DATA_PROVIDERTYPE_TRUEVIEW_IARTYPE_VERIFICATIONTYPE_YOUTUBE_VERTICAL
- Pozostałe wartości zostały zaktualizowane, aby lepiej odzwierciedlały ich odpowiedniki w interfejsie:
Wartości w wersji 1.1 Równoważna wartość ReportTypeTYPE_NOT_SUPPORTEDREPORT_TYPE_UNSPECIFIEDTYPE_GENERALSTANDARDTYPE_INVENTORY_AVAILABILITYINVENTORY_AVAILABILITYTYPE_AUDIENCE_COMPOSITIONAUDIENCE_COMPOSITIONTYPE_ORDER_IDFLOODLIGHTTYPE_TRUEVIEWYOUTUBETYPE_NIELSEN_SITEGRPTYPE_PETRA_NIELSEN_AUDIENCE_PROFILEYOUTUBE_PROGRAMMATIC_GUARANTEEDTYPE_REACH_AND_FREQUENCYREACHTYPE_REACH_AUDIENCEUNIQUE_REACH_AUDIENCETYPE_PATHFULL_PATHTYPE_PATH_ATTRIBUTIONPATH_ATTRIBUTION
- Odpowiednik parametru
- Pola
metadata.dataRange,reportDataStartTimeMsireportDataEndTimeMszostały zastąpione polamirange,customStartDateicustomEndDate. Nowe pola daty używają obiektówDatezamiast milisekund od początku epoki uniksowej. Te pola zastępcze zostały przeniesione do obiektuDataRangeprzypisanego do poladataRangew obiekcieQueryMetadata. - Pola
schedule.startTimeMsischedule.endTimeMszostały zastąpione polamistartDateiendDatew obiekcieQuerySchedule. Nowe pola daty używają obiektówDatezamiast milisekund od początku epoki uniksowej. - Pola
metadata.running,metadata.reportCount,metadata.googleCloudStoragePathForLatestReport,metadata.googleDrivePathForLatestReportimetadata.latestReportRunTimeMszostały usunięte. Informacje o najnowszych wygenerowanych raportach dotyczących zapytania należy pobierać za pomocą metodyqueries.reports.listz parametrem zapytaniaorderBy„key.reportId desc”, aby mieć pewność, że na liście żądań najpierw pojawią się najnowsze raporty. - Pola
kind,timezoneCode,metadata.locale,params.includeInviteDataischedule.nextRunMinuteOfDayzostały usunięte. queries.createnie uruchamia już automatycznie zapytań po utworzeniu, a parametr zapytaniaasynchronouszostał usunięty. Wywołaj funkcjęqueries.runpo wywołaniu funkcjiqueries.create, aby generować raporty dotyczące nowych zapytań.- Metoda
queries.runzostała zaktualizowana w ten sposób:- Parametr zapytania
asynchronouszostał zastąpiony parametremsynchronous. Nowy parametr zapytania działa z logiką odwrotną i jest uznawany za fałszywy, jeśli nie jest określony. W związku z tymqueries.rundomyślnie generuje raporty asynchronicznie w wersji 2, a nie synchronicznie, co jest domyślnym ustawieniem w wersji 1.1. - Treść żądania została zaktualizowana w celu usunięcia pola
timezoneCodei zastąpienia póldataRange,reportDataStartTimeMsireportDataEndTimeMsobiektemDataRangeprzypisanym do poladataRange. - Metoda zwraca wynikowy obiekt
Reportzamiast pustej treści odpowiedzi.
- Parametr zapytania
- Usunięto pole
kindz treści odpowiedziqueries.list.
Aktualizowanie połączeń z usługą reports
- Te pola w zasobie
Report, który pierwotnie był reprezentowany przez ogólne obiekty zagnieżdżone, zostały zmienione tak, aby używać tych typów obiektów:Pole v1.1 Odpowiednik typu obiektu w wersji 2 keyReportKeymetadataReportMetadatametadata.statusReportStatusparamsParametersparams.optionsOptionsparams.options.pathQueryOptionsUsunięta params.options.pathQueryOptions.channelGroupingUsunięta params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[].dimensionFilterUsunięta params.options.pathQueryOptions.pathFilters[].eventFilters[].dimensionFilterUsunięta - Te pola w zasobie
Report, które pierwotnie były reprezentowane przez obiekty listy ogólnej, zostały zmienione na listy tych nowych typów obiektów:Pole listy w wersji 1.1 Typ obiektu w wersji 2 params.filters[]FilterPairparams.options.pathQueryOptions.channelGrouping.rules[]Usunięta params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[]Usunięta params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[]Usunięta params.options.pathQueryOptions.pathFilters[]Usunięta params.options.pathQueryOptions.pathFilters[].eventFilters[]Usunięta - W tych polach w zasobie
Report, który pierwotnie był reprezentowany przez ciągi znaków, wprowadziliśmy zmiany, więc ich odpowiedniki w wersji 2 są reprezentowane przez nowe typy wyliczeniowe i obejmują zmiany dopuszczalnych wartości:metadata.status.formatkorzysta teraz z wyliczeniaFormat. Podczas konwersji na ten typ wyliczeniowy wartośćEXCEL_CSVzostała usunięta, a wartośćFORMAT_UNSPECIFIEDzostała dodana.metadata.status.statekorzysta teraz z wyliczeniaState. Podczas konwersji na ten typ wyliczeniowy dodano wartościQUEUEDiSTATE_UNSPECIFIED.params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[].dimensionFilter.matchiparams.options.pathQueryOptions.pathFilters[].eventFilters[].dimensionFilter.matchużywają teraz wyliczeniaMatch.params.options.pathQueryOptions.pathFilters[].pathMatchPositionkorzysta teraz z wyliczeniaPathMatchPosition. Podczas konwersji na ten typ wyliczeniowy dodano wartośćPATH_MATCH_POSITION_UNSPECIFIED.params.typekorzysta teraz z wyliczeniaReportType. W ramach konwersji na ten typ wyliczeniowy wprowadzono liczne zmiany, które są szczegółowo opisane w poprzedniej sekcji dotyczącej aktualizowania wywołań usługi zapytań.
- Pola
metadata.reportDataStartTimeMsimetadata.reportDataEndTimeMszostały zastąpione polamireportDataStartDateireportDataEndDatew obiekcieReportMetadata. Nowe pola używają obiektówDatezamiast milisekund od początku epoki uniksowej. - Pole
metadata.status.finishTimeMszostało zastąpione polemfinishTimew obiekcieReportStatus. To nowe pole czasu reprezentuje datę i godzinę jako sygnaturę czasową w formacie RFC3339 UTC „Zulu”, a nie w milisekundach od początku epoki uniksowej. - Pola
metadata.status.failureiparams.includeInviteDatazostały usunięte. - Usunięto pole
kindz treści odpowiedzireports.list.
Aktualizowanie logiki obsługi błędów
W wersji 2 zaktualizowaliśmy komunikaty o błędach w całym interfejsie API. Te nowe komunikaty o błędach są bardziej szczegółowe i w niektórych przypadkach zawierają informacje o wartościach w żądaniu do interfejsu API, które powodują zwrócenie błędu. Jeśli dotychczasowa logika obsługi błędów opiera się na konkretnym tekście komunikatu o błędzie, przed migracją do wersji 2 uogólnij obsługę błędów.